Kp
636e1b6d5e
Use enumerated_array for unique_side::uvls
2022-01-15 20:39:10 +00:00
Kp
075495aa8b
Use enumerated_array for d_level_unique_automap_state::Automap_visited
2022-01-15 20:39:10 +00:00
Kp
a7c9a04c20
Use enumerated_array for shared_segment::children
2022-01-15 20:39:10 +00:00
Kp
dc2e86760e
Use enumerated_array for Side_opposite
2022-01-15 20:39:10 +00:00
Kp
4a6a4c4646
Use enumerated_array for unique_segment::sides
2022-01-15 20:39:10 +00:00
Kp
ab9242fb67
Return side ids from get_side_ids
2022-01-15 20:39:10 +00:00
Kp
1c57e1032d
Use enumerated_array for shared_segment::sides
2022-01-15 20:39:10 +00:00
Kp
2659400a97
Use sidenum_t for trigger::side
2022-01-15 20:39:10 +00:00
Kp
2d890131fb
Disable packing on old trigger structures
...
It is not necessary, and causes problems when trying to take a reference
to a member.
2022-01-09 15:25:42 +00:00
Kp
f47a2c9f0d
Convert Side_to_verts to enumerated_array<..., sidenum_t>
2022-01-09 15:25:42 +00:00
Kp
c79df55d3e
Return segment/side from med_find_closest_threshold_segment_side
2022-01-09 15:25:42 +00:00
Kp
53f098dc5e
Return segment/side from med_find_adjacent_segment_side
2022-01-09 15:25:42 +00:00
Kp
fbe3bbd0fa
Use enum sidenum_t in more places
2022-01-09 15:25:42 +00:00
Kp
4fe9f10e0c
Minimize saved weapon box texture
...
Only save the piece that will actually be shown, rather than the entire
decoded image.
2022-01-09 15:25:42 +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
78d4a36bb4
Explicitly require support for C++11 constructor inheritance
...
Parts of the code already used the C++11 syntax, so compilers without it
were already unsupported. Expand the remaining uses to the standard
syntax.
2022-01-09 15:25:42 +00:00
Kp
d2478d0708
Require support for C++17 attribute [[fallthrough]]
2022-01-09 15:25:42 +00:00
Kp
0f53ce0f06
Factor out get_xrange_direction
...
clang chokes on use of a `constexpr bool` that is initialized separately
from its definition. gcc allows this. Move the value computation into
a constexpr helper function, so that the variable can be defined and
initialized in the same statement.
2022-01-09 15:25:42 +00:00
Kp
6cdc181218
Use enum class for segment_relative_vertnum
2022-01-09 15:25:42 +00:00
Kp
f933feeef1
Combine vertex setup steps in med_attach_segment_rotated
...
This eliminates the need to keep all 4 vertex objects as temporaries,
and simplifies the loop counter.
2022-01-09 15:25:42 +00:00
Kp
932419ff17
Combine Two_sides_to_edge, Edge_between_sides
...
These track the same data, but were static and defined separately.
Delete Edge_between_sides and redirect uses to Two_sides_to_edge.
2022-01-09 15:25:42 +00:00
Kp
b8a8a61ff8
Simplify multiplayer powerup creation
...
Instead of creating the powerup from a player, then overwriting the
location and velocity of the powerup, and fixing up its segment, create
the powerup directly where it should be, with the intended velocity.
2022-01-09 15:25:42 +00:00
Kp
94cfeede5c
Validate control center trigger sides on load
2022-01-09 15:25:42 +00:00
Kp
078a9affa0
Make MAX_SIDES_PER_SEGMENT an iterable range
...
Iterating over it returns each side number in turn. This allows
converting many loops of the form:
```
for (int i = 0; i < MAX_SIDES_PER_SEGMENT; ++i)
```
to the compact form:
```
for (const auto i : MAX_SIDES_PER_SEGMENT)
```
The compact form brings the usual benefit of range-based for: delegating
iteration to the compiler prevents the loop body from skipping a step,
and makes clear in the code that this is the case.
2022-01-09 15:25:42 +00:00
Kp
3004dd16e5
Convert some bare integers to sidenum_t
2022-01-09 15:25:42 +00:00
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
3da1fdad0d
Log a diagnostic when D1 cannot find target secret level
...
A level can have a secret exit without having a mission entry describing
where to go when the secret exit is used. Switch from an assertion
failure in that case to a log message.
2022-01-08 17:48:09 +00:00
Kp
d8cc2fd363
Factor out definition of __get_found_includes
...
This does not need to be a local function. It does not need to access
anything from the containing scope, so move it to be a static method on
the class.
2022-01-07 04:26:22 +00:00
Kp
6ac75cd618
Construct compilation database earlier
...
This must be set up before trying to register check_header_includes
targets.
2022-01-07 04:26:22 +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
634d72760f
Remove unused-but-set variable common/misc/hmp.cpp: d
...
Also delete a now useless loop, which existed solely to update the value
of `d`.
2022-01-07 04:26:22 +00:00
Kp
4d5488e493
Remove unused-but-set variable similar/main/piggy.cpp: sbytes
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