Commit graph

35 commits

Author SHA1 Message Date
toaster
09e23e6e18 Rip out all the rewinding code
It was all messy and none of it is called in release builds because it was so crashy in testing
2025-06-01 00:02:19 +01:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Sally Coolatta
c5a6968491 SRB2 -> DRRR copyright in menus folder 2024-04-05 10:18:34 -04:00
toaster
aad62ed62d M_EndModeAttackRun: Switch Secret Exit warning message to say "Attack modes" (instead of "Record modes") per request 2024-03-19 19:30:16 +00:00
James R
326e560329 Attract: fix attract demos end handling
Fixes two bugs:

- Attract mode carrying over to gameplay if an attract
  demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
2024-03-18 02:42:21 -07:00
James R
abb3a748d9 Menus/Replay: fix director button disappearing after watching a Time Attack replay then going to Egg TV 2024-03-17 04:55:27 -07:00
James R
92261733f4 Replays: add Director toggle
- Very basic, no feedback other than the viewpoint
  changing
- Uses Shutterbug unlock graphic
2024-03-11 07:10:34 -07:00
James R
032c5bb27c Replays: fix ghosts not being freed if Time Attacking and letting the map exit without manually returning to the menu
- Fixes a very specific crash
- Record a Time Attack
- Let the map exit naturally
  - I tested by FALLING OUT of a Sealed Star
- Start recording another Time Attack
  - I tested by going to the same map again
- Result
  - One of three possibilities
  - Z_Free: wrong id
  - SIGSEGV
  - Game freezes and hangs forever
- I also wrote detailed comments in M_EndModeAttackRun so
  you know what it's supposed to be doing
2024-03-10 14:32:07 -07:00
toaster
55cbf07a28 Patch over MapWarp not meshing with Time Attack
Prints a message saying your time wasn't recorded and you should try a different mode
2024-03-09 20:33:24 +00:00
toaster
9b9c2cbcb6 M_EndModeAttackRun: Fix recursivity issue that resulted in natural ends to replays losing track of restoreMenu 2024-03-05 13:21:38 -08:00
James R
adebfb000c Replays: keep party in sync with current viewpoints
- More and more parts of the game rely on parties
- Parties are assumed to match the displayplayers
- This fixes A/B/C/D nametags
2024-03-01 06:09:07 -08:00
James R
3eb31010c4 Menus/Replay: fix "Backup Frame" button appearing when paused
It's just a visual bug; this button still restarts the
replay.
2024-01-30 21:50:28 -08:00
James R
b732d7bd43 Menus/Replay: replace rewind button with restart button
- Restarts the replay from the beginning
- New button graphic
2024-01-28 21:07:12 -08:00
James R
50781ded69 Menus/Replay: correctly adjust position of quit button in Time Attack 2024-01-28 17:56:35 -08:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
toaster
85d8cfdf85 menu_t: Add bgroutine
All backgrounds are now handled by a seperate routine.
This will allow more fine handling without a ton of special cases everywhere.
Creates an absolutely nasty diff because all menu_t have been updated in one blast 🥹
For the things that DO need to draw outside of GS_MENU (M_DrawOptionsCogs, the Wrongwarp), the behaviourflag MBF_DRAWBGWHILEPLAYING has also been added.
2023-12-04 20:10:03 +00:00
James R
fa89576f34 Move freecam state to camera_t, lets splitscreen players use freecam independently of each other 2023-10-08 14:26:21 -07:00
James R
fcc35c1bb1 Toggle between freecam and director using C button 2023-08-19 05:01:40 -07:00
James R
ff447a212a P_DemoCameraMovement: even out vertical angle after toggling
After turning on freecam, the vertical angle is tilted
slightly downward (this is carried over from normal
chasecam).

Interpolate that angle back to normal while moving
forward. This makes it so you don't need to manually
adjust the vertical angle, since it would cause forward
movement to send you into the ground.
2023-08-19 05:01:40 -07:00
James R
0f9ceab817 P_DemoCameraMovement: don't let A button press from menu carry over to rise camera 2023-08-19 05:01:40 -07:00
James R
83f02231e3 Replace spectator movement with demo freecam 2023-08-19 05:01:40 -07:00
James R
8809ab02fc democam: remove unnecessary fields 2023-08-19 05:01:40 -07:00
James R
fec0f13419 P_DemoCameraMovement: use locally built ticcmd from G_BuildTiccmd 2023-08-19 05:01:40 -07:00
James R
3bc7b48b7e Remove Replay Hut code 2023-04-28 12:50:43 -07:00
toaster
42cc95f6ed menubehaviourflags_t / (menu_t).behaviourflags
- MBF_UD_LR_FLIPPED
    - Genericisation of the control flip for PAUSE_PlaybackMenuDef
