Commit graph

276 commits

Author SHA1 Message Date
James R
8c76dee523 Virtual Keyboard: dynamically allocate cache; allow full size of replay title buffer 2024-03-03 06:31:06 -08:00
James R
7d01c3046b M_OpenVirtualKeyboard: add optional dummymenu argument
- Virtual Keyboard can switch to a temporary menu while
  typing
  - It will switch back to the previous menu after it's
    closed
- This functionality can be used even if the menu isn't
  already open
  - It will close the menu and return to gameplay when the
    Virtual Keyboard is closed
2024-03-03 06:30:52 -08:00
James R
f270ac5579 Virtual Keyboard: use callback function to get/set cvar string 2024-03-03 06:30:37 -08:00
toaster
e8523b69f0 Sealed Star re-ordering (resolves #606)
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material

If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.
2024-03-03 00:24:31 +00:00
toaster
038016252a The pause menu Spectator toggle now supports splitscreen again (resolves #981) 2024-02-28 20:05:11 +00:00
Oni
9491c54e9d Merge branch 'separate-spb-attack-records' into 'master'
Separate/Encoreize SPB Attack records from normal Time Attack records

Closes #836

See merge request KartKrew/Kart!1875
2024-02-23 06:44:38 +00:00
James R
ae5a20756e Menus/Controls: overhaul multiple bindings input
- Replace the old method of adding each binding one at
  a time
- Hold up to 4 inputs at once, then release to bind those
  inputs to the control
- Changing the bindings overwrites the old bindings,
  instead of adding to them
2024-02-22 02:40:40 -08:00
James R
9523fd8652 Menus/Controls: add Bind Ben
- Hold right to scroll binding text into Bind Ben
  - Release right to cancel
  - When the text is done scrolling, Bind Ben begins
    chewing
    - Release right to have Bind Ben swallow
      - After Bind Ben swallows the binding text, he does
        a cute pose and the control is cleared
    - Press up or down to skip the swallow and pose
      animations and clear the control immediately
- Press C to have Bind Ben quickly eat the binding text
  and clear the control
2024-02-22 02:40:40 -08:00
James R
d2f48eda29 Menus/Controls: RESET TO DEFAULT and CLEAR ALL buttons 2024-02-22 02:40:40 -08:00
toaster
b70e59755f Tie SPB Attack and Encore together
- A method to access Encore in Time Attack
    - so we have SOME Encore singleplayer content on launch
- Also available for Versus mode (in Special Attack)
    - Finally, Encore rematches have a way to access them!
    - Obviously will not spawn a chasing SPB, it's just a signal for "hard mode"
- Relevant gametype + unlock checks have been abstracted into M_EncoreAttackTogglePermitted
2024-02-17 23:11:58 +00:00
James R
09b90c3cf1 Replays: add netdemo_size cvar, add to Data Options
Controls size of replay buffer when recording
2024-01-29 02:18:46 -08:00
James R
50781ded69 Menus/Replay: correctly adjust position of quit button in Time Attack 2024-01-28 17:56:35 -08:00
toaster
5e85de05ec QOL: Also support left/right inputs switching the Course from the top-level Time Attack view directly
- Abstracts out M_LevelSelectCupSwitch
- Pre-emptively supports cvars/arrow options on that menu
2024-01-25 22:40:52 +00:00
toaster
954d728da0 ta_e: Remove no-longer-relevant ta_spb, which could cause out-of-bounds menu options to be selected 2024-01-25 22:40:51 +00:00
toaster
af01ae7bc5 Duplicate levellist data for menu restoration
- More consistent and graceful recovery from gametype change
- Fix a potential bug with restoring the menu from Tutorial stages
- Store the calling menu in this struct
    - Permits removing the Match Race restoreMenu hack
2024-01-25 22:40:51 +00:00
AJ Martinez
fe416626a5 Merge branch 'interp-challenges-scrolling' into 'master'
Interpolate scrolling on Challenge Board

See merge request KartKrew/Kart!1782
2024-01-04 22:21:45 +00:00
James R
9eb1f1403e Menus/Challenges: optimize drawing by caching unturned tile graphics once 2024-01-04 02:11:33 -08:00
James R
b676d5137e Menus/Challenges: interpolate scrolling 2024-01-04 01:16:41 -08:00
Oni
336b430f79 Merge branch 'polish-menu-options' into 'master'
More Menu Polish: organizing

See merge request KartKrew/Kart!1762
2024-01-03 01:29:11 +00:00
Oni
d26a535610 Merge branch 'polish-pause-menu' into 'master'
Interpolate pause menu

See merge request KartKrew/Kart!1760
2024-01-01 16:16:31 +00:00
James R
f2bd45dbd9 k_menu: replace IT_WHITESTRING -> IT_LINKTEXT, draw arrow like IT_SUBMENU 2024-01-01 03:05:18 -08:00
James R
471f97bd58 Menus/Data Options: move Replay and Discord settings into drawers on main Data Options menu 2024-01-01 03:05:17 -08:00
James R
91bb575d60 Menus/Gameplay Options: add pointlimit to Battle section 2024-01-01 03:05:16 -08:00
James R
bef7c3634b Menus/Pause: interpolate 2023-12-31 08:44:40 -08:00
James R
3b5321fb0c Menus/Match Race: replace encore toggle with button prompt, add Item Toggles shortcut 2023-12-31 01:33:29 -08:00
James R
a7db45c73b M_DrawCursorHand, M_DrawUnderline: extern in k_menu.h 2023-12-29 19:24:48 -08:00
James R
de6e1ab5c9 M_DrawGenericOptions: animate drawer opening 2023-12-29 19:24:47 -08:00
James R
72f885e6ba Menus: draw headers in orange 2023-12-29 19:24:46 -08:00
Oni
af28f30d84 Merge branch 'menu-interp-pass-1' into 'master'
MENU INTERPOLATION (FIRST PASS)

See merge request KartKrew/Kart!1733
2023-12-29 23:49:30 +00:00
Oni
146cd745a7 Merge branch 'menu-highlight-non-default' into 'master'
Specially highlight menu settings which differ from the default value

See merge request KartKrew/Kart!1732
2023-12-29 19:19:49 +00:00
Oni
dbafe3fe91 Merge branch 'profile-polish' into 'master'
Profile card: add Accessibility menu

See merge request KartKrew/Kart!1729
2023-12-29 19:06:09 +00:00
James R
95378ade8f k_menu: move easing helper functions to k_menu.h 2023-12-29 08:22:43 -08:00
James R
3faf0d02ba Menus/Options, Profiles: slow down easing animations by 1 tic 2023-12-29 08:15:19 -08:00
James R
ecc7b466af Menus/Options: interpolate main Options menu
Profiles menu is touched too out of necessity (since these
share state). However, no mind has been paid to Profiles.

I have not tested Profiles after this change.
2023-12-29 05:46:56 -08:00
James R
8a2e0469e9 Menus/Extras: interpolate
- Uses a different easing
2023-12-29 05:46:56 -08:00
James R
d9f0f70987 Menus/Level Select: interpolate
- Uses slightly different easing
2023-12-29 05:46:56 -08:00
James R
1c2ed2b306 Menus/Cup Grid: stagger cursor movement 2023-12-29 05:46:56 -08:00
James R.
26ec935bba Merge branch 'char-select-polish-pass-1' into 'master'
Character Select polish for Profile selection

See merge request KartKrew/Kart!1735
2023-12-29 13:41:02 +00:00
James R.
d0e1d0a42a Merge branch 'menu-indents-pass-1' into 'master'
Menu indentation for selected options (first pass)

See merge request KartKrew/Kart!1736
2023-12-29 13:40:51 +00:00
James R
cfc3b66707 M_DrawGenericOptions: highlight non-default cvar value in orange and display dot beside 2023-12-29 05:36:38 -08:00
James R
48fcc38691 Profile card: add Accessibility menu
- Move "Toggles" from Controls to Accessibility
2023-12-29 11:03:47 +00:00
James R
30e94d81fe Menus/Character Select: interpolate Profile selection 2023-12-29 09:40:34 +00:00
Oni
1ca12f2170 Merge branch 'cache-virtual-kb' into 'master'
Menus/Virtual Keyboard: cache cvar string for duration of typing

See merge request KartKrew/Kart!1737
2023-12-29 09:14:11 +00:00
Sally Coolatta
719f4355a2 Randomize menu backgrounds
Can be any unlocked, non-Special Stage, non-boss map with a thumbnail.
2023-12-28 23:39:10 -05:00
toaster
89b8aa0a55 Merge branch 'challenge-consarnit' into 'master'
Challenge Consarn-it

See merge request KartKrew/Kart!1722
2023-12-28 14:55:53 +00:00
James R
0ef1abcf3a Menus/Virtual Keyboard: cache cvar string for duration of typing
This avoids calling cvar callbacks after every key press.
2023-12-28 05:54:01 -08:00
James R
e114bf8f95 Menus: pop out highlighted button on Gamemode menus (except when fading in)
Effective for:

- Gamepad up/down
- Transition (without fade)

Does not affect buttons inside boxes. My reasoning here is
that these show arrows when highlighted anyway, so that
fulfills the extra feedback.
2023-12-27 12:26:30 -08:00
James R
93e9bd5485 Add menu_anim_t and easing helper functions 2023-12-27 12:24:53 -08:00
toaster
a07aeef049 play-char-select.c: Reduce copypasted hell
Instead of manually handling every single transition, only simple transitions are unique.
Helper functions are used for the complicated transitions - Color selection if there's more than 1 colour, Follower selection if you have any followers unlocked, and the choice of Alts versus Character when going back.
Fixes a whole class of issues where, for example, you'd skip over setting your skincolor if you went through the Alts submenu, but not if there's only one character on that statblock.
2023-12-26 23:00:09 +00:00
toaster
c6edfa0de5 Goner Setup Polish
- Imply passage of time when returning from Tutorial to Outro by resetting all the background variables
- Add an additive layer to the Options cogs, so they show up over an extremely dark background
- Metal Sonic will not focus on Tails/Eggman until video is restored
- Don't draw the Miles Electric transparent unless it's completely in its upright position
2023-12-18 17:01:29 +00:00