Commit graph

74 commits

Author SHA1 Message Date
zico 3553ea3cf7 Added Rankings functionality like in D2X-Rebirth while still utilizing eff file from original D1X source; Decrease personal score when killing multi buddy and don't increment towards kill goal 2013-04-08 12:46:05 +02:00
Kp cb537edd82 Use ubyte/const ubyte consistently in multiplayer messaging 2013-03-31 20:41:21 +00:00
Kp 6eb53cfea2 Add unused multi_send_door_open parameter 'flag' to match D2X 2013-03-24 22:53:12 +00:00
Kp a4068234b4 Normalize whitespace in copyright header to match D2X-Rebirth 2013-02-24 02:39:48 +00:00
Kp 3edbfa2c90 Normalize comments and whitespace to match D2X 2013-02-25 02:00:02 +00:00
zicodxx 6f72e2846c Moved multi_* declarations to multi.h - patch by Kp 2013-01-03 16:33:40 +01:00
zicodxx 38e847828e Moved vers_id.h inclusion to where it is needed - patch by Kp 2012-11-02 18:35:55 +01:00
zicodxx 33bf139002 Redefined lotsa variables, functions and parameters as const and/or static - patch by Kp 2012-07-23 01:17:52 +02:00
zicodxx 63fe8ddc37 Introduced INITIAL_ENERGY and INITIAL_SHIELDS defines from d2x and on that way added handicap feature for multiplayer as well; incremented multi proto version 2012-06-18 01:45:17 +02:00
zicodxx 1d68e2d3ba Optimization for quaternion structure: Stuffed orientation in shorts and removed figure out segnum by position - saving 10 bytes for each positional update in Multiplayer; Also removed render_type from pdata to save yet another byte 2012-05-26 17:53:05 +02:00
zicodxx d4dfd1fb40 Introduced quaternion functions to replace vector matrix where size matters - created by Florian Feucht; Added option for pdata packets based on quaternion in Multiplayer game; Removed PF_LEVELLING from new player objects to prevent jittering in player banking 2012-05-21 17:06:47 +02:00
zicodxx c5b3fc162e Incremented version to 0.57.3; Added Release notes 2012-05-10 19:10:45 +02:00
zicodxx 8cc22d8343 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:35 +02:00
zicodxx 8dfb4cde57 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:28 +02:00
zicodxx 0472e76895 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; Removed long obsolete control_invul_time varible 2012-04-27 02:09:46 +02:00
zicodxx 20e8b6c497 fixed improper player disconnecting which might have been caused by endlevel packet 2012-04-23 16:15:20 +02:00
zicodxx 4287e713b1 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:27 +02:00
zicodxx 897a6aaf6b 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:46 +02:00
zicodxx 2a15431ec7 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:25 +02:00
zicodxx 9990b806a5 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:23 +02:00
zicodxx 9ca56e4039 fixed glitch when reappear and explode packets are misordered, rendering player invisible 2012-04-07 12:32:22 +02:00
zicodxx 1a76d33345 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:15:58 +02:00
zicodxx 32ebfab29d Allow a total of 32 different player ship textures and stored N_PLAYER_SHIP_TEXTURES in player.h 2012-03-28 12:26:19 +02:00
zicodxx 1371874e0d 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:38 +01:00
zicodxx 3cad8885d4 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:08 +02:00
zicodxx 6fdf44035e 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:45 +02:00
zicodxx 7638390173 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:20 +02:00
zicodxx af7c22faa2 Added multi_send_data_direct to send multibuf to a specific player (i.e. Host<->Client, not Client<->Client); Overhauled kill sending/receiving and computation to rely in host information about game_mode-related variables (team_vector, Bounty_target) which are vital for consistent kill computation; Added function to send/update game_mode-related variables and solve /move command with this as well instead of workaround via updating lite_info; Introduced /move commend from Descent2 to move players between teams 2011-05-25 15:25:06 +02:00
zicodxx f2fb5c462a Host can now decide (again) if players are allowed to display enemy names on HUD 2011-05-05 00:16:35 +02:00
zicodxx defdf0090f Remember previously set up netgame variables in pilot-related file with extension ngp - due to feature consistency for UDP only 2011-04-22 17:14:27 +02:00
zicodxx 5c4a3850cd Little fix for typing-indicator in multiplayer - was showing comma even if no player name was displayed; Removed team_vector from UDP lite_info structure - it's not needed; Increased UDP_NETGAMES_PAGES to actually show 3000 possible games 2011-04-12 00:45:06 +02:00
zicodxx c63f3f7682 Improved syntax for Multi messages/commands: Commands starting with '/' and those accepting arguments as well as Player/Team messages require space after ':' ; Added indicator on HUD to show if a player is typing a message to prevent accidential kills 2011-04-11 17:47:12 +02:00
zicodxx 85f7be583f Client-side implementation for Tracker support by Matt 1360 Vandermeulen including improvements in udp_dns_filladdr and IPv4/IPv6 compability; Very little adjustments by me, too including IPv6 support for Windows (untested); Actual tracker code will follow later as seperate branch when it's done 2011-04-05 02:24:30 +02: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 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 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 ce50e7d4e7 Added feature to optionally disable friendly fire in Team and Coop games 2011-01-14 19:48:36 +01:00
zicodxx 4e5e3fa604 Added Descent2 Multiplayer features: Kill goals, Allowed play time; Bright players, Invulnerable when reappearing 2011-01-14 17:56:14 +01:00
zicodxx 6e0ea332de Removed D1X implementation of multiplayer powerup capping and added D2X code to replace this (UDP-only); Added a bunch of D2X code for general and multiplayer powerup dropping to make codes more consistent to each other; Removed MULTI_PROTO_D1X_VER and MULTI_PROTO_D1X_MINOR defines since they are not needed anymore 2011-01-14 14:29:36 +01:00
zicodxx 401a546bb2 in IPv6 builds also send regular broadcast packets to get games found via LAN between IPv4 clients/systems and IPv6 clients/systems; rather than identifying (lite_info) games via IP use randomly generated GameID and game name to prevent duplicated coming from IPv6 builds 2010-12-22 14:53:23 +01:00
Chris Taylor e9fba443ef Fix warning for deliberate GameTime64 wrap; uncomment multi_object_to_object_rw and multi_object_rw_to_object prototypes 2010-12-22 17:38:52 +08:00
zicodxx 4b265301a0 Made GameTime to GameTime64 using fix64; Changed all structures saving GameTime64 for internal timer purposes to store fix64 and added converting functions to save such times in fix; For Savegames/Demos always reset GameTime64 to 0 while saving and putting all timer values to safe limits, Multiplayer objects are sent in similar fashion 2010-12-22 01:17:49 +01:00
zicodxx ffc73ed4f2 Introduced new data type fix64 to be used for new timers which can last 4462756 years instead of 9 hours; Introduced new timer functions to update and query program time; Used new timer all over the program except GameTime (which comes next) 2010-12-11 00:18:03 +01:00
kreatordxx 8a79002f2d On Mac OS X - no longer have to copy SDL_mixer.h to SDL framework; frameworks can now be in /Library/Frameworks; fix for obscure compile error involving u_int32_t 2010-09-02 00:07:37 +00:00
kreatordxx 8cf06690d7 Make game respond to EVENT_KEY_COMMAND for key commands, allowing default key handler (later) 2010-03-31 09:18:28 +00:00
kreatordxx 9331893332 Make kmatrixs into windows, rename Fuelcen_seconds_left to Countdown_seconds_left for consistency 2010-03-20 13:21:53 +00:00
zicodxx e22b62eee4 Make Version-check for UDP also cover Micro-versions; Making sure versioning will act same way as conf.h for MacOS 2010-02-23 15:05:50 +00:00
kreatordxx 408f2ffd33 Fix crashing when doing menus in multiplayer, don't let player move when in automap 2010-01-31 07:45:26 +00:00
kreatordxx 50afcedda5 For multiplayer, close menus from game_handler by doing frame processing in response to EVENT_WINDOW_DRAW, replacing multi_menu_poll system with single multi_menu_check call 2010-01-29 03:36:44 +00:00
kreatordxx 6b4d952ebc Change newmenu and listbox callback systems, adding use of d_event, for greater flexibility 2010-01-07 14:49:07 +00:00