Commit graph

577 commits

Author SHA1 Message Date
Kp d5aaf8af0e Remove unused return value of explode_badass_object 2014-01-04 18:03:10 +00:00
Kp 3ca0a6aca6 Remove unused return value of explode_badass_player 2014-01-04 18:03:10 +00:00
Kp 8218af34b5 Add special type to let obj_*link take either pointer or index 2014-01-03 04:04:04 +00:00
Kp ec4317fef2 Fix variable overread when leaving hole for MarkerOwner 2014-01-03 02:55:20 +00:00
Kp f894ad92d0 Use correct player index for dropping markers
Fixes a bug where each players sees markers dropped with the orientation
matrix of the local player.
2014-01-01 23:38:06 +00:00
Kp 67e1c7fef4 Require integral types to newdemo_read 2014-01-01 03:47:37 +00:00
Kp a7d87134db Only use newdemo_write on integral types 2014-01-01 03:46:08 +00:00
Kp 888f44336f Use segment array for render visited[] 2014-01-01 03:42:00 +00:00
Kp 164001d977 Use 3 instead of 255 for third mode in rendering 2014-01-01 03:41:58 +00:00
Kp 40e90fea22 Move Light_subtracted[] to Segments[].light_subtracted 2014-01-01 03:33:27 +00:00
Kp 89a5450bfc Fix memory overread when saving Boss_dying_sound_playing
AddressSanitizer reports that Boss_dying_sound_playing is saved as an
int, but occupies only one byte.
2014-01-01 03:30:36 +00:00
Kp 094dfbf3d4 Reduce header inclusions 2013-12-31 03:22:03 +00:00
Kp d7d052857a Use bitmask for hitobj_list
Reduces sizeof(laser_info) from 392 to 80.
2013-12-31 03:22:03 +00:00
Kp 510fe02825 Use on stack array<> for New_awareness 2013-12-31 00:12:08 +00:00
Kp 549d7ea261 Use correct size for flickering_light mask 2013-12-31 00:11:05 +00:00
Kp 745633eabe Use vector to allow rendering unlimited robots 2013-12-29 04:54:08 +00:00
Kp 7cf6877e2a Rename D1 ai_local::wait_time to ::next_action_time to match D2 2013-12-29 04:33:30 +00:00
Kp cf5343db18 Move ai_local into ai_static
Eliminates a global and some pointer math.
2013-12-29 03:59:21 +00:00
Kp 64e2ab55a0 Combine control_center_triggers_read and _swap variant 2013-12-29 03:56:41 +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 67ad7811bd Remove unused physics_info::brakes 2013-12-28 22:47:46 +00:00
Kp 3563bfb85a Enable Descent II divide-by-zero check in Descent too 2013-12-28 22:45:27 +00:00
Kp fbd35de5f0 Remove bogus fvi assertion 2013-12-28 22:40:11 +00:00
Kp 8a83c93c8c Move ai_local_read_n_swap loop into caller 2013-12-28 22:21:00 +00:00
Kp 94ce68f556 Color code weapon gauges 2013-12-28 22:21:00 +00:00
Kp 16f1044930 Switch init_ai_objects to range_for to eliminate a variable 2013-12-28 22:10:24 +00:00
Kp 38b2dbe639 Move object* -> objnum conversion into init_ai_object 2013-12-28 22:10:24 +00:00
Kp 7acd98949f Remove reliance on layout of control_center_triggers 2013-12-28 22:10:24 +00:00
Kp 79fe1d899c Simplify control_center_triggers_read_n 2013-12-28 22:04:47 +00:00
Kp 0aba1b9d76 Use correct SWAP for wall segnum 2013-12-28 22:02:54 +00:00
Kp 75ce83098d Write log message when local player escapes the mine
For consistency with messages that other players have escaped, also log
the local player escaping.
2013-12-28 18:17:09 +00:00
Kp aa16a01fec Mark control_center_triggers_write input as const 2013-12-25 23:51:28 +00:00
Kp bdf55f907b Use assignment instead of memcpy 2013-12-25 23:50:26 +00:00
Kp 8c63ad4d09 Use dedicated type for Objects[] array 2013-12-25 23:49:04 +00:00
Kp 46f97e9f41 Reduce sprintf usage in kmatrix 2013-12-25 04:41:42 +00:00
Kp 93ce29f88d Simplify test for exit tunnel with wrong final child 2013-12-25 04:39:54 +00:00
Kp 25e95936d5 When pursuing player, avoid segment_none instead of segment 1
Avoiding segment 1 makes no sense, and appears to be a bug.
2013-12-25 04:39:16 +00:00
Kp f9269b0fb4 Show failed hostname when DNS lookup fails 2013-12-25 03:22:06 +00:00
Kp f6ea0815cd Remove unread player structure from savefile 2013-12-25 03:22:06 +00:00
Kp 7fb4c6307f Add debug option -no-grab to prevent window grabbing 2013-12-22 20:56:55 +00:00
Kp 456c2d0bb0 Scrub control codes from stdout/file, but not HUD/console 2013-12-22 20:56:55 +00:00
Kp 6cb6faf5ce Switch fvi to use a local visited_segment_bitarray_t 2013-12-22 20:56:55 +00:00
Kp 4460b16d0e Simplify visited check in sphere_intersects_wall
Non-segments can never be visited, so check for existence first.
2013-12-22 20:56:55 +00:00
Kp a7bd19a7ca Convert fvi to use countarray for segment list
Also fixes a bug where seglist could receive wrong elements when
fvi_sub recursive call returns a type other than HIT_NONE.  Bug caused
by badly named variables:

	int ii;
	for (ii=0;i < temp_n_segs && *n_segs < MAX_FVI_SEGS-1;)
		seglist[(*n_segs)++] = temp_seglist[ii++];

