Commit graph

1099 commits

Author SHA1 Message Date
zicodxx 6d3782996c Fixed some non-critical compiler warnings; Now compiling with -std=c99 -pedantic and fixed warnings (except for editor build) caused by this 2012-05-14 12:20:30 +02:00
zicodxx 20b8e59305 Incremented version to 0.57.3; Added Release notes 2012-05-10 19:10:49 +02:00
zicodxx bfef7393d5 Reduced timeout from 10 to 5 seconds 2012-05-10 18:54:22 +02:00
zicodxx 57d3f3b34f Wrote seperate function for weapon autocycling that also cycles through non-autoselect weapons and properly respects super laser; Added option to not autoselect weapon when firing; On the way, smoothed the menu text in misc menu a bit 2012-05-10 14:39:26 +02:00
zicodxx 4eaddede80 Reuse pre-defined player objects when loading coop savestate to revent messup when player amount or orders change in a certain way 2012-05-10 01:40:39 +02:00
zicodxx 1475eccac4 Added more versatility in picking targets for the creation of smart blobs - especially for Multiplayer; cleaned that code a bit; made dodging of homing projectiles a little easier 2012-05-09 01:22:31 +02:00
zicodxx b0f34d2b89 fixed copy/paste mistake 2012-04-30 00:38:45 +02:00
zicodxx 347775de93 Similar to Network_new_game introduced imulti_new_game to exclusivly use in multi.c to execute stuff in new level only when starting a new game - for example resetting player ship inventory which is not supposed to happen on each level 2012-04-27 02:09:48 +02:00
zicodxx 6e0abf59c4 little reorganization for draw_hud(): draw multiplayer names first, reticle last to prevent anything being drawn over by floating names and reticle not messed by anything else 2012-04-24 11:55:16 +02:00
zicodxx 4e4f949bc0 fixed improper player disconnecting which might have been caused by endlevel packet 2012-04-23 16:15:19 +02:00
Chris Taylor 561aba1d9d Change MarkerScale changing keys from KEY_COMMA and KEY_PERIOD to KEY_F11 and KEY_F12 respectively, so I can use the former as controls in the automap 2012-04-22 17:38:14 +08:00
zicodxx b02060216e Removed usage of 'oldmaxnet' variable when switching between coop and other game modes which would not be correctly set when coop mode is loaded from a netgame profile; Removed 'MaxNumNetPlayers' variable as already replaced by Netgame.max_numplayers 2012-04-18 11:28:23 +02:00
Chris Taylor 84bbf2c48e Make a new mission when making a new mine to avoid a crash when testing it straight from the editor and winning, only create a new mine if a mission isn't loaded, init Cursegp to NULL, remove key command for ToggleDrawAllSegments since add segment now has ctrl-A 2012-04-17 17:37:15 +08:00
Chris Taylor 8b8e5d2635 Call new obj_relink_all after playing a demo, so the editor is (hopefully) never faced with poorly linked objects and hence crashes 2012-04-17 17:15:09 +08:00
Chris Taylor 17bdf55a05 Call free_mission() if a demo is corrupt, so the editor doesn't load a corrupt level 2012-04-17 15:46:39 +08:00
Chris Taylor aecfbbee23 Set object lifeleft to IMMORTAL_TIME if the byte read in demo playback is -1. This allows the objects to stay when playing a demo, going to the editor then playing the game from the editor 2012-04-17 15:36:23 +08:00
Chris Taylor 5197d7665a Skip rendering of OBJ_NONE objects to avoid a failed Assert (can happen when playing a demo then going to the editor) 2012-04-17 15:20:14 +08:00
Chris Taylor 1c85ce7848 Finish the game cleanly, closing Game_wind, if Current_level_num is 0 2012-04-17 15:05:43 +08:00
Chris Taylor e55406d1ee Make sure Cursegp is initialised if using it to set an object when loading a game (EDITOR build). Thought I already committed this 2012-04-17 14:28:50 +08:00
Chris Taylor 1fd979a76b Avoid crashes when clicking on close box with a center, switch, object or wall editing dialog open; also when playing a level, going to the editor, going back to the game then dying 2012-04-16 14:42:34 +08:00
Chris Taylor 82cce8afb6 Make movement in the editor's game screen use the player controls, make that movement more like the automap and resolve some likely conflicting key commands 2012-04-16 13:26:55 +08:00
zicodxx 8fc772586c fixed two bugs caused by recent Multiplayer cleanup: Set more player-death-related veriables outside of dead_player_end() when creating new ship as not covered in subfunction is Palyer_is_dead is not true; also init my own inventory properly in multi_prep_level to get our inventory straight after receiving netgame information 2012-04-16 01:13:29 +02:00
zicodxx 0011e44087 Fixed set but unused variables in OGL build 2012-04-15 16:15:21 +02:00
zicodxx 8a136a461c addition for last commit - forgot to fix when resolving merge-conflict 2012-04-15 16:06:02 +02:00
zicodxx 3a96935748 Further Multiplayer cleanup: moved gobal variable resets from multi_new_game() to proper function calls; added pnum variable to init_player_stats_game() and init_player_stats_new_ship() so these can be set for each player when starting match; added multi_new_level() calls when setting up game as well when trying to join game; cleaned multi_reset_stuff() from variable resetting that happen in general game code; when being dumped from game, made sure no packets are sent during messagebox dispaly; replaced MAX_NUM_NET_PLAYERS by MAX_PLAYERS as it's the same definition 2012-04-15 15:32:48 +02:00
Chris Taylor 311f835bf8 Clicking on mine elements in the editor now works in ogl 2012-04-15 13:45:45 +08:00
zicodxx 90e41c1c85 When possibly sending player positions prior to firing, do that before messing multibuf; Added more strict sanity checks for outgoing and incoming multi packets; Moved some general game stuff from net_udp_init() to multi_new_game() 2012-04-15 03:05:28 +02:00
Chris Taylor 96d872adb8 Set the correct palette for the editor 2012-04-14 18:29:02 +08:00
Chris Taylor d0544583fd Fix bugs switching between game and editor and back: make sure ModeFlag is set to 0 before it has any chance to show an alert message, fixing a crash; allow OBJ_NONE in Assert; make Game_wind invisible when loading editor in case we show an alert; call mouse_flush() in ui_init() to fix mouse issues 2012-04-14 17:42:44 +08:00
Chris Taylor 7b6bfa5fc8 Fix crash when playing a level straight from the editor (check if Current_mission has actually been loaded, like the other ex-crash) 2012-04-14 15:18:50 +08:00
Chris Taylor 2ca5303028 Delete-E while playing a level now works properly - it closes Game_wind and sets Cursegp if necessary when going to the editor 2012-04-14 15:09:21 +08:00
Chris Taylor 2ab19658dc Only do an Int3 in write_game_text_file when PHYSFS_close returns 0, which is an error, not when it returns 1 2012-04-14 14:13:01 +08:00
Chris Taylor 372d0f2733 Set Gamesave_current_version to correct version when making a new mine, move create_new_mine to gamesave.c 2012-04-14 13:46:20 +08:00
Chris Taylor 8ba0bdc492 Fix crash when loading a level in the editor 2012-04-14 13:34:43 +08:00
zicodxx 2c7a8b419b Removed redundant call of songs_stop_all() when starting credits; Added failsafe for loop in case MHDR_DONE flag is not properly set by MIDI device; Added more verbosity for hmp_reset() 2012-04-12 19:45:45 +02:00
zicodxx e45dd761b3 addition for r1310 forgotten to commit 2012-04-12 11:31:30 +02:00
zicodxx f35eba5f04 Fixed some Multiplayer bugs: Reactor invulnerable time did not checked for hours spent in level so reactor would become invulnerable again after 60 minutes; Fixed the fix (heh) for misordered explode/reappear packets; Reset Player_eggs_dropped when initializing new ship so eggs are properly dropped when player disconnects two times without respawning; Cleaned player disconnecting a little bit and made code more straightforward 2012-04-12 02:15:26 +02:00
Chris Taylor e7e034b7bd Editor exits cleanly when clicking the close box, no more redundant gr_uscanline call in gl_urect for ogl (an initial attempt to fix the previous bug) 2012-04-09 20:41:47 +08:00
Chris Taylor e2bf33dbdc No setting the screen mode when calling a newmenu function, so if it shows the 'Save Mine' messagebox in the editor, it won't change the screen resolution and trash everything. (If this causes problems, we can make it use the MessageBox if it's still in the editor, nm_messagebox otherwise) 2012-04-09 19:20:02 +08:00
zicodxx bf2a058129 in software rendering scale savestate thumbnail to correct size 2012-04-09 00:19:16 +02:00
zicodxx 091dbd8769 plasma fire can ignite bombs which are dropped while firing. to compensate added a timed check where at least one projectile must be older than 200ms to trigger a possible collision. this fixes this issue if the player is moving away from the bomb 2012-04-08 16:59:51 +02:00
zicodxx 6a4ea459e7 added specification for Descent: Destination Saturn briefing screen to properly show briefings; added different briefing structure for Descent 1 Shareware which has a slightly different order of the usual briefings 2012-04-08 15:47:58 +02:00
zicodxx a22b6aa6ec record shields if player is invulnerable to get proper shield display in demo playback if player respawns with invulnerability on 2012-04-07 16:13:12 +02:00
zicodxx d0ddf0362a fixed glitch when reappear and explode packets are misordered, rendering player invisible 2012-04-07 12:32:22 +02:00
zicodxx d940dcb381 removed redundant definitions of FILENAME_LEN 2012-04-07 11:41:17 +02:00
zicodxx 45e351e46c in choose_drop_segment let fallback correctly check for reactor segment 2012-04-07 10:58:46 +02:00
zicodxx 84a3eb2fac Introduced fixmul64 returning fix64 type to use with check_point_to_face() and prevent fix overflow with very large faces; on the way cleaned up NO_FIX_INLINE remnants and replaced QLONG with fix64 2012-04-05 02:41:59 +02:00
zicodxx 39b0dacd6a variable declarations come first 2012-04-05 02:21:33 +02:00
Chris Taylor a6502d4471 Complete previous change (whoops) 2012-03-31 12:38:14 +08:00
zicodxx 565f629688 Fixed Redbook playback which was not repeating the CD after finishing 2012-03-29 14:49:45 +02:00
zicodxx c3b520b6e2 Immediately relay pdata packets from clients to others which should reduce artificial delay; allow sending of pdata packet when firing if enough time has passed since last update; only answer full game info requests 2 times per second and lite info 8 times per second 2012-03-29 10:16:33 +02:00
zicodxx 66827b4b18 Release Fusion charge when changing to another weapon similar to D1X-Rebirth 2012-03-28 13:49:02 +02:00
zicodxx df87e110b0 Dynamically allocate line to read from descent.cfg and ensure a safe length 2012-03-28 13:43:35 +02:00
zicodxx 26bb1f6a34 Allow a total of 32 different player ship textures and stored N_PLAYER_SHIP_TEXTURES in player.h 2012-03-28 12:26:24 +02:00
zicodxx 4323096cc4 Since the kicked message is shown after player is technically removed from the game we do not know hosts name anymore. Message changed accordingly 2012-03-28 12:09:22 +02:00
zicodxx 41365995e8 Fixed unhandled case in key reading when escort hotkeys are disabled 2012-03-28 11:07:17 +02:00
zicodxx d3666c4033 Fixed double wall-object-damage introduced 20111124 by applying more strict rules to wall-colliding and wall-scraping where latter now is player-exclusive 2012-03-28 11:02:30 +02:00
zicodxx a5369e13d5 properly disable cheats when loading a saved game so only cheats that were stored are re-enabled 2012-03-28 10:07:16 +02:00
zicodxx 4852ceb347 Allow .flac to be a filename extension for sng file and jukebox 2012-03-28 10:03:26 +02:00
zicodxx b22a6b5582 Fix compile-time error when building without editor 2012-03-28 09:56:33 +02:00
zicodxx 7d823c593d Call all necessary MVE functions when initializing robot movies to prevent crashes if a robot movie is the first one the program plays 2012-03-28 09:53:24 +02:00
Chris Taylor b542189ab6 Remove all remaining uses of Function_mode, checking for the existence of EditorWindow where necessary instead 2012-03-19 14:09:26 +08:00
Chris Taylor e28ba63503 The editor now falls back to the main event loop in inferno.c, File->Exit now works as intended and get closer to making the editor and game work together 2012-03-19 13:49:19 +08:00
Chris Taylor cb0f7a4b04 Do a bit of a tidy up for the editor, dump code from editor() within the loop into new editor_handler() 2012-03-18 12:13:12 +08:00
zicodxx 02fbfada3a Unbuffered writing of gamelog.txt has it's own argument and is not triggered by -verbose argument anymore; Also increases verbosity of packet-loss-prevented packets by showing their types when added to queue 2012-01-09 15:21:09 +01:00
zicodxx 3ce46392ef calling scrape_object_on_wall in each case of HIT_WALL more reliable to properly do hazard surface damage and prevent weapon objects from possibly sliding against walls 2011-11-24 11:31:05 +01:00
zicodxx 7eff144bbe Smoothed disabling of friendly fire to re-enable splash damage possible when friendly fire is disabled 2011-11-24 11:04:45 +01:00
zicodxx 093c841e50 Sliders can now be operated with Numpad arrows if numlock if off 2011-11-14 22:14:57 +01:00
zicodxx de3c04c582 Do not attempt to check for MULTI_PROTO_VERSION when requesting lite_info 2011-11-03 14:26:46 +01:00
zicodxx 2f08947f48 Introduced extra short based on MULTI_PROTO_VERSION for version-independent Multiplayer-compability-check; Changed version to 0.57.2 to make new version checking not cause problems with stable release 0.57.1; Removed old version_major/minor variables from netgame and player structures since DXX handles this independently; Cleaned up old version stuff and copyright messages 2011-11-02 01:04:42 +01:00
Chris Taylor 6eb4629ac2 Fix comparison is always false warning 2011-10-09 20:08:26 +08:00
Chris Taylor e01c25fbd2 Initialise dyn_light using memset, fixing a warning 2011-10-09 18:26:43 +08:00
zicodxx aa8286c1d6 Fixed set but unused variables 2011-09-27 01:31:19 +02:00
zicodxx 52f3f87359 Avoided variable array initializations which some compilers do not like; Also made sure declarations happen first inside (sub)functions; Fixed set but unused variables 2011-09-26 23:00:24 +02:00
zicodxx 80bf0580e4 Gave throttle it's own sensitivity and deadzone settings; Added patch by Hans de Goede to let Slide-On and Bank-On settings use invert settings from Slide- and Bank-axes 2011-09-26 20:22:38 +02:00
zicodxx 8422d07cae Code consistency checks by _Tyr_; Fixed set but unused variables 2011-09-26 19:03:20 +02:00
zicodxx ba3d2e2d42 Code consistency checks by _Tyr_; Fixed set but unused variables 2011-09-26 18:58:12 +02:00
zicodxx d444c571f5 Fixed misuse of gr_bitblt_find_transparent_area() caused rear view to be shifted on some cockpits 2011-09-25 01:01:53 +02:00
zicodxx 236e1c97fc Reworked wall_toggle() to work with index for segnum instead of a pointer, hopefully making the consistency check less error prone 2011-09-24 22:03:36 +02:00
zicodxx 2802ea7f08 Consistency check for segment number in find_vector_intersection() and obj_create(); Added more debug output for invalid segment numberin get_seg_masks() 2011-09-24 11:15:31 +02:00
zicodxx 813dd1a05b When restoring Coop players and make turn them into ghosts perform a check if this player is actually a valid player so we do not just blindly use any object number from a possibly uninitialized player structure 2011-09-23 19:48:48 +02:00
zicodxx a5d7454f64 Added wrapper functions dxx_sendto and dxx_recvfrom to collect simple statistics about amount and size of packets sent/received per second; Actually fixed packet scheduling in main UDP frame - was sending more than intended - stupid me 2011-09-21 20:03:46 +02:00
zicodxx 8b5b6b822d Fixed overuse of multi_send_sound_function when handling afterburner in case player is dead or escaped 2011-09-21 19:49:29 +02:00
zicodxx aa165490e6 Streamlined joining, rejoining, disconnecting players and timeouts, getting rid of unwanted rejoin messages and let host remove a player for good without rejoining it via pdata packet to really get rid of lossy or unwanted players; Care for rollover of pkt_num of stored mdata packets 2011-09-21 12:04:10 +02:00
zicodxx c71591c4e6 Removed saving/restoring the state of Packet Loss Prevention from Netgame profiles 2011-09-19 13:42:00 +02:00
zicodxx 951f3edd80 Reworked Packet Loss Prevention: If an important packet could not be recovered until it timed out, dump player who failed sending/receiving it; Noloss queue can proces spackets until a certain traffic has been reached; In main UDP frame schedule different types of packets depending on PPS to decrease traffic produced in one frame, hopefully preventing too much loss in high-traffic situations; Small code cleanups; Added new dump signal for loss of important packet; When dumping player also disconnect that one in case the dumped player does not accept the signal 2011-09-19 13:01:11 +02:00
zicodxx a8892bd13a Added new priority level for MDATA packets to also send them ASAP without the need for an ACK; Streamlined sending multibot and fire packets and on the way artificially and automatically scaling fire rates, energy/ammo usage and damage of weapons in Multiplayer to decrease traffic easy way without changing the Gameplay 2011-09-15 10:45:48 +02:00
zicodxx d9ca3a2287 Removed support for IPX protocol and MS-DOS-Multiplayer-compability due to age and lack of real need and to really improve on the Multiplayer without adding too much complexity for backwards-compability 2011-09-14 01:15:32 +02:00
zicodxx 7efd8f8183 Due to conversion from fix64 to fix Boss_dying_start_time was not 0 when saving even if boss was not dead - fixed; Fixed warning about set but unused variable 2011-08-26 18:56:22 +02:00
zicodxx 27a638a33a Added Polygon model viewer and GameBitmaps viewer in non-Release build for debugging, messing around, DXX-Redrawn, etc. 2011-07-20 14:44:49 +02:00
zicodxx 03f0613c8d Keep copyright information up to date 2011-07-19 11:36:26 +02:00
zicodxx 0e50a9e7c4 Properly call multi_leave_game() when host leaves multi game to let clients exit smoothly 2011-07-19 11:31:08 +02:00
zicodxx 5ea72ad2fc Fixing Redbook hooks: Initialize last_check_time in RBACheckFinishedHook(); Execute RBACheckFinishedHook() during EVENT_WINDOW_DRAW in standard_handler() as EVENT_IDLE rarely happens if you have a shivering Joystick connected for example 2011-07-16 16:02:22 +02:00
zicodxx a28f482027 Correctly proceed to new Redbook track if songnum != Song_playing (hopefully - to confirm); Using songs_stop_all() in songs_uninit() to clear redundancy; added some notes to functions to shine a bit light on the mess of some functions 2011-07-16 11:36:40 +02:00
zicodxx dafe61b488 properly check and fix viewMatrix in free flight auotmap 2011-07-15 16:01:40 +02:00
zicodxx 4367c9a117 Fixed typo in Packets per sec. in GAME_RULES screen; Reduced max amount of games shown on netlist to 900 to reduce RAM usage... as if we'd ever reach this 2011-07-15 11:46:06 +02:00
zicodxx b83e27005f Bail out of hmp_reset() if midiOutOpen fails and return error with -debug set; execute hmp_reset() before first song plays; renamed digi_win32_stop_current_song() to digi_win32_stop_midi_song() to keep naming convention; Fixed some compiler warnings 2011-07-15 10:43:03 +02:00
zicodxx 8a495dab09 When updating netgame hoard game flag used for compability reasons must be removed as it can be set - otherwise screwing up game mode display in netlist menu 2011-07-15 01:34:36 +02:00
zicodxx fa96b3e5d7 Due to descent2.ham reloading, hoard.ham must realod properly as well; cover multi_send_sound_function by plp preventing sound loops get lost/screwed in action 2011-07-14 13:38:04 +02:00
zicodxx 0eca250fd4 When colliding with robot not controlled by us in Multi-Robot game do not apply force or damage - wait until the robot is under our control - preventing juggeling robots back and forth between players and creating massive damage 2011-07-14 13:36:44 +02:00