Commit graph

129 commits

Author SHA1 Message Date
zicodxx f797decf45 Making D1X- and D2X-Rebirth more similar in behavior of which player limit is needed to start team-based game in both RELEASE and DEBUG builds 2011-05-20 17:10:19 +02:00
zicodxx 8962863723 Making D1X- and D2X-Rebirth more similar in behavior of which player limit is needed to start team-based game in both RELEASE and DEBUG builds 2011-05-20 16:15:07 +02:00
zicodxx 2f098796e0 Rearranged code to check for netgame-closed flag and refuse-players flag so they are updated correctly if another part of the code changes the menu item without activating it 2011-05-20 11:48:20 +02:00
zicodxx 914555fe81 Host can now decide (again) if players are allowed to display enemy names on HUD 2011-05-05 00:16:37 +02:00
zicodxx 040407cf02 Fix crash in multi_maybe_disable_friendly_fire() when killer == NULL; Do not let player join game when gamemode is HOARD or TEAM HOARD and hoard.ham is not available 2011-05-04 12:05:59 +02:00
zicodxx d3601c56e3 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:29 +02:00
zicodxx d9bbc359a2 When leaving game and still sending extras, don't forget to update the timer so we won't get stuck in an infinite loop 2011-04-21 20:52:33 +02:00
zicodxx f42aa8a5fc Improved security for UDP protocol: Add checks for correct packet size and - if possible - valid sender address (valid player) and making sure Clients only accept packets meant for Clients and Hosts only accept packets meant for Hosts 2011-04-13 00:19:42 +02:00
zicodxx baeca7ebfa 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; Removed ShowAllNames from Netgame structure as I see no reason why names display should be host-controlled; Increased UDP_NETGAMES_PAGES to actually show 3000 possible games 2011-04-12 00:45:21 +02:00
zicodxx d5619e806a Allow multi_send_fire when necessary and not crop to PPS so fix weapons with high firing rate 2011-04-08 01:38:00 +02:00
zicodxx 7f18afd5d7 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:34 +02:00
zicodxx d6fbef4e43 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:07 +01:00
zicodxx 3c9c7af995 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:34 +01:00
zicodxx fd53a1264b 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:38 +01:00
zicodxx a1f7da133e Introducing new BOUNTY Multiplayer game mode by Matt -1360- Vandermeulen <matt1360@gmail.com> 2011-01-19 02:19:17 +01:00
zicodxx 931d134357 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:10 +01:00
zicodxx 9cace92b4e 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:07 +01:00
zicodxx c0864b71a9 Fixed small bug in net_udp_list_join_poll() which was introduced when I reorganized the events for making console render global 2011-01-18 14:37:19 +01:00
zicodxx 0d997ed81a Converted console into a window and allow it to show in every part of the game; Fit several poll functions and kmatrix so they won't get interrupted by the console 2011-01-14 22:56:00 +01:00
zicodxx 8a10ec4238 Added feature to optionally disable friendly fire in Team and Coop games 2011-01-14 19:48:48 +01:00
zicodxx ba74b14753 When displaying kill goals in game rules, value must be multiplied by 5 to show the correct limit 2011-01-14 17:54:31 +01:00
zicodxx eeecf4016e Fixing code used for capping powerups in multiplayer - it was not correctly conting 4pack powerups; Cleaned up this code a bit and added more consistent naming convention for functions to maybe make it more understandable; Removed MULTI_PROTO_D2X_VER define as it's not needed 2011-01-14 14:29:08 +01:00
Chris Taylor 030aef43e3 For editor, replace use of ui_mega_process() with event_process(), with the editor's own default event handler; add EVENT_MOUSE_MOVED event with event_mouse_get_delta() accessor; add event_key_get() to replace ugly casting; rename mouse_get_button() with event_mouse_get_button() to keep with name convention; only send idle events when there are no input events so editor still works properly (or the same anyway); add and use event_send() function for input events (including idle) 2011-01-14 17:51:13 +08:00
zicodxx aca6890bd4 Fixed Menu setting for AllowedItems which was broken due to changed return value of newmenu_do1 2011-01-11 01:26:14 +01:00
zicodxx eac593a047 Fix for rev968: my_pnum must be defined static 2011-01-09 17:09:29 +01:00
zicodxx 281c9668bb Moved NoRedundancy, MultiMessages and NoRankings toggles from GameArg to PlayerCfg to be set via Misc Options 2011-01-03 02:01:26 +01:00
zicodxx 8a202f04ed Mouse wheel now can scroll through menu/listbox items; Right mouse button closes a menu (without the need of these ugly close boxes); Also added mouse-closing capabilities to credits, scores and kconfig menus; While being in UDP Netgames list, override keycode at PAGEUP/DOWN keypress to only flip pages without modifying citem also added messagebox showing TXT_INVALID_CHOICE when invalid netgame was chosen 2011-01-02 12:25:51 +01:00
zicodxx a1c830a92b Reworked object sending/receiving to work without unnecessary type casting and a bit less error prone; Also increased UDP max packet size to 2048 so we can send 7 objects per frame; Fixded joinign games - GameID was sent for full game info, not lite info 2010-12-23 22:42:26 +01:00
zicodxx 5172e33d84 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:55:26 +01:00
zicodxx fe84fa3a9a 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:59 +01:00
zicodxx 3bcb0ecdde 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:17 +01:00
zicodxx 3ccde930c3 Made resent_delay for net_udp_noloss_process_queue() a bit longer depending on the player's ping 2010-12-03 01:09:46 +01:00
zicodxx 3042de6649 When adding data from net_udp_send_mdata_direct to noloss queue, use data_len as length of data stream - not len which is longer and would then cause storing garbage 2010-11-25 14:17:28 +01:00
zicodxx 47e07da70a When verifying objects, do not necessarily check for controlcen as it's not necessarily there in some anarchy missions 2010-11-23 16:16:36 +01:00
zicodxx c1f7442f23 Took over variable VerifyPlayerJoined for UDP protocol usage as well to get object and extra packet sending in order as well as regulary resending UPID_SYNC for latecoming players. Should resolve problems when joining already running UDP games 2010-11-22 22:44:03 +01:00
zicodxx 283172aff6 Added format arguments to all printf, sprintf and snprintf calls missing them to prevent warnings/errors with some distributions of gcc 2010-10-14 16:46:20 +02:00
zicodxx e34035ec05 in pdata communication swap_bytes was set for create_shortpos causing problems on PPC architecture; in multiplayer host menu set citem to START GAME by default 2010-09-01 17:01:51 +00:00
zicodxx b23226a92d Moved levelnum-sanity-check in game_param_handler so it will be checked when screen is changed to allow entry of secret levels (which does not work in D2X-Rebirth - it's only done for code similarity); added menu item START GAME for consistency and added proper subtitle for game setup page 2010-08-22 09:25:24 +00:00
zicodxx cb933f9f80 When switching from COOP to any other game mode, make sure Netgame.max_numplayers, MaxNumNetPlayers as well as the menu text showing the player limit is updated correctly 2010-08-16 11:50:37 +00:00
zicodxx 6c4cd7b22e Fixing crash when joinging game over UDP Netlist: when exiting the menu for any reason, return 0 instead of following the code and possibly lead to drawing text from a newly free'd pointer - D'OH 2010-07-21 16:58:38 +00:00
zicodxx 8d78876d13 Thanks to Marix for hinting me I should not init a pointer with quotes if I plan to allocate/free it... my stupid-level officially broke the record 2010-07-20 18:38:29 +00:00
zicodxx 0ce37b89bb Added expandable classes for HUD messages (like D1X but slacked) to better handle Multi messages or redundant messages; Rewrote HUD code completely; Changes -playermessages to -multimessages since this is more appropriate; Removed remnants of -mprofile 2010-07-13 06:35:25 +00:00
zicodxx 1093aa0d07 Improved hanlding for closing sockets - doing via closing of Game_wind when available or in specific multi menus; Also handling GM_GAME_OVER setting over Game_wind closing as well if apprpriate - cleaner and helps to cleanup multi when mission is over 2010-07-08 09:35:59 +00:00
zicodxx cb1b0bdb26 Reworked handling of Netlist now also showing full game info; Prevent Clients from sending lite_info; Make lite_info show numconnected instead of numplayers as this would show disconnected ones as well; Removed reusing ports on different instances in Windows build - only screws up several games running on one machine 2010-07-08 06:37:23 +00:00
zicodxx 02247f5abb When selecting coop game mode, make sure that besides max players menu values also actual player number is set and menu text is updated properly 2010-07-05 08:05:32 +00:00
zicodxx 9d3abbbf32 Fixes for rev1148: Was too hasty with calling net_udp_close; Fixing typo in WSACleanup() 2010-07-04 13:57:21 +00:00
zicodxx faab4b0acb Implemented Winsock functions for UDP which I totally forgot about; Now when leaving game in any way, close sockets and Winsock stuff 2010-07-04 12:47:30 +00:00
zicodxx 4d5ff1bd29 Fixed Compiler-warning on Windows; Fixing Windows build which was not linking against SDL 2010-07-04 07:07:51 +00:00
zicodxx 3ee2d7c4fa Renamed manual_join to direct_join; Aligned letlist tabs a little bit 2010-07-01 09:08:30 +00:00
zicodxx 3033cea7b4 Always try to open UDP default port when discovering Netgames and give warning if that fails; If entered IP address cannot be resoled, do not warn me twice 2010-06-30 15:57:13 +00:00
zicodxx f81a5d8601 Removed SurfingNet global and made tabs a parameter of newmenu_dotiny; Same procedure with MenuReordering which is replaced with newmenu_doreorder to set reordering flag specifically 2010-06-30 15:26:27 +00:00
zicodxx ca9c43d07f Improved handling of multi level sync and exit smoothly back to the menus; Fixed another small bug in lite_info broadcasting which was sending full info; By broadcasting full info, host could cripple Netgame so a new security measure is implemented to protect host from letting his game be overwritten from outside 2010-06-29 20:51:38 +00:00
zicodxx a54a0a6975 Added UDP Netlist to join LAN games discovered/announced via broadcast 2010-06-29 16:41:08 +00:00
zicodxx ead78aa6aa Aligned default width for IPX-Netlist menu to fit possible items a bit better; Fixed two small bugs when sending and receiving lite_info in UDP; Allowed broadcast on UDP sockets (for later use) 2010-06-29 06:47:46 +00:00
kreatordxx 046ef88c77 Make menus for hosting a netgame stack, make quitting work with newmenu_do2 and simpler 2010-04-04 09:41:53 +00:00
kreatordxx 493b07e3da Get rid of a heap of uses of Function_mode, quit properly (freeing all windows and asking for confirmation for game) when clicking close box 2010-04-04 01:31:48 +00:00
kreatordxx 33545ae73f Remove calls to nm_draw_background1 to show newmenus stacked 2010-04-03 09:10:20 +00:00
kreatordxx dae5968170 Add a default event handler for screenshots, entering debugger, Redbook repeating etc 2010-04-02 05:01:08 +00:00
kreatordxx 94e8a83bb4 Initialise 'playing' to 0 for UDP kmatrix, making sure player progresses to next level; always return 1 when starting to join a UDP game so it doesn't immediately return to the main menu 2010-03-27 02:54:41 +00:00
kreatordxx 95d7c4491d Make all windows except game and editor use EVENT_KEY_COMMAND, returning 1 if handled; pass NULL instead of userdata for the PCX filename, for newmenu_do1 2010-03-26 14:05:40 +00:00
kreatordxx 7b478e9853 Make all listboxes fall back to main event loop for flexibility 2010-03-18 07:02:38 +00:00
kreatordxx 1f479a756c Call game_flush_inputs for all windows' EVENT_WINDOW_ACTIVATED, so clicking on a pilot doesn't bring up the multiplayer screen for example 2010-02-25 08:00:15 +00:00
zicodxx 64af50c05a 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 eb92f445ca Add EVENT_WINDOW_DEACTIVATED; move many game_flush_inputs, start_time and stop_time calls to game_handler as well as digi_pause_digi_sounds and digi_resume_digi_sounds 2010-02-02 03:38:29 +00:00
kreatordxx 35584d725b Leave kconfig_idle early if exiting kconfig to avoid erroneous memory access; initialise menu's citem properly; add EVENT_NEWMENU_CHANGED; activate USE_IPX in Xcode while I'm still changing net_ipx.c 2010-02-01 06:55:38 +00:00
kreatordxx ff04fd682e Fix crashing when doing menus in multiplayer, don't let player move when in automap 2010-01-31 07:45:26 +00:00
kreatordxx f83741d89f 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 3f90a9cb41 Make response to EVENT_WINDOW_CLOSE conform to 'handling' system - returning 1 means abort closing 2010-01-28 03:27:49 +00:00
kreatordxx 3a116769be Remove all uses of LeaveGame jmpbuf to allow more changing of main loop 2010-01-27 04:30:31 +00:00
kreatordxx c50b954c00 Add EVENT_WINDOW_ACTIVATED, change EVENT_DRAW to EVENT_WINDOW_DRAW and EVENT_CLOSE to EVENT_WINDOW_CLOSE 2010-01-20 05:10:32 +00:00
kreatordxx fc84dd37b2 Make net_ipx_show_game_rules and net_udp_show_game_rules into windows 2010-01-19 14:53:06 +00:00
kreatordxx b6452e75b7 Change newmenu and listbox callback systems, adding use of d_event, for greater flexibility 2010-01-07 14:49:07 +00:00
zicodxx 62b75469dd Adding macros USE_UDP and USE_IPX for the compiler to compile with either UDP- and/or IPX-support and removed the older IPX macros 2009-11-29 16:46:13 +00:00
zicodxx 6b6b66af0c Fixed building error on Windows caused by false socket variable; Fixed compiler Warnings on Mac; Updated Mac build files; Unification in version numbering 2009-11-28 20:57:57 +00:00
zicodxx 0d4a53766e Again making the joining safer 2009-11-25 00:26:26 +00:00
zicodxx 53c19912fa Removed timer_get_approx_seconds() and replaced with timer_get_fixed seconds since it was too inaccurate and created significant offset 2009-11-24 22:43:41 +00:00
zicodxx 1ec38c1503 Improved Disconnect-handling between levels; Improved Kick-handling; Do not say that IPv4 and IPv6 builds are not compatible in scons -h anymore 2009-11-24 15:20:09 +00:00
zicodxx 34019d6414 Remove the IP check when processing game info or version deny as the IP might be translated (IPv6 especially) 2009-11-24 12:12:15 +00:00
zicodxx febe5d124d Abstracting networking protocols - Step 4: Implemented new UDP layer with Client/Server communication, Packet Loss Prevention and strict Version checking. Netgames list will follow later. 2009-11-24 09:48:53 +00:00