Commit graph

276 commits

Author SHA1 Message Date
toaster
b308a81e9d Clean up interactions between Goner Setup and restoreMenu behaviour 2023-12-18 16:30:12 +00:00
toaster
fe669ff281 Goner Setup Background part 2
- Eggman's mouth moves
- Smooth camera movement
- Smooth Miles Electric movement
- Less fragile/instant blinking
2023-12-18 00:46:20 +00:00
toaster
647a9d0a0e Goner setup music: Change behaviour
- Hook into M_PlayMenuJam, to reduce bespoke behaviour
- Use the finalised track string
- Play on the Sound Options menu
Also, use MAIN_Goner as reference for the password field's presence, because I lost like 30 minutes to a related bug
2023-12-17 13:18:35 +00:00
toaster
ae8db80a75 Goner Setup: Background has stronger presence
- Show pure blue with NO SIGNAL when Video Options have not been configured
- Show underneath other menus
2023-12-07 23:06:37 +00:00
toaster
60e6445fd2 Special Mode Time Attack swag to unwind
- Play O_SSTAR3
- Special darkened background
- Imagery to replace the minimap, since Special Mode maps generally don't have them as a rule
    - Sealed Stars:
        - Star Within The Seal, from the standard Evaluation
    - Versus:
        - The DeviantArt SignatuRes
- Fix messed-up transitions between Time Attack main menu and Replay, Guests, and Ghosts submenus
    - Special Mode specifically:
        - Forced unexpected wipes
    - All modes:
        - Don't slide away the minimap (or replacement imagery) when going between these menus
        - Fix music not being correctly attached
- Correctly center minimaps in Time Attack view
2023-12-05 21:23:58 +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
toaster
792fcf2ad8 Profile edit character select: Get transition to work 2023-12-04 13:44:15 +00:00
toaster
17c0ceba23 Profile edit polish
- Rename the Name fields to "Profile ID" and "Player Tag" respectively, for clarity
- Re-order and re-align, so the given area on the Profile Card is lined up for readability
- Use the smaller version of the gamemode font, to have the screen less crammed full
2023-12-04 13:27:47 +00:00
toaster
e91115a8fa Goner Setup: Cook 2
- More dialogue
- Restrict access to your choices based on your progress through the Goner Setup.
- Save progress through the setup to gamedata
    - Resets to beginning when Challenges is cleared
- Passwords
    - Only permit the password entry in like the first two seconds
        - Preemptively disarms potentially annoying people in stream chats
    - Make wrongwarp also quit the game on exit instead of returning to the title screen
    - Add GDQ cheats
        - `savetheanimals`
        - `savetheframes`
        - Both do practically the same thing, with slightly modified dialogue.
            - Skips all of the normal dialogue.
            - Performing a social experiment on anyone who might stream this game at a charity event. :)
2023-12-03 22:34:06 +00:00
toaster
df85b5d625 First pass horizontal menu for Goner Setup 2023-12-01 22:50:03 +00:00
toaster
0f687be7b5 The Goner Setup
The simplest passable version of the first boot experience.
- The minimal set of options you will want are available right in front of you.
    - Quit
    - Password
    - Video Options
    - Sound Options
    - Profile Setup
    - Begin Tutorial
- Will not start any menujams while this is in progress.
2023-11-29 19:37:05 +00:00
toaster
382119b8fb Second row of cups is invisible if none of them are unlocked
- Controlled by M_CupSecondRowLocked
    - Looks for any Cup with associated unlockable that's on the second row
    - Cached on load for both relevant menus - Cupgrid and Challenges
- Custom cups will be stretched out onto more pages
    - Side incentive of unlocking more material: Less annoying interactions with custom material
- Pages with nothing unlocked are completely skipped over

Also moves a bunch of minor things which previously used magic numbers to the CUPMENU_COLUMNS/CUPMENU_ROWS defines, for sanity
2023-11-20 21:09:33 +00:00
toaster
9f05c199c2 "Give up" pause menu option
Shows up in GP for any eventmode
Skips to the next stage in the queue
2023-11-16 21:12:25 +00:00
toaster
4379c62276 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into other-progression 2023-11-13 14:45:17 +00:00
AJ Martinez
06bc06869c Lite Steer profile option, itemstate pflags -> player.itemflags 2023-11-09 17:29:26 -07:00
toaster
d33fa75eb0 Disable the v1 Manual for now
I really wanted to make a new manual work in time for launch. But no. It would likely be an irresponsible timesink at this stage.
2023-11-04 22:14:15 +00:00
Sal
cecd81b4aa Podium rank screen polished 2023-10-29 06:04:22 +00:00
toaster
c26b4036b7 Challenges Menu: Subtle glowverlay on the Chao Key in the top left if you're able to skip the currently selected tile 2023-09-29 11:01:20 +01:00
toaster
911588a5fe Challenges Tutorial messages
Currently exists for:
- Generating a Chao Key
- Attempting to use a Chao Key on a Major Challenge
    - Only shows after Generating a Chao Key just so it doesn't fire before you know what's going on
