Dmitry Grigoryev
fbd05a1592
optimize include files (include what you use)
2021-02-06 21:38:50 +01:00
Kp
1d5afd34ce
Improve post-level score screen message
...
Use a special message when the timeout has elapsed, and the game is
waiting for the user to restore focus to the score screen.
2021-01-17 22:23:22 +00:00
Kp
76cbd11956
Make kmatrix_window::event_handler cancel menu inherit from newmenu
2020-12-27 22:03:09 +00:00
Kp
115c38cd77
Remove kmatrix_poll2
...
After the previous commit, its only purpose is to automatically dismiss
the window after 3 seconds. Users may be surprised by this, and the
automatic dismissal has limited value. Remove it and let the user
remain at the cancel dialog until a decision is made.
2020-12-27 22:03:09 +00:00
Kp
907c69dcb7
Skip some kmatrix logic when not in the foreground
...
Closing the kmatrix window while it is not in the foreground may cause a
use-after-free when it is closed again later, since the event loop can
reenter kmatrix_window::event_handler. Skip the exit logic if the
window is not in the foreground, so that it remains open until it times
out while in the foreground.
2020-12-27 22:03:09 +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
03ebeda31a
Fix use-after-free in kmatrix handling
2020-12-26 21:17:29 +00:00
Kp
6322f2bb9c
In multiplayer, show mission/level name on kmatrix screen
...
Requested-by: snytek <https://github.com/dxx-rebirth/dxx-rebirth/issues/553 >
2020-12-26 21:17:29 +00:00
Kp
b459422206
Do not force player to leave score screen after final level
...
This reduces the chance of players hitting a difficult-to-fix
double-free bug, by preventing the free from occurring when the window
times out while not in focus. A proper fix requires not freeing the
window in a recursive call path.
2020-12-26 21:17:29 +00:00
Kp
60e2622234
Use enum class for kmatrix tracking of reactor destruction
...
Name the two states, instead of using 0/1.
2020-12-26 21:17:29 +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
2f90d7a208
Convert multi_do_protocol_frame to dispatch through a vtable
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
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
Kp
ae657007fe
Remove send_creation_events parameter
...
It is always nullptr.
2020-10-22 02:26:16 +00:00
Kp
ffb653c0b8
Pass control_info & to various functions
...
Switch from a direct global reference to passing control_info& as a
parameter.
2020-10-12 03:28:26 +00:00
Kp
ef8c0e7527
Make kmatrix window inherit from dcx::window
2020-08-28 00:18:45 +00:00
Kp
97315725fa
Move get_multi_endlevel_poll2 into dsx
2020-08-28 00:18:45 +00:00
Kp
02aa5c182e
Use NSDMI for kmatrix_screen::end_time initialization
2020-08-28 00:18:45 +00:00
Kp
363ecc36f1
Move kmatrix_screen into local scope
...
It is only used inside one function, so there is no need to store it
into the structure.
2020-08-28 00:18:45 +00:00
Kp
5501683dda
Store kmatrix_result in kmatrix_screen
...
Instead of storing a boolean that is later converted to a
kmatrix_result, store the desired result directly.
2020-08-28 00:18:45 +00:00
Kp
53f75c3c72
Use enum class for kmatrix network flag
2020-08-28 00:18:45 +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
53761500f1
Qualify uses of std::array
2020-05-02 21:18:42 +00:00
Kp
707b3c5b0d
Move Countdown_seconds_left to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
597cb41717
Downgrade PCX failures from Error to CON_URGENT
...
There is no need to kill the program due to a missing or malformed PCX file.
2019-07-07 22:00:02 +00:00
Kp
1008ab397e
Move Objects to d_level_unique_object_state
2019-03-03 00:31:08 +00:00
Kp
d355ef4030
Pass font to various drawing functions
2018-05-19 23:21:42 +00:00
Kp
fda1eb851e
Pass fonts to LINE_SPACING
2018-05-19 23:21:42 +00:00
Kp
08446f0ab6
Pass font to gr_string,gr_printf
2018-05-19 23:21:42 +00:00
Kp
49c0cdae2e
Simplify calls to gr_set_default_canvas
...
Rather than use an inline wrapper and rely on the compiler optimizer to
redirect gr_set_current_canvas(nullptr) to gr_set_default_canvas,
rewrite all relevant calls directly in the source.
git grep -l 'gr_set_current_canvas' | xargs sed -i -e 's:gr_set_current_canvas(\s*NULL\|nullptr\s*);:gr_set_default_canvas();:'
2017-11-05 20:49:08 +00:00
Kp
e859833f62
Use valptridx for Players
...
Currently, N_players is still a free variable and Players.count is
unused. Future work will replace N_players with Players.count.
2017-08-13 20:38:32 +00:00
Kp
e8d82d7d85
Pass valptridx factories to static functions
2017-07-26 03:15:59 +00:00
Kp
869baefa07
Fold calls to kmatrix_status_msg
2017-03-11 19:56:29 +00:00
Kp
8dff2f0048
Pass canvas to kmatrix_status_msg
2017-03-11 19:56:28 +00:00
Kp
98b34b9328
Pass canvas to kmatrix_draw_coop_names
2017-03-11 19:56:28 +00:00
Kp
efde3f7e33
Pass canvas to kmatrix_draw_names
2017-03-11 19:56:28 +00:00
Kp
f10e418264
Pass canvas to kmatrix_draw_item
2017-03-11 19:56:28 +00:00
Kp
e304f43efa
Cache canvas in kmatrix_redraw_coop
2017-03-10 01:22:33 +00:00
Kp
d5b7178fe5
Cache canvas in kmatrix_redraw
2017-03-10 01:22:33 +00:00
Kp
6b8f08142f
Pass canvas to LINE_SPACING
...
Macro LINE_SPACING previously used global grd_curcanv implicitly.
Change it to take a canvas argument. Change all callers to pass
grd_curcanv, so that usage is explicit.
2017-02-11 21:42:42 +00:00
Kp
6f81d13c41
Pass canvas to gr_set_curfont
2017-02-11 21:42:38 +00:00
Kp
c24ea5ae1f
Fold kmatrix_status_msg format string
2017-02-11 21:42:35 +00:00
Kp
ae33aaafc1
Pass canvas to gr_set_fontcolor
2017-02-11 21:42:32 +00:00
Kp
0dcae721d9
Make canvas an explicit argument to gr_printf
...
Previously, a macro implied *grd_curcanv as the canvas. Pass the canvas
explicitly so that callers can choose the canvas to use.
2017-02-11 21:42:32 +00:00
Kp
8c706a88bd
Initialize grs_main_bitmap at construction
2017-01-28 18:12:20 +00:00
Kp
5da784dbed
Pass canvas to gr_{,u}string
2017-01-08 22:32:00 +00:00
Kp
1b57e9a5ff
Pass canvas to show_fullscr
2017-01-01 00:45:43 +00:00
Kp
1060c8fabb
Move player::net_kills_total to player_info
2016-11-12 18:10:07 +00:00