Commit graph

242 commits

Author SHA1 Message Date
Kp a63fe62cb3 Add typedef for multi_allow_powerup_text type 2016-07-09 17:58:35 +00:00
Kp be8022ff41 Add typedef for GMNames array 2016-07-09 17:58:35 +00:00
zico 7684ce92e4 Added packet to notify clients about a changed vulcan ammo count in a weapon powerup in case player collects ammo but leaves the gun itself. 2016-06-06 17:26:59 +02:00
zico 1856e73ca6 Addition to 3366658a5bd2b30a82949b8b301e97b324ce539d: Changed show_netgame_info and pass netgame as reference and const; removed struct and extern; declared ngii inside show_netgame_info(). 2016-05-30 13:49:06 +02:00
zico 7692d19e2b Raised default Packets Per Second to 30 and added define for the default in multi.h 2016-05-10 13:45:08 +02:00
zico 3366658a5b Updated 'Netgame Rules & Info' screen, added option to toggle it ingame via SHIFT-PAUSE, added hint to netgame help menu 2016-05-10 13:41:13 +02:00
zico 36d22a3998 Added more specific comment on why RespawnTimer is necessary for MultiLevelInv_Repopulate() 2016-02-29 16:35:00 +01:00
zico 901a554e96 New powerup management code: Addeed functions and packet type to keep track of original and current level inventory as well as player and thief inventories. Calling maybe_drop_net_powerup() for all ammo based weapons except Concussion missiles. Limiting maybe_drop_net_powerup() to only spawn items missing from initial level inventory. Added function to let host respawn items that were lost for whatever reason. Expanded maybe_drop_net_powerup() and child functions to be able to drop item based on a random player. Changed back maybe_drop_secondary_weapon_egg() to its original behavior, dropping 3 of each type max. 2016-02-25 14:11:08 +01:00
Kp 4e29e2625d Move multi_endlevel_poll* lookups to menu creation 2016-01-26 03:45:06 +00:00
Kp 8e86a3586d Use #ifdef dsx to guard dsx namespace 2016-01-09 16:38:15 +00:00
Kp 26e948d5f1 Uninline namespace dsx 2015-12-13 18:00:49 +00:00
Kp dc8c0323d8 Uninline namespace dcx 2015-12-13 18:00:49 +00:00
Kp 32051298ae Use inline namespace dcx/dsx for more symbols 2015-12-13 18:00:48 +00:00
Kp 143612df6a Make multi_send_message static 2015-12-04 03:36:30 +00:00
Kp a245ff8130 Mark multi_who_is_master static 2015-12-04 03:36:30 +00:00
Kp 0fe724b229 Adjust multiplayer kill handling 2015-11-27 03:56:13 +00:00
Kp bb41075adb Add preprocessor guards around types that vary by game 2015-11-26 02:56:55 +00:00
Kp 0fbccd609c Ignore lifetime kills/killed in cooperative games 2015-11-21 18:12:13 +00:00
Kp f07e08fa2f Move netgame_info::players to end
This saves ~200 bytes of text.
2015-10-30 02:52:55 +00:00
Kp 731e287329 Clean up trailing whitespace on rank strings 2015-10-30 02:52:55 +00:00
Kp 070444157e Use type safe player flags 2015-10-30 02:52:55 +00:00
Kp 7ac2840bfe Rename Netgame.player_flags to .net_player_flags
The simple name conflicts with an upcoming change.
2015-10-30 02:52:54 +00:00
Kp e130ea7b36 Remove unnecessary secondary_weapon_flags 2015-10-30 02:52:53 +00:00
Kp ea3c4a8986 Switch const multi text to array<> 2015-10-29 03:01:43 +00:00
Kp 2196008178 Move fwdobject.h -> fwd-object.h for consistency 2015-10-10 03:44:14 +00:00
Kp 9da2a938d8 Make team_kills signed
Suicides can make kill counts negative.
2015-10-03 22:15:17 +00:00
Kp 9df40a86cb Use uint8 for secondary ammo counts
Maximum non-cheating is 40 missiles, which fits in a signed 8 bit value.
Maximum cheating is 200 missiles, which fits in an unsigned 8 bit value.
2015-10-03 17:17:49 +00:00
Kp d971cf7702 Wrap game-specific types in game-specific preprocessor guards
These types are not used in common code, and in some cases would provoke
a -Wodr warning if they were used.
2015-09-26 21:17:12 +00:00
Kp f15116f2cb Simplify multiplayer sound handling 2015-08-05 02:59:02 +00:00
Kp 2fb03da475 Inline multi_send_endlevel_start secret for D2 2015-08-03 03:11:25 +00:00
Kp b8cc2f4172 Inline multi_i_am_master 2015-07-25 23:10:46 +00:00
Kp f00725f740 Use forward-declaration header for player.h 2015-07-25 23:10:45 +00:00
Kp 70c4cc87ab Use forward-declaration header for weapon.h 2015-07-25 23:10:45 +00:00
Kp e54b550c59 Pass only vobjptr_t to multi_reset_player_object 2015-07-12 01:04:17 +00:00
Kp fe360b18e3 Implement secluded spawns 2015-07-04 21:01:18 +00:00
Kp d73e5a24c3 Reduce scope of ifdef(D1||D2) 2015-07-04 21:01:17 +00:00
Kp 06b453d617 Enable D1 weapon drops 2015-07-02 02:37:55 +00:00
zico cd27af9e41 Made MULTI_POSITION and MULTI_ROBOT_POSITION use quaternion packets to increase precision of powerup drops, robot movement and their firing; Also decreased priority of the first iteration of MULTI_POSITION from 2 to 1 as the first packet does not need to be protected but just serves as a convinient excuse to flush the multi data buffer 2015-06-28 19:20:46 +02:00
Kp 9125ae32cd Make objnum unsigned 2015-06-13 22:42:15 +00:00
Kp 39b705b352 Use integral_constant for grant masks 2015-06-05 02:34:40 +00:00
Kp 73300a285d Merge "change u_int*_t to C99 standard uint*_t"
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/67>
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/67#issuecomment-104806115>
2015-05-23 17:36:29 +00:00
Kp cc2a5e9790 Use gr_free_bitmap_data for Orb_icons 2015-05-22 03:33:19 +00:00
Bradley Bell bdacd2f7d7 change u_int*_t to C99 standard uint*_t 2015-05-18 17:12:53 -07:00
Kp a51a7110e8 Pass vobjptridx_t to multi_send_position 2015-05-09 17:38:59 +00:00
Kp 8d849b2b39 Wrap laser level in class
Move enum laser_level_t to weapon.h for the new class.
2015-04-26 20:15:56 +00:00
Kp b46ecbb3e9 Add netgame parameter to duplicate powerups 2015-04-19 04:18:53 +00:00
Kp 4381b81497 Pack spawn granted items in D1 2015-04-19 04:18:53 +00:00
Kp b32298df5a Rewrite powerup cap code to centralize logic 2015-04-19 04:18:53 +00:00
Kp 90fbebf8fd Convert most global arrays to array<> 2015-04-02 02:36:52 +00:00
Kp 6e96ff3e00 Fix ambiguous use of INTEL_SHORT/INTEL_INT 2015-04-02 02:36:52 +00:00
Kp 598a5e42a2 Allow granting items at player spawn 2015-03-28 17:18:02 +00:00
Kp da3cb31a0e Refactor powerup allow code 2015-03-28 17:18:02 +00:00
Kp 0707664ae1 Use enum for kmatrix_view result 2015-03-24 02:07:42 +00:00
zico 8d686ab23b implemented return value for kmatrix_view() so we can properly bail out of the game loop in AdvanceLevel() 2015-03-23 03:03:22 +01:00
Kp d63be36fb3 Fix bogus trap on remote_owner check
Some call sites pass a uint8_t to objnum_remote_to_local, which is
zero-extended up to an int.  The check for owner==-1 then fails, causing
the sanity check to trap to the debugger, even though the situation is
normal and harmless.  Switch the type to int8_t to ensure that the value
is not sign/zero-extended.
2015-03-22 22:48:47 +00:00
Kp 72a01bf56c Add indirection for player color lookup 2015-03-09 03:33:07 +00:00
Kp 7349a90cc8 Remove unused multi_send_message_dialog 2015-03-03 04:36:16 +00:00
Kp 5212daa4ad Fix seismic duration sync 2015-02-14 22:48:29 +00:00
Kp 29236f8668 Use array<> for multi_player_textures 2015-02-14 22:48:29 +00:00
Kp bbb9a23697 Convert {GET,PUT}_INTEL_{SHORT,INT} to C++ casts 2015-02-14 22:48:29 +00:00
Kp dc8b88eed4 Convert various loops to range_for 2015-02-14 22:48:27 +00:00
Bradley Bell 5a9b2497b1 remove #ifdef USE_UDP
even when compiling without USE_UDP, almost everything in this file is needed
2015-02-05 17:15:52 -08:00
Kp 6f15e46512 Use separate type for general purpose sockaddr 2015-01-18 01:58:34 +00:00
Kp fc30cdcc9b Use ntstring for NetworkMessageMacro name 2015-01-12 00:26:02 +00:00
Kp d5d416c62c Use ntstring for Netgame.mission_name 2015-01-03 23:44:32 +00:00
Kp 03370ed3e5 Use ntstring for Netgame.mission_name 2014-12-22 04:35:48 +00:00
Kp e166846dd1 Use ntstring for Netgame.game_name 2014-12-22 04:35:48 +00:00
Kp a0727f4f84 Throw on net_udp_read_sync_packet failure
Callers expect sane Player_num, but on failure, it is invalid.
Returning a failure status causes net_udp_level_sync to fault using
Players[Player_num].connected, so throw an exception instead.
2014-12-07 00:00:22 +00:00
Kp 9d700aab08 Make kill_matrix uint16_t, not short 2014-12-06 23:30:55 +00:00
Kp cfe0f89dae Use array<> for team_kills 2014-12-06 04:52:53 +00:00
Kp e90549d9a8 Use range_for on Orb_icons 2014-12-02 03:23:21 +00:00
Kp f206b3b127 Reduce inclusion of object.h 2014-11-23 04:36:58 +00:00
Kp 6024bf0369 Pass multi_send_controlcen_fire vector by & 2014-10-30 03:37:13 +00:00
Kp c0004cf4bd Pass pick_random_point_in_seg vector by & 2014-10-30 03:32:38 +00:00
Kp 5bb9c88979 Add vm_vec_sub that returns result 2014-10-29 03:24:31 +00:00
Kp 53aa70cecb Use vsegptridx_t 2014-10-28 03:08:51 +00:00
Kp 9a32e151ff Pass check_effect_blowup vms_vector arg by & 2014-10-26 21:36:35 +00:00
Kp 7c76c68255 Make unused_newmenu_userdata_t const 2014-10-16 02:13:09 +00:00
Kp a8f853aa7a Pass d_event arg by const& 2014-10-04 22:36:13 +00:00
Kp 59cacbd8ce Move Allow_marker_view, AlwaysLighting into DXX_BUILD_DESCENT_II 2014-09-28 21:09:22 +00:00
Kp 7b36462700 Pass multiplayer message type to multi_process_data 2014-09-21 22:10:21 +00:00
Kp e6b9f3f923 Use typedef for player number 2014-09-21 22:10:12 +00:00
Kp 44827606bc Use serialize for multi_claim_robot 2014-09-13 23:45:13 +00:00
Kp a02f78a171 Move saving window pointer into helper 2014-09-07 19:04:07 +00:00
Kp b95759aecc Propagate use of objptridx 2014-08-23 23:53:56 +00:00
Kp 66cb80c343 Propagate use of objptridx 2014-08-17 20:31:18 +00:00
Kp 1d16377d48 Change isyou to your_index and promote it out a layer
There is only ever one record for which isyou is true.
2014-08-16 21:56:46 +00:00
Kp 125d9257be Use special type names for segment/object numbers 2014-08-13 02:57:12 +00:00
Kp d0db98fe01 Use array<> for netgame_info members 2014-08-09 16:43:55 +00:00
Kp 4acbb40ad7 Use enum for window event result 2014-08-07 02:47:48 +00:00
Kp 7552ceb259 Remove unused arguments 2014-07-16 03:24:40 +00:00
Kp dd70a3f03d Use array<> for PowerupsInMine, MaxPowerupsAllowed 2014-07-12 19:23:37 +00:00
Kp 44d1924e96 Use special type for player callsign 2014-07-05 19:20:56 +00:00
Kp d5b55cf512 List initialize kill_matrix 2014-07-04 04:07:14 +00:00
Kp f1970ad129 Unpack netplayer_info 2014-06-26 03:17:23 +00:00
Kp 65fedf7b59 Unpack netgame_info 2014-06-26 03:17:23 +00:00
zico f6a18e05a6 Reworked packet loss prevention system to send and receive protected packets in correct order 2014-06-24 14:49:18 +02:00
Kp b9de0787ce Optimize multi_send_drop_marker 2014-06-22 20:59:04 +00:00
Kp c4b31f875f Use array<> for MarkerMessage 2014-06-22 18:53:42 +00:00
Kp e5673ae8ea Pass pnum to boss action 2014-06-08 00:05:33 +00:00
zico ad7cb106bc Changed custom D1X license to GPLv3 2014-06-01 19:55:23 +02:00
Kp 24706b50c8 Remove unused MP commands 2014-01-25 21:59:39 +00:00
Kp d4da8b1f1d Move multi_send_data type into template parameter 2014-01-25 21:44:34 +00:00
Kp a2427f58b5 Use special type to reduce pointer/index conversions 2014-01-12 19:32:12 +00:00
Kp 93db613176 Reduce includes in vclip.h 2014-01-11 22:47:38 +00:00
Kp 61ad220d42 Remove unused who_killed_controlcen 2014-01-08 03:54:44 +00:00
Kp 094dfbf3d4 Reduce header inclusions 2013-12-31 03:22:03 +00:00
Kp 073f00974a Eliminate uses of the typedef struct X { ... } X; pattern
C++ does not require this pattern.

