Kp
baa187801b
Add special case to make past releases not die on various segnums
...
All releases to date have a bug where they treat certain segment number
fields as an int, not a segment number. Storing segment_none (0xffff)
into the save file causes affected releases to crash in various places
because it fails to recognize that this is segment_none.
Current code correctly treats segment_none as a non-segment and works
correctly without this hack. The hack is only required to get past
releases to work correctly after loading a saved game written by current
code.
2017-01-21 19:05:43 +00:00
Kp
29b9c255fa
Remove unnecessary FuelCenter operator-
2016-12-22 05:21:16 +00:00
Kp
5a69c09ec2
Move fuelcen_activate special assignment up
...
One caller uses fuelcen_activate when segp->special != station_type.
Every other caller passes the type that was already on the segment.
Move the assignment into the one caller that needs it, then remove the
argument.
2016-10-29 23:16:17 +00:00
Kp
c4cfe54010
Return literal object_none on object_none error path
...
gcc generates better code for:
if (variable == magic_constant)
return magic_constant;
than it does for:
if (variable == magic_constant)
return variable;
even though the two have the same result. Switch to the form which
generates slightly better code.
2016-10-29 23:16:15 +00:00
Kp
ce65735c04
Expand get_local_player_flags
...
It was a convenient transition macro, but its presence was always
intended to be temporary. Expand it to ease the conversion of usage
sites that already have access to local player data through a local
variable.
2016-10-02 00:34:40 +00:00
Kp
1b321ac0c6
Expand get_local_player_secondary_ammo
...
It was a convenient transition macro, but its presence was always
intended to be temporary. Expand it to ease the conversion of usage
sites that already have access to local player data through a local
variable.
2016-10-02 00:34:40 +00:00
Kp
6a3ded191f
Move EDITOR to dxxsconf.h; rename to DXX_USE_EDITOR
...
Rename symbol EDITOR to DXX_USE_EDITOR to show that it is a DXX
symbol, not one inherited from a library. Move it to dxxsconf.h to
shorten the command line.
This is a mostly automated transform, but the changes to SConstruct were
manual.
git grep -wl EDITOR -- '*.h' '*.cpp' | xargs sed -i -e 's/^\s*#ifdef \(EDITOR\)\>/#if DXX_USE_\1/' -e 's/\s*#\(el\)\?if \(.*\)defined(\(EDITOR\))/#\1if \2DXX_USE_\3/' -e 's/^\s*#ifndef \(EDITOR\)\>/#if !DXX_USE_\1/'
2016-09-11 18:49:16 +00:00
Kp
99bbd0cf26
Mark global constants as constexpr
...
s/^const \([^*]*=.*;\)/constexpr \1/
2016-07-23 04:10:42 +00:00
Kp
c636dc4b98
Convert various static const
expressions to constexpr
2016-07-16 16:52:04 +00: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
2fd6a425b0
Remove highest_valid
2016-02-12 04:02:28 +00:00
Kp
b57f08c798
Use partial_const_range
2016-02-12 04:02:28 +00:00
Kp
86709f547b
Fix capitalization of PHYSFS_File
...
Per comment in physfs.h, the spelling PHYSFS_file is deprecated.
Replace all instances with PHYSFS_File.
2016-01-09 16:38:14 +00:00
Kp
a3ae630829
Remove default argument for basic_ptridx(index)
2016-01-09 16:38:14 +00:00
Kp
98f5afa9f8
Remove default argument for basic_ptr(pointer,array &)
2016-01-09 16:38:13 +00:00
Kp
e8c34be843
Use v*ptr* factories with highest_valid
2015-12-22 04:18:51 +00:00
Kp
db9fb0ed42
Move more symbols into namespace dcx/dsx
2015-12-22 04:18:50 +00:00
Kp
2b51578ba6
Use enum class for Player_dead_state (formerly Player_is_dead)
2015-12-15 04:09:35 +00:00
Kp
6b353cb9ac
Move player powerup_flags to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
17b8b64980
Use macro get_local_player_flags for player's flags
2015-10-30 02:52:56 +00:00
Kp
dc5dfb80e8
Use macro get_local_player_secondary_ammo for player's secondary_ammo
2015-10-30 02:52:56 +00:00
Kp
48af374924
Reduce direct use of Segments[]
2015-10-21 02:45:43 +00:00
Kp
de3575a647
Shorten fuelcen_check_for_goal
2015-09-26 21:17:13 +00:00
Kp
c4a8432081
Remove WORDS_NEED_ALIGNMENT memcpy src cast to const uint8_t*
...
The cast provokes a warning on systems that require alignment, so remove
it. memcpy takes const void* input, so the cast is unnecessary.
Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119 >
2015-09-13 21:02:19 +00:00
Kp
423c1c3f10
Use range_for for fuelcen.cpp
2015-08-22 20:43:03 +00:00
Kp
f15116f2cb
Simplify multiplayer sound handling
2015-08-05 02:59:02 +00:00
Kp
bda7fef3a0
Use get_local_player to compute reference to local player
2015-07-25 23:10:46 +00:00
Kp
1378ec2176
Remove unused Fuelcen_refill_speed
...
Fixes: 0df3209fad
("Remove unused energy center capacity tracking")
2015-07-21 02:57:27 +00:00
Kp
374145633b
Use valptr for fuelcen.cpp
2015-07-12 01:04:19 +00:00
Kp
aa890e5d29
Pass only valptr_t to fuelcen_delete
2015-07-12 01:04:18 +00:00
Kp
f20892e24f
Remove write-only PlayerSegment
2015-07-10 03:22:27 +00:00
Kp
0df3209fad
Remove unused energy center capacity tracking
2015-07-10 03:22:26 +00:00
Kp
9d5bc102ab
Use valptr for fuelcen highest_valid
2015-06-13 22:42:17 +00:00
Kp
9a4f7a32bf
Pass vcsegptr to fuelcen_give_fuel
2015-05-09 17:39:00 +00:00
Kp
f15ec9c86a
Use enum for AIM constants
2015-04-26 20:15:51 +00:00
Kp
e883d7c872
Use enum class for AIB constants
2015-04-26 20:15:51 +00:00
Kp
5ae5033fed
Use enum for AIB constants
2015-04-02 02:36:57 +00:00
Kp
2c09f9fa90
Propagate special types for distance/magnitude
2015-03-12 02:21:19 +00:00
Kp
99a4a0ed62
Capture range_for by-value temporaries as const
...
Modifying a by-value temporary does not affect the underlying container,
so modifying it is almost always a bug. Require use of a by-reference
capture when modification is desired.
sed -i -e 's/range_for\s*(\s*\(const\s\+\)\?auto\s\+\([[:alpha:]_]\)/range_for (const auto \2/g'
2015-02-05 03:03:49 +00:00
Kp
6c857b038d
Undefine Station,RobotCenters,Vertices,Segments,Objects at level load
2015-02-01 23:07:18 +00:00
Kp
2d8f8b5d4a
Reduce inclusion of wall.h
2014-12-22 04:35:49 +00:00
Kp
d63be88eb0
Propagate use of vsegptridx_t
2014-11-23 04:58:45 +00:00
Kp
2c349136cc
Avoid slicing into segnum_t local
2014-11-20 03:00:36 +00:00
Kp
6d61198130
Pass compute_segment_center vector by &
2014-10-30 03:32:51 +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
b871228f92
Pass create_morph_robot vector by const &
2014-10-28 01:47:18 +00:00
Kp
7e955c2c7b
Pass object_create_explosion_sub position by &
2014-10-26 21:36:25 +00:00
Kp
2a5265493e
Pass obj_create position vms_vector by &
2014-10-26 21:35:16 +00:00
Kp
9dea4b4d88
Pass sound vms_vector arg by &
2014-10-26 21:33:50 +00:00
Kp
fb641b3250
Wrap object iteration idiom
2014-10-12 23:05:46 +00:00
Kp
99f681c8ea
Pass vm_vector_2_matrix arg by &
2014-10-01 02:28:42 +00:00
Kp
1fff2db9a8
Pass vm_vec_dist_quick arg by &
2014-10-01 02:28:41 +00:00
Kp
05a91f9b58
Pass vm_vec_scale_add2 arguments by &
2014-09-28 21:43:14 +00:00
Kp
321bbe37d8
Pass vm_vec_sub arguments by &
2014-09-28 21:11:45 +00:00
Kp
d2a74cb52b
Propagate for variables in similar/main/fuelcen.cpp
2014-09-26 02:42:08 +00:00
Kp
703f60ac3f
Fix -Wtype-limits warnings
2014-09-21 21:41:55 +00:00
Kp
191ecd2cdc
Remove write-only field matcen_info::interval
2014-09-17 02:07:55 +00:00
Kp
4b2ad9e3df
Remove write-only field matcen_info::hit_points
2014-09-17 02:07:50 +00:00
Kp
0c7e5aa178
Avoid slicing obj_create return value
2014-09-08 03:24:48 +00:00
Kp
66cb80c343
Propagate use of objptridx
2014-08-17 20:31:18 +00:00
Kp
125d9257be
Use special type names for segment/object numbers
2014-08-13 02:57:12 +00:00
Kp
4151a6989b
Use object helper to iterate over fuelcen segments
2014-07-30 03:06:41 +00:00
Matt Vandermeulen
28f307eb85
Fixes #5 - Byteswap header renamed to byteutil, plus sed magic
...
[Kp: switch to #pragma for byteutil.h]
2014-07-03 02:03:08 +00:00
Kp
d3ecca360c
Read matcen_info structures carefully
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
8e7b2f7d15
Fix range in disable_matcens
...
Num_robot_centers is for RobotCenters[], not Station[].
2014-06-15 22:19:26 +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
ebfb559fe1
Add dummy parameter version to D2 matcen_info_read
2014-06-08 00:05:32 +00:00
zico
ad7cb106bc
Changed custom D1X license to GPLv3
2014-06-01 19:55:23 +02:00
Kp
e7d16f095e
Remove redundant FuelCenter::Center
2014-01-25 17:21:56 +00:00
Kp
84bd6b6086
Remove needless recomputation of Station[] pointer
2014-01-25 17:21:56 +00:00
Kp
a2427f58b5
Use special type to reduce pointer/index conversions
2014-01-12 19:32:12 +00:00
Kp
85b95efc70
Fix ugly hack of using -4 for fuelcen reached
2014-01-11 22:24:55 +00:00
Kp
58ed12ffce
Use objptridx_t for create_morph_robot
2014-01-10 03:20:11 +00:00
Kp
9a5d0f6f09
Use symbolic values for segment/object first/none
2014-01-06 04:17:55 +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
38b2dbe639
Move object* -> objnum conversion into init_ai_object
2013-12-28 22:10:24 +00:00
Kp
ba1bbce571
Move similar/main/fuelcen.c -> similar/main/fuelcen.cpp
2013-11-24 22:51:56 +00:00