Kp
197a9cbd98
Move joystick interpretation to happen after the event loop
...
If two or more events are delivered in the same loop, the previous
implementation would count joystick motion multiple times. Fix this by
moving the joystick interpretation to occur once, after all the events
have been processed.
2022-02-27 14:23:53 +00:00
Kp
5611319962
Qualify references to sidenum_t members
2022-02-19 14:52:17 +00:00
Kp
68268e9a1f
Use sidenum_t in more places
2022-02-19 14:52:17 +00:00
Kp
2fe9a16613
Use dedicated type for mask of segment side numbers
2022-02-19 14:52:17 +00:00
Kp
636e1b6d5e
Use enumerated_array for unique_side::uvls
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
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
d2478d0708
Require support for C++17 attribute [[fallthrough]]
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
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
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
6dd2776725
Use zip to traverse side uvl
2021-11-01 03:37:20 +00:00
Kp
e14c54936d
Reduce copying of side UVs
2021-11-01 03:37:20 +00:00
Kp
88b87d2aa1
Use enumerate to traverse MAX_VERTICES_PER_SEGMENT arrays
2021-11-01 03:37:20 +00:00
Kp
e259b1c0ad
Use enum class for packed edge in editor drawing
2021-11-01 03:37:20 +00:00
Kp
a655b82e7d
Use zip() in place_new_segment_in_world
...
This produces clearer code than an xrange.
2021-11-01 03:37:20 +00:00
Kp
ba01b2bdc1
Convert some math functions to fixang
...
The value was always truncated internally anyway. Move the truncation
to the call boundary, since most callers started with a fixang.
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
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
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
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
49dee72766
Preserve type of vm_vec_mag return value
...
Defer converting to `fix` until necessary.
2021-09-19 10:53:48 +00:00
Kp
bb29e6fca8
Propagate canvas through more layers
2021-09-12 16:20:52 +00:00
Kp
21241471c6
Return string width/height from gr_get_string_size
...
Use structured bindings to capture the values on return, so that they
can be declared as `const` if they are immutable after initial
computation.
2021-09-12 16:20:52 +00:00
Kp
df6777c632
Expand game_init_render_buffers inline
...
It is a single function, to add 2 arguments. Using a wrapper obfuscates
the logic.
2021-09-12 16:20:52 +00:00
Kp
2b718da343
Use enum class for Game_mode, Newdemo_game_mode
2021-09-12 16:20:52 +00:00
Kp
71ed303c27
Fix clang editor medwall build
...
The existing code checks that w.m_ptr is not nullptr before using it.
clang's flow analysis is unable to prove that w.m_ptr does not become
nullptr after it was first checked, even though `w` is const. This
causes clang to include calls to null_pointer_exception::report, which
is not instantiated for wall. That in turn causes a link error.
Rewrite the code to let clang see that the value tested is the value
used, and that no nullptr dereference can happen here.
2021-09-04 12:17:14 +00:00
Kp
21f736ec37
Require grs_subcanvas for gr_init_sub_canvas
...
Prevent passing a canvas that is not specifically typed as a
grs_subcanvas.
2021-09-04 12:17:14 +00:00
Kp
8eabce8f27
Disallow direct construction of grs_canvas
...
Require use of grs_main_canvas or grs_subcanvas instead.
2021-09-04 12:17:14 +00:00
Kp
983ad86e4b
Use enum class for trigger number
2021-09-04 12:17:14 +00:00
Kp
6ab3fb262b
Add convenience function underlying_value
...
Add a helper to deduce the enum type of a value, and use an appropriate
std::underlying_type<T> expression for that enum type. This avoids the
need to repeat the type of the enum at the site of each cast, and moves
the casts into the helper to make the callers easier to read.
2021-09-04 12:17:14 +00:00
Kp
c58d26a791
Use trgnum_t more consistently
2021-09-04 12:17:14 +00:00
Kp
5d39c52b0c
Remote write-only field UI_GADGET::status
2021-08-26 03:13:46 +00:00
Kp
40c22d0663
Move render_frame helper inline
...
Most call sites had the correct lifetime already, and those that did not
can easily gain it with an extra block scope.
2021-08-26 03:13:45 +00:00
Kp
56c98f5345
Improve error reporting for PHYSFSX_openWriteBuffered
...
Return the PHYSFS error code on failure, so that callers can report why
the open failed.
2021-07-25 23:00:56 +00:00