- MBF_SOUNDLESS
    - Do not create sound for default menu actions
2023-03-25 22:39:07 +00:00
toaster
c6dde48245 g_demo.c, M_EndModeAttackRun, D_ClearState - Unset demo.title in one specific place
Fixes returning from title demo to titlescreen
2023-02-04 17:13:07 +00:00
toaster
3e0ba74003 P_PlaybackSetViews: Support C-button reset to 1p view 2023-02-04 11:07:29 +00:00
toaster
03d422560d menu_t, M_PlayMenuJam: const char *music parameter
If Playing(), does nothing.
- If NULL, cycle between Cascade Cave as is traditional.
- If ".", stop music. (will one day be used for sound test)
- Any other case, call S_ChangeMusicInternal on the string directly

Notable menu sets:
- All Extra menus, excepting the Replay Hut, use "EXTRAS"
- Replay Hut uses "REPLAY"
- All online menus use "NETMD2".
    - I know we wanted to do something with switching between "NETMDE" and "NETMD2". I would prefer a more consistent API for transferring song position across between tracks be implemented before implementing this.
    - Known bug: Music restarts when exiting from failed connection screen
    - Known bug: Music goes back to Cascade Cave when selecting "GO" for server creation
        - Wontfix as we want that button to go directly to the voting screen, which we can do in a voting revamp branch
- Data Erase, Profile Erase: "SHWDN2"
    - Not in the spec but I think it's both funny and a valuable tell for the most "dangerous" menu to play with.
    - Also shifts the background to SKINCOLOR_BLACK
2023-02-01 23:15:51 +00:00
toaster
2d5d5343b1 M_EndModeAttackRun bugfixes
- Correctly restore menu state after failed record attack run
- Making things easier for future work - use demo.title as signifier to go back to title screen
2023-01-31 14:00:21 +00:00
toaster
20e9b2f5e8 Restore menu state after playsim
- restoreMenu, M_SpecificMenuRestore
    - From any Cup Select, Level Select, or Time Attack context (including non-net replay playback), return to the relevant "core menu"
    - From any server OR server connection failure, return to the Online EGGA CHANNEL top-level menu
    - From netreplay, head to replay hut without incorrect gamestate/fade cope
    - Interruption for Challenges unlock sequence now happens on all menu returns, not just post-titlescreen
- M_StartControlPanel
    - Integrate with above
    - Handle menu re-initialisation properly under more contexts
- D_ClearState
    - Split out from D_StartTitle
    - Can be used alongside M_StartControlPanel to restore menu state from any play session in a way just as reliable as D_StartTitle was
2023-01-29 23:53:21 +00:00
toaster
4530ccf2aa Remove Playback mini-menu shortcut indicators
These are completely incompatible with newmenus because we can't assume anyone would have these buttons unbound. If we add anything like them later, they'll be user-bindable - but the point of good menu design is to not require shortcut keys.
2023-01-29 00:36:38 +00:00
toaster
c55849006d Repair playback mini-menu
- Fix starting the playback mini-menu
- Fix playback mini-menu input not being natively horizontal
- Fix playback mini-menu having been written before r_splitscreen refactor
- Move heinous modifying-menu-data-in-the-drawer behaviour to an actual dedicated ticker
2023-01-29 00:29:46 +00:00
toaster
7ea596daae M_EndModeAttackRun: Update time attack menu on exit 2023-01-28 22:33:11 +00:00
James R
b26cd786ec Move all specialized code out of k_menufunc.c
Adds new files:

- menus/extras-statistics.c
- menus/play-online-room-select.c
- menus/transient/cup-select.c
- menus/transient/explosions.c
- menus/transient/gametype.c
- menus/transient/message-box.c
- menus/transient/virtual-keyboard.c
2023-01-12 20:31:31 -08:00
James R
0b3d04bbfd Split k_menudef.c into menus subdirectory
- src/menu contains files for each menu's definitions.
- src/menu/transient contains menus which are reused in
many places or are separate from Main Menu entirely.

File names ending in "-1" are menus which contain
a submenu. The suffix is added so that the parent menu
sorts before all its children in directory lists.

It's also done so Tab completion doesn't stop such that
a hyphen (-) would need to be typed.

For example (this is how I auto complete file names):

"ex" <TAB> completes to "extras" because the choices are
"extras.c" or "extras-addons.c" etc. Now you need to reach
away from the home row of a keyboard to type a "-" in
order to complete any of the submenu file names.

VS

"ex" <TAB> completes to "extras-". You only need to reach
to type a "1" for one menu. There may be more than one
submenu and submenu names start with letters, which are
closer to the home row.
2023-01-07 07:40:45 -08:00