import re, fileinput
to = re.compile(r'^typedef struct ([a-z_A-Z]+)\s*{')
tc = re.compile(r'^}(.*?)\s*([a-z_A-Z]+);$')
osn = None
for line in fileinput.input(inplace=True):
	m = to.match(line)
	if m:
		osn = m.group(1)
		print 'struct %s\n{' % osn
		continue
	if osn:
		m = tc.match(line)
		if m:
			csn = m.group(2)
			if osn == csn:
				print '}%s;' % m.group(1)
				osn = None
				continue
			else:
				osn = None
	print line,
2013-12-28 22:48:07 +00:00
Kp 038bbad26a Rearrange headers to build under all test modes 2013-12-22 20:56:35 +00:00
Kp 403d412000 Remove BEFORE/AFTER arguments to for_each_multiplayer_command 2013-12-22 20:02:22 +00:00
Kp 1e8036bd24 Split compiler.h for PCH compatibility 2013-12-21 05:12:38 +00:00
Kp d2a2103cc2 Combine MULTI_PLAYER_EXPLODE and MULTI_PLAYER_DROP
Add a selector byte and use a common primary command code.
2013-12-20 03:11:23 +00:00
Kp 3ca5b4af47 Inline multi_send_quit 2013-12-20 03:11:06 +00:00
Kp c561c3d514 Move multi_send_data_direct type into template parameter
Optimizing compilers may now delete the size check.
2013-12-20 03:08:19 +00:00
zico 35266309d0 Made version mismatch screen spill out some explanatory information about Multi protocol version 2013-12-19 14:03:00 +01:00
zico 5f005baa3b Added MULTI_EFFECT_BLOWUP to remotely blast switches connected to triggers, ensuring sync and preventing misguided (i.e. delayed) player fire accidentially make puzzles or game progress impossible 2013-12-19 13:48:33 +01:00
Kp 0938e819e5 Advertise map-mode via overload of typing-mode
Tell other clients when map mode is active, for the same reason that
typing mode is advertised.
2013-12-18 04:51:46 +00:00
Kp 92e8cb7a31 Add type checking to newmenu subfunction userdata 2013-12-15 21:54:38 +00:00
Kp ddffec01c7 Use enum for multi_send_msgsend_state values 2013-12-15 01:52:13 +00:00
Kp 6779dc4991 Remove unused command MULTI_DROP_ORB 2013-12-15 01:45:19 +00:00
Kp 00a9ca2423 Remove unused MULTI_PLAY_BY_PLAY
The sending function has been disabled since Bazaar import.
2013-12-15 01:45:19 +00:00
zico ec516b5675 Disable powerup capping for cooperative game mode as it potentially deletes weapons carried over from another level 2013-12-14 02:53:45 +01:00
zico dae83f9edc Set PPS limits from 5 to 40 2013-12-09 14:25:32 +01:00
zico 2e407fa5a8 Removed short packets and added segment number to quaternion structure 2013-12-09 14:00:23 +01:00
Kp 9de54cfa74 Switch to C++ linkage
import fileinput
guard = 0
cxxguard = '#ifdef __cplusplus\n'
for line in fileinput.input(inplace=True):
	if line == cxxguard:
		guard = 1
		continue
	if guard:
		if line == 'extern "C" {\n':
			guard = 2
			continue
		if line == '}\n':
			guard = 0
			continue
		if guard == 2:
			assert(line == '#endif\n')
			guard = 0
			print cxxguard,
			continue
	print line,
