Kp
b1ea316a63
Move netgame list menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
2e41a2b169
Move manual net join menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
5f4e8da3b9
Move sandbox menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
56ad2266da
Move netgame menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
52f9e29e82
Move gameplay menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
71f05d987a
Move sound menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
431a2f99f1
Move graphics configuration menu subfunction handling to event_handler
2021-06-28 03:37:50 +00:00
Kp
3f8ef01dc7
Move hud configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
464e4e99fb
Move hud style configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
d8860549c4
Move reticle configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
8fc9778e5e
Move input configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
8a3cd4c614
Move joystick configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
f5e837d70b
Move mouse configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
c3a35fd952
Move keyboard configuration menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
f3d47c2b3c
Move options_menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
54456faf2a
Move main_menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
4aef667ac6
Move wimp_menu subfunction handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
53cd92727e
Move marker_delete_are_you_sure_menu select handling to event_handler
2021-06-28 03:37:49 +00:00
Kp
ce8a5d4275
Pass EVENT_NEWMENU_SELECTED through full event_handler
...
This makes the path slightly longer now, but allows derived types to
switch away from subfunction_handler individually.
2021-06-28 03:37:49 +00:00
Kp
6cf6c62550
Convert some uses of nm_messagebox_str to run_blocking_newmenu
...
The latter more clearly shows that the code flow will not proceed past
this point while the menu is open. This conversion sets the stage for
later changes to make these menus asynchronous.
2021-06-28 03:37:49 +00:00
Kp
63ac8a1f5d
Move saved_text out of imenu_specific_type
...
This significantly shrinks newmenu_item, by not embedding a saved_text
in the union that is present in every newmenu_item.
2021-06-28 03:37:49 +00:00
Kp
d0d7545ec1
Unload robot movies on exit
2021-06-28 03:37:49 +00:00
Kp
76a7361786
Close descent.hog on exit
...
Add RAII wrappers for unmounting PHYSFS paths. Use them in places that
previously handled unmounting explicitly. Also, use it for descent.hog
/ descent2.hog, which previously were left mounted indefinitely.
2021-06-28 03:37:49 +00:00
Kp
1dba8e40ec
Move PHYSFSX_addRelToSearchPath pathname to caller
...
Some callers will need access to the computed path. Change the callers
to pass in a buffer for this path, and have PHYSFSX_addRelToSearchPath
fill that buffer directly.
2021-06-28 03:37:49 +00:00
Kp
c98c412fbb
Remove template indirection around PHYSFSX_getRealPath
...
All callers use a std::array<char, PATH_MAX>, so update the definition
to use that.
2021-06-28 03:37:49 +00:00
Kp
391a539ad2
Use enum class for PHYSFSX_addRelToSearchPath append/prepend parameter
2021-06-28 03:37:49 +00:00
Kp
93a7e34caf
Move newmenu_item slider storage of saved_text out of line
...
When other newmenu_item private members also move, this will make
newmenu_item smaller.
2021-06-28 03:37:49 +00:00
Kp
1936b771e1
Construct nm_item_input in place
2021-06-28 03:37:49 +00:00
Kp
821e68527d
Remove nm_set_item_input overload for char[]
...
Require use of std::array. There is no need to support both overloads.
2021-06-28 03:37:49 +00:00
Kp
2a504ee03e
Construct nm_item_menu in place
2021-06-28 03:37:49 +00:00
Kp
b5460a0a48
Construct nm_item_text in place
2021-06-28 03:37:49 +00:00
Kp
3d14dbacde
Remove digi_reset
...
It was only available in debug builds, and did nothing when called.
2021-06-28 03:37:49 +00:00
Kp
6e12644620
Remove write-only field digi_sound::bits
2021-06-28 03:37:49 +00:00
Kp
73c3474f8e
Reduce uses of RAIIdmem for local variables
2021-06-28 03:37:49 +00:00
Kp
d0a8cf7769
Avoid unnecessary reallocations in D1 shareware sound decompression
...
lastsize was never updated from 0, so every pass would reallocate the
buffer. Switch to a std::vector and rely on it to remember the size.
Manually tracking the size would be slightly more efficient, but this is
not a hot path and the vector approach is easier to review.
2021-06-28 03:37:48 +00:00
Kp
ee07a45712
Simplify MALLOC invocations
...
Remove overload for C array decay, and fix up the call sites that
required it.
2021-06-28 03:37:48 +00:00
AlumiuN
b918d33e1c
Fix door lock/unlock triggers causing a crash when given an invalid wall location
2021-06-14 15:16:56 +12:00
AlumiuN
a17129a9aa
Fixed mission menu subdirectory handling
2021-06-13 20:15:26 +12:00
Dave Milici
87adf05c75
Merge a9d14fc03d
into 48589d0fb0
2021-05-04 10:03:00 -07:00
Dave Milici
a9d14fc03d
Relocate stereo conditional for cockpit views into select_cockpit().
...
Avoids switching cockpit views to CM_LETTERBOX when player dies or
level ends which stereo viewport is active, as well as other calls
to select_cockpit().
2021-05-04 09:55:48 -07:00
Dave Milici
a394bd0312
Consolidated above/below format cases for readability.
2021-05-04 08:46:26 -07:00
Dave Milici
5025cedf45
Simplified case for above/below blank interval adjustment.
2021-05-03 16:05:12 -07:00
Kp
58a1d86c05
Fix return type of check_trans_wall lambda ( #588 )
...
The deduced return type is `grs_bitmap`, which is inefficient, but not
wrong on its own. However, `rle_expand_texture` uses the address of its
argument as a long-term cache key, so it must never be called with the
address of a stack-local variable. When the return type is
`grs_bitmap`, the argument to `rle_expand_texture` is a reference to a
stack-local variable. Fix this by setting the return type to
`const grs_bitmap &`, so that the argument to `rle_expand_texture` is a
reference to an element in the global GameBitmaps array.
AlumiuN proposed an initial fix, but based on analysis of why that fix
worked, I elected to use a different, smaller, fix instead.
Reported-by: CHILLYBUS <https://github.com/dxx-rebirth/dxx-rebirth/issues/588 >
Reported-by: KynikossDragonn <https://github.com/dxx-rebirth/dxx-rebirth/issues/588#issuecomment-825978696 >
Analyzed-by: AlumiuN <https://github.com/dxx-rebirth/dxx-rebirth/issues/588#issuecomment-826009993 >
Analyzed-by: 4C1T <https://github.com/dxx-rebirth/dxx-rebirth/issues/588#issuecomment-826016402 >
Proposed-fix-by: AlumiuN <c4d1f41946
>
Fixes: 61f186bc18
("Use enum class for texture1_value")
2021-04-24 17:32:47 +00:00
Dave Milici
d06751282b
Hack to keep stereo formats remaining fullscreen.
...
When player gets killed, the screen inexplicably switches to
another viewport format to show explosion POV and then switches
to cockpit viewport, which is not compatible with stereo formats.
Unable to locate where exactly cockpit gets switched on player
dead state, so hack is in place to keep stereo formats fullscreen.
2021-04-08 14:07:35 -07:00
Dave Milici
ea6379de2d
Add above/below option sync blank interval for external sync doubler.
2021-04-08 14:07:35 -07:00
Kp
1ebb738434
Fix break for !DXX_USE_EDITOR
...
Fixes: ddb9e8e774
("Add in-game editor menu to update Cursegp")
2021-04-07 01:45:58 +00:00
Kp
6666928824
Fix Windows build of menu.cpp
...
Commit 6ad87cf78ab3 removed support for char[] as an input to
nm_item_input and fixed all sites that used it in the cross-platform
build. The Windows build has one use that no other platform does, and
this use was not fixed. Fix it now.
Fixes: 6ad87cf78ab369cdc26080ac579fb2ab3f592de6 ("Remove nm_set_item_input overload for char[]")
2021-04-04 22:01:25 +00:00
Kp
32ef2969e6
Override mapping of D1 secret door texture
...
Previously, this texture was handled by the default branch, which would
add 64. For this texture, adding 64 picks a frame late in an animation,
causing the texture to have transparent areas. The intended texture, as
used in D1, has no transparent areas. Add a special case to pick the
first frame, which appears solid.
Reported-by: Q3BFG10K <https://github.com/dxx-rebirth/dxx-rebirth/issues/577 >
Analyzed-by: AlumiuN <https://github.com/dxx-rebirth/dxx-rebirth/issues/577#issuecomment-783002296 >
2021-04-04 22:01:25 +00:00
Kp
414c59c6ba
Enable backtick-based segment reporting in D1
...
This is a developer feature that is useful in D2. Backport it to D1.
2021-04-04 22:01:25 +00:00
Kp
ddb9e8e774
Add in-game editor menu to update Cursegp
2021-04-04 22:01:25 +00:00