Kp
d6b4106d36
Tighten index handling for Ai_transition_table
...
Avoid undefined accesses when a robot has an invalid awareness type.
2022-01-08 17:48:09 +00:00
Kp
648bbac0b1
Convert ai_local::achieved_state to ai_static_state
2022-01-08 17:48:09 +00:00
Kp
d1ac265c2c
Convert ai_local::goal_state to ai_static_state
2022-01-08 17:48:09 +00:00
Kp
37f3c10dd4
Convert ai_static::CURRENT_STATE to ai_static_state
2022-01-08 17:48:09 +00:00
Kp
c3937f391f
Convert ai_static::GOAL_STATE to enum
2022-01-08 17:48:09 +00:00
Kp
9fdf6005df
Convert ai_static::GOALSIDE to sidenum_t
2022-01-08 17:48:09 +00:00
Kp
c6d98df9fb
Move CURRENT_GUN out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
5128b84122
Move CURRENT_STATE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
39e9673f54
Move GOAL_STATE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
c10855939b
Move PATH_DIR out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
1f00d716de
Move SUBMODE/SUB_FLAGS out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
db90f0df62
Move GOALSIDE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
ae44e0226e
Move CLOAKED out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
db7b528177
Move SKIP_AI_COUNT out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
197ed13d42
Move REMOTE_OWNER out of ai_static::flags
2022-01-08 17:48:09 +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
b4341e69a5
Remove unnecessary definitions of get_static_size
...
These exist only to be declared, and never called.
2022-01-07 04:26:22 +00:00
Kp
941190ff32
Explicitly default d_fname copy constructor
...
clang warns that an implicit copy constructor is deprecated in the
presence of an explicitly defaulted copy-assignment operator.
Add an explicitly defaulted default constructor too, since the
explicitly defaulted copy constructor suppresses generation of an
implicit default constructor, and the default constructor is needed.
2022-01-07 04:26:22 +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
f84783b95d
Use enum class for dlindexnum_t
2022-01-07 04:26:22 +00:00
Kp
2fbddf7a5a
Use enum class for tmapinfo_flags
2021-11-01 03:37:20 +00:00
Kp
795b0e9111
Use enum class for station_number
2021-11-01 03:37:20 +00:00
Kp
3e02f99bcd
Use enum class for materialization_center_number
2021-11-01 03:37:20 +00:00
Kp
eea806bcc9
Pass underlying index_type through zip()
...
If std::common_type<range::index_type>... finds a common index_type
among all the zipped ranges, pass that common type through as
zip<...>::index_type. Otherwise, set zip<...>::index_type to void.
This allows enumerate(zip(...))) to report a better index_type.
2021-11-01 03:37:20 +00:00
Kp
29b619db99
Pass random generator to pick_random_point_in_seg
2021-11-01 03:37:20 +00:00
Kp
3da988708e
Change Side_opposite value_type to sidenum_t
2021-11-01 03:37:20 +00:00
Kp
6467929025
Consolidate Side_to_verts and Side_to_verts_int
...
They have been the same variable since
a8c3a7f10b
("Alias Side_to_verts to
Side_to_verts_int").
2021-11-01 03:37:20 +00:00
Kp
9fc7a14777
Fix LTO build of Descent 2
...
enum game_mode_flags must be visible in common code, which does not
define DXX_BUILD_DESCENT_II. To avoid One Definition Rule errors,
game_mode_flags must have the same definition in all files.
Fortunately, the DXX_BUILD_DESCENT_II definition is a superset of the
common definition, so the preprocessor guards can be replaced with
advisory comments.
Fixes: 2b718da343
("Use enum class for Game_mode, Newdemo_game_mode")
2021-11-01 03:37:20 +00:00
Kp
3862edfb6c
Use enum class for segment_special
2021-11-01 03:37:19 +00:00
Kp
12a0f8e8e0
Use enum class for wall_state
2021-11-01 03:37:19 +00:00
Kp
76e2f2c6d9
Use enum class for wall_flags
2021-11-01 03:37:19 +00:00
Kp
f64ed06a9d
Use enum class for wall flag constants
2021-11-01 03:37:19 +00:00
Kp
a6f2db2502
Use enum class for player ranking
2021-11-01 03:37:19 +00:00
Kp
8ddfbd17e0
Use enum class for show_kill_list_mode
2021-11-01 03:37:19 +00:00
Kp
d22632ac48
Use enum class for msgsend_state
2021-11-01 03:37:19 +00:00
Kp
7cb34fda0c
Use enum class for network_game_type
2021-11-01 03:37:19 +00:00
Kp
eb7cedc35d
Expand macro Current_mission_longname
2021-11-01 03:37:19 +00:00
Kp
e69b7bd730
Expand macro Briefing_text_filename
2021-11-01 03:37:19 +00:00
Kp
bcc8118dd5
Expand macro Ending_text_filename
2021-11-01 03:37:19 +00:00
Kp
3d878ce04d
Expand macro Last_level
2021-11-01 03:37:19 +00:00
Kp
e36c4a17ab
Expand macro Last_secret_level
2021-11-01 03:37:19 +00:00
Kp
692c09bb7e
Expand macro N_secret_levels
2021-11-01 03:37:19 +00:00
Kp
013ef0ded7
Expand macro Secret_level_table
2021-11-01 03:37:19 +00:00
Kp
d10406c107
Expand macro Level_names
2021-11-01 03:37:19 +00:00
Kp
72cdb9b0cc
Expand macro Secret_level_names
2021-11-01 03:37:19 +00:00
Kp
c64d97307c
Pass level counts to allocate_levels
...
Avoid reading them from a global.
2021-11-01 03:37:19 +00:00
Kp
0c34a48418
Move Last_level_path_created to LevelUniqueObjectState.Level_path_created
...
Change it from the level number on which the path was created to a
true/false flag. The previous logic only tested whether the number was
equal to the current level number.
This also fixes a bug where the action was not available on the first
secret level, since that level is `-1`, and the value was set to `-1` to
indicate that it should be enabled.
2021-11-01 03:37:19 +00:00
Kp
0fcaa76fd1
Move Next_level_num to local scope
...
It does not need to be a global. For each function that uses it, it is
assigned earlier in that same function.
2021-11-01 03:37:19 +00:00
Kp
1a44112907
Remove objnum_local_to_remote wrapper
...
Always use the form that returns both fields.
2021-11-01 03:37:19 +00:00
Kp
1a08ecc8c6
Remove window subfunction types
...
These were type safety mechanisms, which are obsolete now that all
window handlers are implemented through virtual function dispatch.
2021-10-13 02:37:51 +00:00