Text is preliminary
2023-09-29 00:25:51 +01:00
toaster
cf1367fb8d Challenges Menu: Chao Medal icon in the top right
Fills up as you complete challenges.
Unlock all Challenges without using Chao Keys on a major tile to get the Beginner Chao Medal.
Do so without using any Chao Keys at all and you get 101%, with the Challenge Chao Medal!
(This can retroactively apply if you complete the relevant tasks legitimately at a later date.)

Also makes CC_s into an enum (now prefixed with CMC_, since CC_MAX exists in a header file already).
2023-09-28 12:28:14 +01:00
toaster
1a91f41dbb Update Challenge Menu UI
- Percentage for Challenges completion
- Smaller footprint in either top corner
    - Uses mini rank numbers
    - Rounds to new Key meter is now vertical
2023-09-27 21:19:39 +01:00
toaster
f29430f29c Longer delay for using a Chao Key on a Major Challenge Tile
Also tidies up a lot of the code and constants related to the Key usage timing
2023-09-27 20:54:32 +01:00
toaster
3e901b312c Catch all unconditional cv_playercolor[] visuals
Resolves #704
Now converts to skin prefcolor in:
- Player menu party
- Challenges menu
    - Why it's done on this branch - want to avoid merge conflicts
- Gamepad indicator
    - Actually fixes a bug at the same time for skins with nonstandard startcolors
2023-09-27 16:02:29 +01:00
toaster
36f8a64d65 Stereo Mode: Add "shf" (Shuffle) option
This basically came to me in a dream, who am I to look the horse in its mouth

- Press to start a shuffled sequence, losing your current position in the autosequence.
    - Press again to disable, but keep your current track.
- Adjust horizontal offset of Stereo buttons slightly.
- More judiciously comment Sound Test functionality, to assist future maintainers.
2023-09-24 10:46:32 +01:00
toaster
cdf5eaaa16 Server Browser Room Select changes
Instead of putting you on the room select but forbidding changing the room...
- You haven't unlocked add-ons (formerly forced to CORE)
    - Skips the Room Select and takes you directly to the CORE mode Server Browser
- Game has add-ons loaded (formerly forced to MODDED)
    - Forbid accessing the Server Browser with a helpful message.
        - Reduces tech support burden.
        - Parity with the previous entry in the series.
2023-08-31 20:00:35 +01:00
toaster
782d98fb09 Master Server Listing rules prompts
Ported from KartKrew/Kart-Public!286
Unlike the previous entry in the series, this actually defers outbound rules checks for either selecting "Host Game" on the menu, or starting a server via the console/command line parameters. Only attempting to host a non-advertised game via the menu will have sent out an unnecessary rules request to the MS!
2023-08-31 20:00:35 +01:00
toaster
7fd64a4c3d Get the Server Browser working again
- KartKrew/Kart-Public!313 has finally been integrated with the changed menu code
    - Attempts multiple times to get every public server, up to nettimeout
    - Clear the server list when entering/exiting and refrehing
    - Show visible servers and potential servers opposite the Refresh input
    - I would have done this in another commit, but the system was too broken to repair without just putting the working solution in wholesale
- Improved visual scrolling behaviour
- Pressing A actually joins the server
- CORE vs MODDED is handled in SL_InsertServer, not a seperate function to drop/memcpy things around