The wrong counter is used for first part of the conditional, so
uninitialized elements of temp_seglist could be read back if i
(==n_segs_visited) is smaller than temp_n_segs or elements could be
skipped if i is greater than temp_n_segs.
2013-12-22 20:56:53 +00:00
Kp fe7c9fa444 Use countarray for HUD_messages 2013-12-22 20:56:33 +00:00
Kp dce285fdb1 Pass computed message length from err_printf to con_puts 2013-12-22 20:13:05 +00:00
Kp 7ea8507470 Move warning_printf newline handling into the function 2013-12-22 20:03:27 +00:00
Kp 80344777b0 Move err_printf newline handling into the function 2013-12-22 20:03:05 +00:00
Kp 44f1814b45 Store boss gate/teleport segments in countarray objects 2013-12-22 20:02:42 +00:00
Kp 00a9fd7ac2 Split extra-view loop into helper function 2013-12-22 20:02:36 +00:00
Kp 88ec115c38 Show cloak/invulnerability time remaining on HUD 2013-12-22 20:02:23 +00:00
Kp 403d412000 Remove BEFORE/AFTER arguments to for_each_multiplayer_command 2013-12-22 20:02:22 +00:00
Kp 958100d676 Use visited_segment_bitarray_t for blast_nearby_glass 2013-12-22 05:33:18 +00:00
Kp a14d729e2f Use visited_segment_bitarray_t for set_segment_depths 2013-12-22 05:32:46 +00:00
Kp 6e1e9d0b24 Use visited_segment_bitarray_t for find_connected_distance 2013-12-22 05:32:29 +00:00
Kp 0de7bdc24c Use visited_segment_bitarray_t in trace_segs 2013-12-22 05:32:19 +00:00
Kp edc1f9e471 Use visited_segment_bitarray_t for pick_connected_segment 2013-12-22 05:30:44 +00:00
Kp 0978fcdab4 Use visited_segment_bitarray_t for create_path_points 2013-12-22 05:30:23 +00:00
Kp 99626b2f34 Clear visited segment array in constructor 2013-12-22 05:27:46 +00:00
Kp 9a7185f770 Store warning segments in countarray object 2013-12-22 05:27:16 +00:00
Kp a8e9f9f624 Store found segments in countarray object
Raise MAX_FOUND_SEGS to MAX_SEGMENTS to ease code reuse.
2013-12-22 01:54:15 +00:00
Kp c31c67c587 Store selected segments in countarray object 2013-12-22 01:54:15 +00:00
Kp 4fb6990b6c Make Stolen_items[] a C++ array 2013-12-22 01:53:26 +00:00
Kp 5b5c8a3c6a Remove write-only variable TmapList 2013-12-22 01:16:16 +00:00
Kp 0c30fa7cf3 Whitelist MAX flash missiles as valid laser type 2013-12-22 01:15:40 +00:00
Kp b1c5307eb1 Use array for palette_array_t 2013-12-22 00:37:36 +00:00
Kp a3d66a3b37 Add typedef palette_array_t for palette data 2013-12-22 00:05:13 +00:00
Kp 11f7bc51ee Use unsigned count of frames in a vclip 2013-12-22 00:05:13 +00:00
Kp 1e8036bd24 Split compiler.h for PCH compatibility 2013-12-21 05:12:38 +00:00
Kp c2f6e9f999 Remove obsolete setjmp/longjmp 2013-12-21 01:40:56 +00:00
zico 0e3e020323 merge 2013-12-20 09:22:33 +01:00
zico 9efd5ecaef Restrict bright players feature to OBJ_PLAYER 2013-12-20 09:21:42 +01:00
Kp f817a7e603 Fix array understep when mapping exit tunnel 2013-12-20 03:21:40 +00:00
Kp 3a8ca07132 Step powerup frame number carefully
Avoid relying on integer underflow when checking for moving the current
frame number outside the range of frames.
2013-12-20 03:20:05 +00:00
Kp 3bf16e57dc Remove PHYSFSX_gets, PHYSFSX_readString
They do not check for a buffer overflow.
2013-12-20 03:16:46 +00:00
Kp 4e7e3fa0c8 Remove get_parm_value use for type=anarchy mission loader 2013-12-20 03:16:32 +00:00
Kp 86a88bedbd Use enum for CockpitMode
This makes the debugger output nicer.
2013-12-20 03:14:16 +00:00
Kp 8340463ef2 Warn when objects are deleted due to invalid segment 2013-12-20 03:13:21 +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
Kp ad90c245b6 Improve interaction of Del+F with normal map usage
Refactor edge computation into helper.

