Commit graph

1161 commits

Author SHA1 Message Date
zicodxx dcae49a319 Be safer not interrupting other ports of descent or the original MS-DOS game when it comes to reading song files: Try reading from MISSION_NAME.sngdxx to have a way reading a song file for a specific mission outside the mission's HOG, next try reading from descent.sngdxx which shall serve as an alternative song file specifically for DXX and then try descent.sng. This should give authors enough possibilities to add OSTs for all different versions of the game without the need to publish different versions of their missions 2011-03-06 21:02:48 +01:00
zicodxx d7d7661cd6 Fix for last revision: Correctly initialize cv_fade_level and cv_blend_func when creating initializing a canvas 2011-02-24 00:21:47 +01:00
zicodxx fe2dd897f7 Added cv_fade_level to canvas structure to replace Gr_scanline_darkening_level; Added cv_blend_func to canvas structure to set blending; Introduced gr_settransblend to set cv_fade_level and cv_blend_func; Added function to set normal blending, additive alpha blending and additive color blending; Moved Special transparency effects from g3_draw_bitmap to render_object to set individual transparency and/or blending for each object outside of OpenGL-specific code; Added special blending for fuelcenter and force field effects as well; Removed unused LASER_HACK code; Renamed OglAlphaEffects variable of PalyerCfg to AlphaEffects as I plan to implement this kind of effects for Software renderer, too 2011-02-23 17:46:36 +01:00
Chris Taylor 32187e428f Fix a critical bug in string_array_add - when d_reallocing the buffer containing the string data, update all the pointers in '*list' as well as next_str, preventing ugly crashes 2011-02-21 14:36:18 +08:00
zicodxx 4c58b43b2d Set zNear for gluPerspective to 0.1 to prevent ugly clipping while passing illusory walls; Set zFar to 5000.0 to prevent disappearing automap in large distance - all still sane enough for Intel chips so my eeePC is safe nyahahaha 2011-02-18 00:43:03 +01:00
zicodxx 79e84f8d17 Draw laser effects with special blending instead of disabled DepthMask; Added special blending for transparency effects as well to let them kick more ass; Corrections while rendering outside part of endlevel sequence with disabled depth testing and dynamically changing Render_depth to make the mine exit visible again while not rendering the exit tunnel tru the planet terrain 2011-02-18 00:17:49 +01:00
zicodxx 05d98af43f Fixed PRShot feature which was accidentially broken while implementation of OpenGL ES support 2011-02-15 14:44:00 +01:00
zicodxx 7481e1c0fc For credits and briefings moved all code happened in EVENT_IDLE to EVENT_WINDOW_DRAW since a jitterish Joystick could slow down text rendering 2011-02-14 23:52:28 +01:00
zicodxx c1e4e9c3d7 Moved all these unsorted global cheat variables to a handy structure; Simplified reading of the cheats without trying to make it complicated so no one finds them (everyone can get the source); Removed one or two cheats which carry more garbage than they are worth; Added replacement for the bittersweet cheat; Made FPS Counter an option of Graphics menu 2011-02-14 22:27:02 +01:00
zicodxx e9da5b85b4 New approach to handle a bunch of closing windows - removed window_do_close() again, reworked game_leave_menus by checking window_get_front() and closing this window until it's Game_wind, while event_process checking if window still exists after drawing and if not, take next window from previous which should be updated by then 2011-02-12 23:58:39 +01:00
zicodxx 01e522e6e7 Controls.select_weapon_count needs to be incremented differently to get non-0 when we want to select the laser type weapon; Readded jumping from first to last item in newmenu and vice versa 2011-02-11 12:24:13 +01:00
zicodxx 53c9fa987f Added secondary weapon indicators to new reticle types; Fixed disks being drawn as circles - whoops 2011-02-10 20:53:19 +01:00
zicodxx a025d430c0 Fixed compiler warning related to generation of game_id for Coop Savegames 2011-02-10 18:56:31 +01:00
zicodxx 6bc439a343 Simplified ogl version of gr.c in terms of SDL video flags and fullscreen toggle; Added command-line/INI option to remove borders from windowed program 2011-02-10 15:30:05 +01:00
zicodxx be7713c1ae Fixed broken FlightSim indicator on Automap; Fixed Assert for using mouse buttons in kconfig (which can react to UP and DOWN states); Added scrolling support for menus flagged tiny_mode and all_text 2011-02-10 14:09:05 +01:00
zicodxx 80e9e5893e Fixed memory leak produced by drawing circles and disks 2011-02-09 17:18:26 +01:00
zicodxx eb0d876b9c Reintroduced Savegames for Coop games using the original Descent2 implementation but correctly handling player slots in their pre-loading state preventing accidential player shifting which never really worked in the original game and we do not want with UDP anyways - was all tested but still might need a fix or two; Added some missing initializations for saving players and AI stuff; Completely ripped out remnants of saving between levels code 2011-02-09 12:58:28 +01:00
zicodxx 2232433860 Increased key repeat values to react a little more like the MS-DOS version of the game but a little slower so I can still stop at the correct item; In automap reorganized control_info swapping as well as wiggle state handling to properly work in connection with the new input handling and Multiplayer where game is not paused 2011-02-06 14:25:31 +01:00
zicodxx 09debd3e2f Included new window structure flag w_closing_state and let window_close() set this flag - after drawing all windows, check them again and call window_do_close() which then actually closes the window(s) marked to. Solving all sorts of problems when windows close while being drawn (network error messageboxes, game_leave_menus(), etc.) 2011-02-03 11:47:54 +01:00
zicodxx 3f17b47fe8 fix to rev 1038 - not completely there today... 2011-02-03 01:19:27 +01:00
zicodxx 2b1550fa2e Little fixes for recent kconfig/event overhaul: Automap inputs read by kconfig should be processed by input rather than idle and automap frame calculations should be done while drawing; Fixed drop_bomb_count which could roll over to 255 dropping bombs without end 2011-02-03 01:05:01 +01:00
zicodxx 728442ff96 Little more smoothness for Multiplayer: Before dropping Powerups in random segment, make sure it's accessible by the player who drops it; Got rid of goto in InitPlayerPositions() and made code more D2-ish; Allow host to send 50 object/extra packets per second which does not overload network stack, yet but speeds up joining 2011-02-02 23:51:29 +01:00
zicodxx 17d0482938 After rendering Reboot reticle, reset glLineWidth to default value again 2011-02-02 02:12:09 +01:00
zicodxx 284ca0809d Small correction for last commit - key handler of automap was reacting to non-key events as well 2011-02-02 02:08:21 +01:00
zicodxx 5aa0939b73 Added event types for all input actions; Rewrote kconfig code to work with events; static defined inputs will not trigger kconfig-mapped inputs anymore; Simplified keyboard, mouse and joystick code a lot due to event-based handling; Added function to toggle SDL key repeats on and off; Put timer_update() to event_process; Removed return when event_poll() is idle to get cursor hiding to work again; Added a small delay between cursoe hiding and re-enabling to cursor will not accidentially enable by SDL event centering cursor while hiding 2011-02-02 01:36:43 +01:00
zicodxx 5f096e322a In event_process() check for wind->next before sending EVENT_WINDOW_DRAW in case drawing will free wind 2011-01-26 11:55:43 +01:00
zicodxx 7683527726 Some improvements and cleanups for Persistent Debris: Let them bounce, added drag and let them explode on hazardous walls 2011-01-24 21:51:07 +01:00
zicodxx 54097a9a3e Added some new conditions to the bumping code: Only bump objects which can slide (alive robots and players) and added a count making sure this function can never get stuck in an infinite loop 2011-01-24 20:45:59 +01:00
zicodxx 273d0b0dbe Added some new conditions to the bumping code: Only bump objects which can slide (alive robots and players) and added a count making sure this function can never get stuck in an infinite loop 2011-01-24 20:37:45 +01:00
zicodxx 6263db8521 Revamped what previously was the BUMP_HACK by checking if an object is actually intersecting a segment and move it out towards segment center just after the initial object movement composed by fvi and before velocity is made - should make inaccurate wall collisions a bit smoother and prevent objects from goind inside or through walls, too 2011-01-24 15:26:06 +01:00
zicodxx b624e51c35 For new player, set ReticleSize to 0 which is the smallest size 2011-01-23 18:22:10 +01:00
zicodxx 5b6c028c60 Increasing the collision count for objects so there can be 8 for all objects; also do not increase count when colliding with a powerup as it should not change our movement 2011-01-23 11:59:46 +01:00
zicodxx e5c1c4f963 Taking out one Assert in init_boss_segments() stopping the program if there is more than one boss in level - taking out because it's not fatal or unsafe to do that 2011-01-23 09:57:46 +01:00
zicodxx b35fd6e3d7 Removed fvi_a.h and added the asm code from it as comment to fvi.c in case we need it again some day 2011-01-22 21:43:20 +01:00
zicodxx e133e6e764 in show_framerate do not use gr_get_string_size at all but rather use hardcoded coordinates - less CPU-intense 2011-01-22 18:46:05 +01:00
zicodxx 6bcb2ef0cf Added swapping for 64Bit sized integers in case we want to store/read them some day (i.e. new Savegame version storing object instead of object_rw) 2011-01-22 18:14:14 +01:00
zicodxx bed51f2f4d _POLYOBJ_H definition was not terminated at end of file causing compiling to fail with WORDS_NEED_ALIGNMENT define 2011-01-22 18:06:42 +01:00
zicodxx 4b1faafc15 Handling Controlcen countdown Descent2-way to make code more similar but more importantly to avoid issues in Multiplayer levels which do not even have a Controlcen type Station causing the game get stuck in an infinite loop; Fixed small issue parsing killreactor command in Multiplayer 2011-01-22 17:56:23 +01:00
zicodxx 13faad1855 Added timer_update() to stop/start/reset_time() functions so resumed last_timer_value will be precise; Added new FPS counter which actually does count the frames rendered per second and is less irritating; Added timer_dleay2 call to console to not stress CPU too much; Imporoved placement for show_time(), multi messages 2011-01-22 13:30:12 +01:00
zicodxx 41a3d3971e Protection for negative array index in find_seg_side was accidentially checking for vv1 != -1 - fixed that 2011-01-21 17:45:26 +01:00
zicodxx c7038983d5 Added a simple random function for the Jukebox; Removed one small printf I once added for debugging 2011-01-20 12:17:24 +01:00
zicodxx 45d8b82ab6 Additional commit for last revision - didn't selected all files properly 2011-01-19 21:51:59 +01:00
zicodxx c124b0883f Retired most of the Assembler code except the generic i386 scanline renderer; Removed all leftovers of Direct3D implementation; On the way make a some code more similar between D1X-Rebirth and D2X-Rebirth 2011-01-19 21:35:14 +01:00
zicodxx 96a350e97f On NETGAMES list Bounty mode was not shown since MODE_NAMES define was not adjusted - so in the end introduced GMNames and GMNamesShrt Arrays in multi.c for globally displaying full or short Multiplayer game mode names 2011-01-19 19:55:32 +01:00
zicodxx 20cf4c5228 Fix for showing bounty target in kill list - was not actually checking if player_num == Bounty_target; When Bounty_target player leaves game host must select a new target so the game can proceed; Made Bounty sound play a bit louder 2011-01-19 12:21:59 +01:00
zicodxx 493f1cff34 Introducing new BOUNTY Multiplayer game mode by Matt -1360- Vandermeulen <matt1360@gmail.com>; Fit show_HUD_names code to be more similar to D2X - names display still client-decided tho 2011-01-19 02:19:15 +01:00
zicodxx 0177a6f2ae Instead of calling object/extras sending every frame, use a delay of 100ms between packet send to not overload the network stack 2011-01-19 00:07:06 +01:00
zicodxx 61a5524e4e Correction for rev1009: Do not need to delete object Dead_player_camera since it's a new level with new objects to begin with 2011-01-18 20:02:02 +01:00
zicodxx 3c744c9b91 In net_udp_send_objects() player_num byte was not considered for mode 1 resulting on incorrect object count for this mode 2011-01-18 19:43:05 +01:00
zicodxx b5adb1838a Allowing loading a savestate while being in death sequence and resetting Dead_player_camera correctly in init_player_stats_level() so forther death sequences won't screw up 2011-01-18 15:53:26 +01:00