Kp
4257391a47
Use enum class for polygon_model_index
2022-12-18 18:32:14 +00:00
Kp
8decd6ec99
Simplify DXX_ALWAYS_ERROR_FUNCTION
...
Since this should never be invoked, simplify the definition. The new
version is slightly less informative in case a logic error causes it to
be called, but is far shorter and easier to understand.
2022-12-10 18:09:54 +00:00
Kp
e3faab0899
Use alias template per_player_array for arrays that are MAX_PLAYERS long
...
This removes the need to repeat MAX_PLAYERS in every usage, and prepares
for a future change to use enumerated_array instead of std::array.
2022-09-24 17:47:53 +00:00
Kp
0cb0b5cdc0
Use playernum_t for guided missile player number
2022-07-23 20:58:10 +00:00
Kp
6215ef8e06
Pass LevelSharedRobotInfoState to various functions that need it
2022-07-09 13:39:29 +00:00
Kp
d6c43f56af
Use enum class for gun_num_t
2022-07-09 13:39:29 +00:00
Kp
e25b476de7
Use enum for segnum_t
...
Add checked conversions for sites which load from external integers.
2022-07-02 18:10:45 +00:00
Kp
fca59adb53
Split out creating OBJ_WEAPON objects
2022-07-02 18:10:45 +00:00
Kp
fedb48613c
Move object_rw to namespace dsx
...
It depends on types in dsx.
2022-01-09 15:25:42 +00:00
Kp
7015e3e93c
Move REMOTE_SLOT_NUM out of ai_static::flags
...
Some flags merit a type other than int8_t. Begin moving flags out to
distinct variables with their own type.
Add static_assert checks that the ABI relevant structures do not change.
2022-01-08 17:48:09 +00:00
Kp
223c59c5d4
Inline out object_number_array
...
Its main purpose is to pre-initialize the underlying std::array. This
can be done without a separate type.
2022-01-07 04:26:22 +00:00
Kp
2b718da343
Use enum class for Game_mode, Newdemo_game_mode
2021-09-12 16:20:52 +00:00
Kp
8a9eb82d6e
Factor out choosing bounty target
2021-06-28 03:37:50 +00:00
Dmitry Grigoryev
fbd05a1592
optimize include files (include what you use)
2021-02-06 21:38:50 +01:00
Kp
c68dddd372
Move various definitions into namespaces
2020-12-19 16:13:26 +00:00
Kp
8e81726ac5
Use enum class for laser_level
...
Remove stored_laser_level, which existed primarily to enforce type
separate. `enum class` can do that without the need for a separate
class type.
2020-08-24 01:31:28 +00:00
Kp
038c6aef4d
Move d_level_unique_object_state to a separate header
...
This is required to untangle the cross-inclusion of object.h and
morph.h.
2020-08-10 03:45:14 +00:00
Kp
7ad8d8c28b
Rename object::movement_type to movement_source
...
gcc and clang disagree about how to disambiguate when an identifier is
both a typename and a member. Avoid the disagreement by renaming the
member.
2020-08-10 03:45:13 +00:00
Kp
5245b1c4a3
Rename object::control_type to control_source
...
gcc and clang disagree about how to disambiguate when an identifier is
both a typename and a member. Avoid the disagreement by renaming the
member.
Reported-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/issues/532 >
2020-08-10 03:45:13 +00:00
Kp
38cddb0289
Use enum class for object movement_type
2020-08-10 03:45:13 +00:00
Kp
9e2543ecbf
Use enum class for object control_type
2020-08-06 03:47:56 +00:00
Kp
ec6a78c481
Use enum class for marker index types
2020-07-22 03:11:18 +00:00
Kp
699c9bc283
Fix check_header_includes=1 build
2020-05-17 23:35:25 +00:00
Kp
399aee8d49
Use dedicated type for object render_type
...
Check conversions. On invalid input, coerce to RT_NONE and print a
warning.
2020-05-02 21:18:43 +00:00
Kp
8839f538e0
Refer to <array> directly, not through "compiler-array.h"
2020-05-02 21:18:42 +00:00
Kp
53761500f1
Qualify uses of std::array
2020-05-02 21:18:42 +00:00
Kp
ddc25b59b7
Explicitly zero-initialize object structure members
...
C++17 will require this in order for `object::object()` to be constexpr.
Add it here, before switching over.
2020-05-02 21:18:42 +00:00
Kp
b396445efa
Require support for std::index_sequence, std::make_index_sequence
...
The minimum supported compiler versions now provide a depth-efficient
implementation of std::make_index_sequence, which removes the last
reason to carry a private implementation. In the case of clang, it
appears to have a special compiler intrinsic used to implement its
std::make_index_sequence.
Switch to the compiler-provided version for both gcc and clang.
2020-04-26 17:26:23 +00:00
Kp
00df407381
Use a custom allocation for morph_data
...
This will enable shrinking the morph arrays to allocate only what is
needed.
2020-02-26 05:07:34 +00:00
Kp
669c341147
Move d_level_unique_morph_object_state to d_level_unique_object_state
2020-02-01 22:33:31 +00:00
Kp
c93e7f44c3
Move object::last_pos to LevelUniqueObjectState
...
Only the console player's last position needs to be remembered across
frames. Copy the console player's position out before processsing
object movement. For all other objects, retain a temporary for use by
the position recovery code.
2019-12-22 05:34:08 +00:00
Kp
219a3fcd11
Move laser_info::get_last_hitobj out of line
...
It is only used in two places, neither of which are hot paths. Move it
out of line so that other files do not need to parse it.
2019-12-16 01:56:59 +00:00
Kp
6f9657cf9b
Move controlcen_death_silence to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
f2eebca6c3
Move Last_time_cc_vis_check to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
d9d536afda
Move Control_center_player_been_seen to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
0826881fa0
Move Dead_controlcen_object_num to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
d0a9d8db98
Move Control_center_present to d_level_unique_control_center_state
...
This could be a shared variable instead, since it cannot be directly
influenced by gameplay. However, it is influenced by the game mode, and
keeping shared variables that are mode-specific would be more complexity
for very little savings.
2019-08-15 01:34:22 +00:00
Kp
11278eb153
Rename Control_center_next_fire_time to Frametime_until_next_fire
...
Clarify the type of the value.
2019-08-15 01:34:22 +00:00
Kp
195f5e7d9f
Move Control_center_next_fire_time to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
885296b136
Move Control_center_been_hit to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
f988948eef
Move Countdown_timer to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
21c927584b
Move Total_countdown_time to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
707b3c5b0d
Move Countdown_seconds_left to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
519edb9e16
Move Control_center_destroyed to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
be84013494
Move Boss_hit_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
0a74eb6989
Move Boss_hit_this_frame to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
75440153a0
Move Boss_dying_sound_playing to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
a0c242c46f
Move Boss_dying_start_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
63d869fa0c
Move Boss_dying to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
4ec96337b6
Move Last_teleport_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00