Commit graph

791 commits

Author SHA1 Message Date
Kp 362f0a5d23 Use array<> for Point_segs 2014-06-22 20:56:47 +00:00
Kp 794572b771 Enable using count_array_t<T,S> with prohibit_void_ptr<T> 2014-06-22 19:06:52 +00:00
Kp c4b31f875f Use array<> for MarkerMessage 2014-06-22 18:53:42 +00:00
Kp dc42dad15a Check that types passed to PHYSFS_read are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 18:52:00 +00:00
Kp e6a691c5c7 Check that types passed to PHYSFS_write are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 03:54:35 +00:00
Kp f6631ce742 Unpack various structures
Prohibit conversion to void* to avoid accidental use with memcpy
2014-06-21 23:56:27 +00:00
Kp 78143eb045 Read walls carefully 2014-06-21 23:56:27 +00:00
Kp b3dc2a1bc0 Move D1X trigger read out of line 2014-06-21 23:56:27 +00:00
Kp 57a3541424 Fix serial::pad for gcc 4.5 2014-06-21 23:21:30 +00:00
Kp c016ace90b Fix partial_range.h for gcc 4.5 2014-06-21 23:21:03 +00:00
Kp 993f778e61 Write active_door carefully 2014-06-20 02:59:53 +00:00
Kp 5af9e8d5b2 Use array<> for ActiveDoors 2014-06-20 02:59:53 +00:00
Kp 2e95d8c0a8 Use array<> for Walls 2014-06-20 02:59:53 +00:00
Kp 176525cf71 Read cloaking_wall structures carefully 2014-06-20 02:59:53 +00:00
Kp 0ef949ab9e Use array<> for CloakingWalls 2014-06-20 02:59:53 +00:00
Kp d3ecca360c Read matcen_info structures carefully 2014-06-20 02:59:53 +00:00
Kp 2d26de003a Read trigger structures carefully 2014-06-20 02:59:53 +00:00
Kp 3c6f787e15 Use array<> for Polygon_models 2014-06-20 02:59:53 +00:00
Kp 58350edab7 Convert polymodel_read_n to call polymodel_read 2014-06-20 02:59:53 +00:00
Kp 7b33018cb5 Use array<> for Textures 2014-06-20 02:59:53 +00:00
Kp 3200823a8b Use array<> for TmapInfo 2014-06-20 02:59:53 +00:00
Kp be8c9d5d2d Split out trigger_write
Conditional trigger_write is hard to read.
2014-06-20 02:59:53 +00:00
Kp 8cc3e2c9e9 Use array<> for Triggers 2014-06-20 02:59:53 +00:00
Kp cb498b3b38 Make padding value customizable 2014-06-20 02:59:53 +00:00
Kp fa77105084 Simplify D2X trigger upgrade code 2014-06-20 02:59:53 +00:00
Kp 952fc31449 Simplify d1_matcen_info_read 2014-06-20 02:59:53 +00:00
Kp 92814475a9 Use array<> for RobotCenters 2014-06-20 02:59:52 +00:00
Kp 958f452d2e Improve UDT static_assert messages 2014-06-15 22:19:26 +00:00
Kp d510438fd4 Use array<> for WallAnims 2014-06-15 03:35:21 +00:00
Kp bd35eb7469 Use array<> for wclip arrays 2014-06-14 23:13:38 +00:00
Kp 1cf1373fb2 Use array<> for control_center_triggers members 2014-06-14 23:13:38 +00:00
Kp 9ab8a587b8 Write FuelCenter structures carefully 2014-06-14 23:13:38 +00:00
Kp 4bc9475076 Use array<> for Station 2014-06-14 23:13:37 +00:00
Kp 93ec327a10 Write powerup_type_info structures carefully 2014-06-14 23:13:37 +00:00
Kp 7c62bf98ef Use array<> for Powerup_info 2014-06-14 01:15:33 +00:00
Kp 488e46b562 Return reasonable type from deleted partial_range
Avoid secondary errors related to binding void as a range.
2014-06-14 01:15:33 +00:00
zico 1136619786 merge 2014-06-12 10:42:26 +02:00
zico c96aece6d2 Removed PARALLAX banner from source files that were not released by PARALLAX; most importantly C source code translated from Assembler and args.cpp which was rewritten from scratch 2014-06-12 10:41:03 +02:00
Kp 743cb49ed8 Make cockpit_decode_alpha static 2014-06-08 00:05:33 +00:00
Kp 6f9cdcd01c Pass player number to multibot functions 2014-06-08 00:05:33 +00:00
Kp e5673ae8ea Pass pnum to boss action 2014-06-08 00:05:33 +00:00
Kp b7a9701564 Get rid of MarkerPoint
Hope MT's ambiguous "horrible bug" is long gone since he never said what
it was.
2014-06-08 00:05:33 +00:00
Kp 41dc39c64c Remove unused v19_door 2014-06-08 00:05:33 +00:00
Kp b5701bf202 Add __attribute__((warn_unused_result)) to partial_range 2014-06-08 00:05:33 +00:00
Kp 5c14cf870f Add optional offset to partial_range 2014-06-08 00:05:33 +00:00
Kp 20164b0639 Use symbolic constants for trigger types 2014-06-08 00:05:33 +00:00
Kp 6f84624f4c Remove write-only D1X trigger field type 2014-06-08 00:05:32 +00:00
Kp ebfb559fe1 Add dummy parameter version to D2 matcen_info_read 2014-06-08 00:05:32 +00:00
Kp 0257b9ca1c Disallow using signed offsets with partial_range 2014-06-08 00:05:32 +00:00
zico ad7cb106bc Changed custom D1X license to GPLv3 2014-06-01 19:55:23 +02:00
zico 8a4ac70541 Reverted commit ec709efaa3. 2014-06-01 19:08:29 +02:00
Kp 72b7ff6720 Write vclip structures carefully 2014-02-01 19:26:16 +00:00
Kp 9b0fb5da0a Write eclip structures carefully 2014-02-01 18:55:18 +00: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 6ba95cb83b Use objptridx_t for detect_escort_goal_accomplished 2014-01-25 18:06:54 +00:00
Kp e7d16f095e Remove redundant FuelCenter::Center 2014-01-25 17:21:56 +00:00
Kp b9764fb45e Use array<> for Effects 2014-01-25 17:21:56 +00:00
Kp 917ef39258 Use array<> for Vclip 2014-01-23 03:48:25 +00:00
Kp a2427f58b5 Use special type to reduce pointer/index conversions 2014-01-12 19:32:12 +00:00
Kp da8e5459d6 Return objptridx_t from obj_create_copy 2014-01-12 19:32:10 +00:00
Kp 599af3e1ba Return objptridx_t from obj_allocate 2014-01-12 19:14:16 +00:00
Kp 89a383e6a9 Pass objptridx_t in newdemo.cpp 2014-01-12 01:44:07 +00:00
Kp e402b0ee51 Pass objptridx_t to draw_powerup 2014-01-12 00:33:33 +00:00
Kp e2afc332ac Pass objptridx_t to explode_object 2014-01-12 00:33:28 +00:00
Kp 9d2c847b02 Pass objptridx_t to do_debris_frame 2014-01-12 00:33:19 +00:00
Kp 3a889b5825 Pass objptridx_t to apply_damage_to_robot 2014-01-12 00:33:14 +00:00
Kp d246005c7e Move object_create_explosion_sub pointer into loop 2014-01-12 00:33:08 +00:00
Kp b17bafa29f Pass objptridx_t to apply_damage_to_controlcen 2014-01-12 00:33:03 +00:00
Kp 27c9bea1a8 Pass objptridx_t to object_create_badass_explosion 2014-01-12 00:32:46 +00:00
Kp 9d0cc8324e Pass objptridx_t to net_destroy_controlcen 2014-01-12 00:32:30 +00:00
Kp a8aa9965e8 Pass objptridx_t to collide_*_and_* 2014-01-12 00:19:12 +00:00
Kp 8cffd14b8c Pass objptridx_t to collide_two_objects 2014-01-11 23:19:44 +00:00
Kp c0ae10a0d6 Pass objptridx_t to explode_badass_weapon 2014-01-11 23:11:04 +00:00
Kp 1c7f58b448 Pass objptridx_t to collide_object_with_wall 2014-01-11 23:07:51 +00:00
Kp 377626541d Pass objptridx_t to render_object 2014-01-11 23:06:33 +00:00
Kp 24570e2726 Pass objptridx_t to compute_object_light 2014-01-11 22:58:58 +00:00
Kp a3dd2ea963 Pass objptridx_t to create_player_appearance_effect 2014-01-11 22:57:55 +00:00
Kp 2effc847aa Pass objptridx_t to create_path_points 2014-01-11 22:55:21 +00:00
Kp 0b529d16c7 Pass objptridx_t to do_controlcen_destroyed_stuff 2014-01-11 22:54:46 +00:00
Kp 70b8a2bb6d Disallow using operator-(objptridx_t,Objects)
Implicit conversions made this work, but it just does extra work for no gain.
2014-01-11 22:50:07 +00:00
Kp e06f53feb8 Pass objptridx_t to draw_weapon_vclip 2014-01-11 22:47:38 +00:00
Kp 93db613176 Reduce includes in vclip.h 2014-01-11 22:47:38 +00:00
Kp 7af7f60ffb Pass objptridx_t to add_stuck_object 2014-01-11 22:47:38 +00:00
Kp f9c7311214 Pass objptridx_t to do_physics_sim 2014-01-11 22:47:37 +00:00
Kp 85b95efc70 Fix ugly hack of using -4 for fuelcen reached 2014-01-11 22:24:55 +00:00
Kp 21c9aa6c16 Remove unused ESCORT_GOAL_EXIT2 2014-01-11 22:20:48 +00:00
Kp 09767b933f Pass objptridx_t to player_is_visible_from_object 2014-01-11 21:54:44 +00:00
Kp 8e6e450df6 Pass objptridx_t to do_controlcen_frame 2014-01-11 21:54:44 +00:00
Kp cc6d72b9ee Unpack player to fix build on old compilers 2014-01-11 21:53:09 +00:00
Kp 8cbd85a77d Unpack laser_info to fix build on old compilers 2014-01-11 21:51:29 +00:00
Kp aac0ab26d7 Refactor _DEFINE_VALPTRIDX_SUBTYPE_USERTYPES 2014-01-11 18:20:33 +00:00
Kp fca105e95d Pass objptridx_t to create_small_fireball_on_object 2014-01-11 17:25:26 +00:00
Kp a0ac77569b Pass objptridx_t to obj_delete 2014-01-11 17:22:11 +00:00
Kp 0b820e1e7b Pass objptridx_t to object_move_one 2014-01-11 17:19:22 +00:00
Kp 813bbb079f Pass objptridx_t to do_ai_frame 2014-01-11 17:14:20 +00:00
Kp 1296662e96 Pass objptridx_t to object_create_badass_explosion 2014-01-10 04:02:53 +00:00
Kp 07a23cbaf2 Detect always-invalid valptridx indexes 2014-01-10 03:58:03 +00:00
Kp 0d49f5b55a Use objptridx_t for object_create_badass_explosion 2014-01-10 03:23:57 +00:00
Kp 58ed12ffce Use objptridx_t for create_morph_robot 2014-01-10 03:20:11 +00:00
Kp ab3806af83 Use objptridx_t for object_create_explosion 2014-01-10 03:20:11 +00:00
Kp f1a6757693 Use objptridx_t for obj_create 2014-01-10 03:20:11 +00:00
Kp 9843406588 Remove unused return value of explode_badass_weapon 2014-01-10 03:17:55 +00:00
Kp d6fab53199 Remove unused return value of object_create_muzzle_flash 2014-01-10 03:14:14 +00:00
Kp 61ad220d42 Remove unused who_killed_controlcen 2014-01-08 03:54:44 +00:00
Kp a748065fe5 Explicitly delete valptridx subtype default constructors 2014-01-06 04:17:57 +00:00
Kp 9a5d0f6f09 Use symbolic values for segment/object first/none 2014-01-06 04:17:55 +00:00
Kp 67741cf603 Remove unused multi_explode_robot_sub parameter killer 2014-01-04 22:04:34 +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 888f44336f Use segment array for render visited[] 2014-01-01 03:42:00 +00:00
Kp 40e90fea22 Move Light_subtracted[] to Segments[].light_subtracted 2014-01-01 03:33:27 +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 549d7ea261 Use correct size for flickering_light mask 2013-12-31 00:11:05 +00:00
Kp cf7a3edee3 Move object::rtype up to improve packing 2013-12-29 04:54:22 +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 dd583e9c2b Add packed *_rw versions of object subfields 2013-12-29 00:32:58 +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 dfbe78c214 Remove useless 'unused' field in grs_bitmap
Saves a realignment to pointer boundary.
2013-12-28 22:38:02 +00:00
Kp 2d274dba8b Tighten SWAPINT 2013-12-28 22:37:00 +00:00
Kp cc9f7f669d Tighten definition of SWAPSHORT 2013-12-28 22:36:59 +00:00
Kp 38b2dbe639 Move object* -> objnum conversion into init_ai_object 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 1694eed536 Match PHYSFSX_readSXE?? return types to the internal type 2013-12-28 22:03:50 +00:00
Kp aa16a01fec Mark control_center_triggers_write input as const 2013-12-25 23:51:28 +00:00
Kp 8c63ad4d09 Use dedicated type for Objects[] array 2013-12-25 23:49:04 +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 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 038bbad26a Rearrange headers to build under all test modes 2013-12-22 20:56:35 +00:00
Kp 58e740c0bd Remove unused declaration of Center_names 2013-12-22 20:56:35 +00:00
Kp c28d0c984c Combine nearby d1/d2 guard in powerup.h 2013-12-22 20:56:35 +00:00
Kp fe7c9fa444 Use countarray for HUD_messages 2013-12-22 20:56:33 +00:00
Kp 7894647bc9 Let PHYSFSX_puts receive optional string length 2013-12-22 20:13:22 +00:00
Kp 314950d0b2 Pass computed message length from Error to con_puts 2013-12-22 20:12:56 +00:00
Kp 84a0dcba27 Rename con_puts length template 2013-12-22 20:12:41 +00:00
Kp 44f1814b45 Store boss gate/teleport segments in countarray objects 2013-12-22 20:02:42 +00:00
Kp 6de986d39c Print file offset on read error 2013-12-22 20:02:26 +00:00
Kp 403d412000 Remove BEFORE/AFTER arguments to for_each_multiplayer_command 2013-12-22 20:02:22 +00:00
Kp f269ed7374 Make Been_visited a local bit array 2013-12-22 05:29:25 +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