Let Automap_visited always be exactly what the player mapped normally.
This allows reversing Del+F.
2013-12-20 03:06:59 +00:00
Kp 61ac9c31f3 Simplify automap key powerup color setup 2013-12-20 03:02:25 +00:00
Kp 1b79e5648c Simplify kmatrix escape handling 2013-12-20 03:01:36 +00:00
Kp f0bae2c8cd Add EVENT_WINDOW_CREATED to centralize window init/deinit logic 2013-12-20 02:51:24 +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 d2c2dfe95c Make Segments[] a C++ array 2013-12-19 03:31:24 +00:00
Kp 96bc008c72 Fix audio file matching broken by cb4fd7c1b4 2013-12-19 03:31:24 +00:00
Kp 022a5f8870 Fix array overstep in collide_weapon_and_wall
This is the same mistake as fixed in ca4f9e8b30, but in a different
function.
2013-12-19 03:31:24 +00:00
Kp aba6c2dfee Pass glow_values as array<> to retain size information 2013-12-19 03:31:24 +00:00
Kp a40c19f770 Fix con_puts buffer overread
ASan reports a 2K read from a small string literal.

Also, fix silly double copy in con_add_buffer_line and delete too-short
memset in con_add_buffer_line.
2013-12-19 03:31:24 +00:00
Kp 743893bd56 Assign per-type missile names in miniview 2013-12-18 05:01:00 +00:00
Kp 83f7427aad Convert vsprintf to vsnprintf 2013-12-18 05:00:36 +00:00
Kp 49bcd3bb64 Use D1 reactor times when emulating D1 2013-12-18 04:53:07 +00: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 76b4a6c57e Avoid memcpy on object 2013-12-18 04:51:46 +00:00
Kp 9776827a33 Make Objects[] a C++ array 2013-12-18 04:51:46 +00:00
Kp 2f18c5037d Store group lists as countarray objects 2013-12-18 03:48:52 +00:00
Kp 2d0c64ffb8 Fix generation of demo filename
Broken in cb4fd7c1b4 by removal of dot from DEMO_EXT.
2013-12-18 03:43:40 +00:00