Also, abstract out the little "PLEASE WAIT..." message popup during potential IO block into M_PleaseWait (only used on connect process via Menu)
2023-08-31 20:00:33 +01:00
James R
64a112e358 Pause menu: add cheats menu
Automatically populated with every cheat cvar.
2023-08-25 17:35:29 -07:00
James R
6c0b042eed Refactor cvar definitions completely, move everything to cvars.cpp
- No need to call CV_RegisterVar
- Cvar definitions live in only one file, easier to locate
- Organized into sections -- netvars, cheats, etc.
- Use builder pattern to initialize cvars
- Still need to extern if you want to read the cvar value
2023-08-25 17:22:40 -07:00
AJ Martinez
3900189199 Auto Spin -> Auto Roulette 2023-08-20 16:26:34 -07:00
AJ Martinez
fbfc75df71 Item box autospin 2023-08-20 05:08:53 -07:00
toaster
19e73f4fe3 Final statistics cleanup
- Characters is default page because it's Dr Eggman's game
- Keep page when exiting menu and returning
- Remove/comment out the overview page, since the overview is currently visible on all pages
2023-08-10 00:28:18 +01:00
toaster
92b8ef33f6 Imrpoved Grand Prix Statistics screen
- Show placement with position-modified monitor mini-icon
- Reworked alignment AGAIN
- Dots instead of dashes for empty spots on the GP statistics
    - Now also applies for a missing emerald/prize
- Shaded glass background behind the icons for readability
2023-08-10 00:28:17 +01:00
toaster
648a97aaf3 Grand Prix page for statistics screen
Shows windata for all unlocked difficulties, or dotted dash lines if no windata is available
2023-08-10 00:28:17 +01:00
toaster
f02711e297 M_DrawCupWinData
Extract a portion of M_DrawCupSelect for future Statistics usage.
2023-08-10 00:28:16 +01:00
toaster
97889f9ef2 M_DrawCharacterIconAndEngine
Abstracts previously duplicated code between Challenges and Statistics
2023-08-10 00:28:16 +01:00
toaster
9ed1471c95 Add "Characters & Emgine Classes" page to statistics
- Shows wins for every character
- Shows heatmap of which stats are your favourite (of the loaded skins)
- Adds a header to the top of all statistics pages showing you can scroll left and right
    - General spacing is adjusted to accomodate
2023-08-10 00:28:16 +01:00
toaster
49e3e6b500 Instead of calculating relevant medals for every frame, calculate once and store the result 2023-08-10 00:28:16 +01:00
toaster
efe02794d4 (re-)implement pages for the Statistics Menu
Was previously a feature of older versions of SRB2, but newer releases have had more compact statistics menus.
However, we now have wayyyyy more to track than SRB2 ever did, so this is now actually justified.

Currently there are only two pages, and the first page is empty. This will change shortly.
2023-08-10 00:28:16 +01:00
toaster
23f479f365 Intermission - DUEL mode
Show players' appearances on intermissions with less than or equal to 2 players, in port priority order, to mimic Sonic 3 Competition.

Also shows player letter and profile name in Match Race, to really drive the reference home.
2023-07-26 14:31:50 +01:00
James R
a8134c89f2 Pause menu: move Retry Map/Try Again directly above Resume Game 2023-06-29 20:07:53 -07:00
toaster
4344221252 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into seeecret-colors 2023-06-28 12:48:50 +01:00
Oni
93e3b2aca0 Merge branch 'conclusions' into 'master'
Conclusions

See merge request KartKrew/Kart!1300
2023-06-28 00:51:45 +00:00
toaster
cc73279756 Allow both CALL VOTE and ADMIN TOOLS in pause menu
Also slight re-ordering
2023-06-28 00:37:30 +01:00
toaster
dee753d979 Admin Tools menu
Just a superpowered version of the Call Votekick menu, also just to make release cleanly
2023-06-28 00:02:09 +01:00
toaster
b59346f637 Votekick menu
Not super polished, literally just implemented this way to make freeze
2023-06-27 23:59:01 +01:00
toaster
d8ea8c0fe1 Implement "CALL VOTE" for victimless commands on the pause menu
Currently just plays the squishy "nope" sound for "KICK PLAYER?", all others are functional
Shows whether vote is active or the cooldown is too recent (via numerical timer) as reasons for why you can't select it
2023-06-27 17:53:59 +01:00
toaster
5036719280 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into seeecret-colors
# Conflicts:
#	src/k_menudraw.c
2023-06-26 23:25:47 +01:00
toaster
0ecc7ccd54 Make credits accessible from the menu again 2023-06-25 23:49:19 +01:00
toaster
a016a54e52 Rework how GP Backups are accessed
- Now actually from the relevant GP difficulty's Cupgrid, instead of the top-level Play choice
    - Permits a much cleaner M_StartCup, combining two of the previously four copypasted, slightly modified level startup regions (which could be further combined for sanity's sake, but would take a LITTLE more work right now than I have in me)
- Shows a funny exclamation mark from Sonic Rush on the relevant cup on the grid
- Selected by default when loading the menu, if appropriate
2023-06-25 23:44:39 +01:00