2013-12-06 03:35:32 +00:00
Drakona 04d84ae61d Pass shot orientation with each weapon packet 2013-12-05 13:11:49 +01:00
Kp 3e2c0b5e1b Switch multi_allow_powerup_text to [][] from *[] 2013-11-28 02:09:30 +00:00
Kp 5d1769cd2c Switch RankStrings to be [][14] instead of *[]
Saves 10 .rel.ro entries and 6 bytes on x86 / 46 bytes on x64.
2013-11-28 02:08:54 +00:00
Kp 584fc93f34 Move similar/main/automap.c -> similar/main/automap.cpp 2013-10-05 21:35:58 +00:00
Kp b4107e6526 Remove duplicate declarations 2013-10-03 03:11:52 +00:00
Kp c58c4e4d06 Move declarations to headers 2013-10-03 03:11:52 +00:00
Kp 1ff627f85e Move multi_send_got_flag declaration to header 2013-09-21 23:34:05 +00:00
Kp f4b21088a0 Track vulcan ammo explicitly 2013-09-20 23:12:54 +00:00
Kp 9d2d8bb552 Scrub netgame flags on load/save/send/recv 2013-09-01 21:09:01 +00:00
Kp 3226a57848 Remove unused MULTI_ACTIVE_DOOR 2013-08-11 20:43:08 +00:00
Kp de6422d58f Remove unused multi_send_audio_taunt 2013-08-11 20:43:08 +00:00
zico 27a4a62b19 To compensate the change between D2's to D1's tracking code base, increased HOMING_MAX_TRACKABLE_DOT, making homing projectiles track a bit more agressivly than D1 to pose more of a challenge while not making them useless when having Afterburner 2013-08-09 17:50:11 +02:00
zico a527348681 Added MULTI_FIRE_BOMB as alteration of MULTI_FIRE to keep bombs mapped in a Multiplayer match for later Host authority and to make their chaff ability work correctly. Additionally added MULTI_FIRE_TRACK to only send Network_laser_track if > -1. On the way I made laser.c a bit more similar between D1X and D2X 2013-08-09 17:21:03 +02:00
zico 40c5f10e20 Added definition of DESIGNATED_GAME_FPS as 30 and DESIGNATED_GAME_FRAMETIME based on the former. We use those for d_tick_count intervals and to scale other parts that have never been properly aligned to FrameTime before. In that regard, Release builds will take DESIGNATED_GAME_FPS as MINIMUM_FPS for -maxfps argument 2013-08-08 22:07:29 +02:00
zico bbaa3c21f3 HAMERS! Wait 33ms between each turn of a homing missile projectile, only scale turns if FPS are below 30 2013-08-08 00:29:56 +02:00
zico 2b632008b2 Cleaned code for homing projectiles a bit and reverted to state of Descent 1 source release; Added ticks to rule target aquisition and adjusted turn rate scaling accordingly 2013-08-06 21:04:44 +02:00
Kp 90cd2f4938 Move */main/multi.h -> common/main/multi.h 2013-07-24 01:43:01 +00:00
Renamed from d2x-rebirth/main/multi.h (Browse further)