Commit graph

5636 commits

Author SHA1 Message Date
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