Kp
916eb7a0f9
Extend DXX_CHECK_VAR_IS_DEFINED to work in ASan mode
...
When AddressSanitizer is enabled, include code to read from the checked
variable, to force AddressSanitizer to perform an accessibility check.
2020-12-27 22:03:09 +00:00
Kp
effa7435c2
Remove newmenu_listbox1
...
It is no longer used.
2020-12-27 22:03:09 +00:00
Kp
0c53d3a34f
Replace PHYSFSX_isNewPath with !PHYSFS_getMountPoint
...
PHYSFSX_isNewPath retrieves from PhysFS a list of all paths, then
searches them, and frees them at the end. PhysFS can search its own
list without needing the allocations, so delegate the work to it.
2020-12-27 22:03:09 +00:00
Kp
079602b91a
Inline string_array_t::tidy comparator
...
There is only one call, so the target can be moved into the
implementation. This removes use of a call-by-pointer.
2020-12-27 22:03:09 +00:00
Kp
095d660c55
Inline listbox_get_window
...
It is only used once.
2020-12-26 21:17:29 +00:00
Kp
def7e03260
Move listbox callback handling to a derived class
2020-12-26 21:17:29 +00:00
Kp
f43e98764a
Move listbox to newmenu.h
2020-12-26 21:17:29 +00:00
Kp
f01c29c779
Flatten newmenu_do* hierarchy
...
There is now a single caller for newmenu_do3. Inline do3 into do2, so
that do2 calls do4. Mark do4 as static.
2020-12-26 21:17:29 +00:00
Kp
d1ff6becb4
Move listbox_layout to newmenu.h
...
Rename listbox_create_structure to listbox_layout::create_structure.
2020-12-26 21:17:29 +00:00
Kp
2ded2b2d0c
Make kmatrix background optional
...
Previously, if the background failed to load, the kmatrix window was
immediately aborted. Change the logic so that a failure to load uses a
blank black background, but still shows the kmatrix window.
2020-12-26 21:17:29 +00:00
Kp
b9a27094eb
Pass menu_title through listbox functions
2020-12-26 21:17:29 +00:00
Kp
b63ccc63ca
Make passive_messagebox inherit from newmenu
...
passive_messagebox is only suitable when the user's selection does not
matter, so restrict to be used for cases where only one "choice" is
offered.
2020-12-26 21:17:29 +00:00
Kp
834f009dd7
Use enum class for wallnum_t
2020-12-26 21:17:29 +00:00
Kp
fc63029833
Move more symbols into namespaces
2020-12-26 21:17:29 +00:00
Kp
faa4d2ce34
Use enum class for vertnum_t
2020-12-26 21:17:29 +00:00
Kp
10b43d4ba0
Enable quick exit from is_free_vertex
...
Once the loop has determined a vertex is used at least twice, there is
no need to count how many more times it is used. Return immediately
after detecting the second use.
2020-12-26 21:17:29 +00:00
Kp
95d8095c6d
Simplify med_set_vertex
...
- Make it static
- Remove the update of Num_vertices, since the caller reverses that
update.
- Remove the reversal, since it is no longer needed.
- Remove the test and update of Vertices.count, because the caller
always passes a vertex number that makes the test false.
2020-12-26 21:17:29 +00:00
Kp
70d55c010d
Move Num_vertices into if(DXX_USE_EDITOR)
...
Non-editor builds only need Num_vertices as a local during mine loading.
2020-12-26 21:17:29 +00:00
Kp
c58a69dbec
Return vertnum_t from med_add_vertex
2020-12-26 21:17:29 +00:00
Kp
6b3e78054c
Remove support for reading Miner's .LVL files
...
The Miner LVL files are not present in retail Descent 2 data. I know of
no way to obtain them. The code for loading them has been marked as
broken since 2018, and no one reported it. Remove this support to
simplify future work.
2020-12-20 20:39:07 +00:00
Kp
dd3f272929
Use enum class for actdoornum_t
2020-12-20 20:39:07 +00:00
Kp
1c2fcf86e0
Convert multi_leave_game to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
e2c95058db
Convert multi_endlevel to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
a3eb82cefd
Move multi code into namespaces
2020-12-20 20:39:07 +00:00
Kp
5e4047ce2a
Convert disconnect_player to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
955ce55661
Convert kick_player to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
2007257064
Convert get_multi_endlevel_poll2 to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
407678dfdf
Convert multi_send_endlevel_packet to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
ea6504e60b
Convert multi_level_sync to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
2f90d7a208
Convert multi_do_protocol_frame to dispatch through a vtable
2020-12-20 20:39:07 +00:00
Kp
d070377e6b
Convert multi_objnum_is_past to dispatch through a vtable
...
This reduces the call depth by one, and eliminates a load of a global
variable that always has the value MULTI_PROTO_UDP. It adds a load of
the address of the empty dispatch object. Overall, this should be an
improvement.
2020-12-20 20:39:07 +00:00
Kp
479884288c
Always delegate to window_create for send_creation_events
2020-12-20 20:39:07 +00:00
Kp
696141eabf
Use enum class for weapon_info::bounce
2020-12-20 20:39:07 +00:00
Kp
e261ca2884
Use enum class for weapon_info::matter
2020-12-20 20:39:07 +00:00
Kp
9f8fbb1a77
Remove newdemo_strip_frames
...
The sole user is based on newdemo_do2, which is being retired. This
feature was only available in developer builds.
2020-12-20 20:39:07 +00:00
Kp
df1ee5e671
Make weapon reorder menu inherit from newmenu
2020-12-20 20:39:07 +00:00
Kp
303815f80c
Make netgame_list_game_menu inherit from newmenu
2020-12-20 20:39:07 +00:00
Kp
e57c9efa7e
Change main F1 help menu to inherit from newmenu
2020-12-19 16:13:26 +00:00
Kp
76acfdd38f
Convert main menu to inherit from newmenu
2020-12-19 16:13:26 +00:00
Kp
8e65573c56
Eliminate move construction of newmenu_layout
...
Construct one in place, update it, and then use it to initialize the
rest of the newmenu.
2020-12-19 16:13:26 +00:00
Kp
c68dddd372
Move various definitions into namespaces
2020-12-19 16:13:26 +00:00
Kp
b1b2300c7d
Use enum class for wall_key
2020-12-19 16:13:26 +00:00
Kp
47c33cbd55
Use enum class for WALL_IS_DOORWAY_FLAG
...
This reduces the size of the debug information substantially.
2020-12-19 16:13:26 +00:00
Kp
efcd9b91ce
Use enum class for WALL_IS_DOORWAY_sresult_t
...
This generates the same code, but shrinks the debug information.
2020-12-19 16:13:26 +00:00
Kp
56122687d1
Delegate newmenu subfunction handling into virtual function
2020-12-19 16:13:26 +00:00
Kp
d4cf9943c5
Make newmenu subfunction const
2020-12-19 16:13:26 +00:00
Kp
1032462988
Make newmenu max_displayable const
2020-12-19 16:13:26 +00:00
Kp
de5c300724
Make newmenu_layout::all_text const
2020-12-19 16:13:26 +00:00
Kp
530f396b2e
Make newmenu::tiny_mode_flag, tabs_flag, max_on_menu const
2020-12-19 16:13:26 +00:00
Kp
200952c3d9
Add type-specific tag wrappers for newmenu calls
...
Make the compiler check that title, subtitle, and filename are passed in
the right places.
2020-12-19 16:13:26 +00:00