Commit graph

72 commits

Author SHA1 Message Date
toaster
87b80a62f2 SPB Attack: Integrate into conditions-cascading affairs
- All `cv_dummyspbattack`-related material is now gated with the assistance of SECRET_SPBATTACK.
    - SPB_ATTACK
- Add UC_MAPSPBATTACK condition.
    - Both this and emblems with MV_SPBATTACK have the string "SPB ATTACK: Conquer [LEVEL NAME]", compared to the regular round completion conditions having "Finish a round on [LEVEL NAME]".
        - If SPBATTACK is not unlocked, shows ???: Conquer [LEVEL NAME] instead
2023-03-05 20:48:31 +00:00
toaster
99b5fe7bf4 M_EraseData: Fix va() being passed to va() 2023-03-05 19:56:52 +00:00
toaster
0f715454fa Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-05 19:51:48 +00:00
toaster
f7617e7530 Clear records, stats, and secrets on new in-SOC gamedata creation
- Pre-emptive sanity check to some impending work
- Move M_UpdateUnlockablesAndExtraEmblems out of M_ClearSecrets
2023-03-04 21:11:13 +00:00
toaster
e994b920c6 gamedata->roundsplayed: Split into multiple roughly-gametype-aligned categories
- Race, Capsule, Battle, Special, Custom
- All categories can now be used for Rounds Played condition
- UCRP_SEALEDSTAR now hides if you haven't beaten a single Sealed Star yet
In addition, introduce M_ClearStats
- As more statistics get added, clearing them manually in G_LoadGameData and M_EraseDataResponse is just going to get annoying
- Change around the options on the Erase Data screen to
    - Make it clear that erasing all game data won't clear your Profiles
    - Add an option to clear stats by themselves, rather than only permitting via complete gamedata wipe
    - Move to the "Challenges" terminology over SRB2's "Secrets" terminology
- Move some entries that were previously handled in M_ClearSecrets into M_ClearStats
2023-03-04 20:09:29 +00:00
AJ Martinez
4121b4c385 SPB Attack: fix double cvar callback 2023-03-04 06:43:52 -07:00
AJ Martinez
320685cf97 SPB Attack: review fixup omnibus 2023-03-04 06:41:44 -07:00
toaster
eeb6e40909 Add totalrings to gamedata
- Added to Statistics screen
- Caps at "999,999,999+".
- Controls UC_TOTALRINGS condition
- Improve description for UC_MATCHESPLAYED condition
    - Says "Rounds" now
- Improve Statistics text for playtime
    - Dynamically changes visible units of time (seconds, minutes, hours, days.......)
2023-03-03 22:35:28 +00:00
AJ Martinez
211206ba6f Fix menus, fix failure condition 2023-03-03 12:17:10 -08:00
AJ Martinez
f3f4ac16de SPB Attack: medals, emblems, and fixes 2023-03-03 12:15:00 -08:00
AJ Martinez
79d8e4e109 WIP: SPB Attack - temp menu draws OOB, no unlocks 2023-03-03 12:14:58 -08:00
toaster
bd54a789a2 M_BuildConditionSetString, M_StartMessage: Fix occasionally spurious injected newlines 2023-03-03 15:31:36 +00:00
toaster
53ce2e4287 Gamedata-related changes + Crash tracking
- Combine multiple adjacent saves
    - Generally could happen during game ticking, combined via gamedata->deferredstate
    - DEFINITELY happened in splitscreen PWR handling, adjust those loops directly
- Write "dirty" state via gamedata->crashflags on everything except safe, intentful unloads
    - Add UC_CRASH, which unlocks dependent on the above "dirty" state being present at gamedata load
    - We can use this for something more useful and less funny later.
- Play "O_LOSERC" on the menu, starting with the Challenges screen, if a UC_CRASH condition has been met.
2023-03-03 13:38:31 +00:00
toaster
e07802d3bf M_SetupGametypeMenu: Fix a bug with RestoreMenu corrupting menu state. 2023-03-02 21:04:23 +00:00
toaster
92285b90fa Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-02 14:38:56 +00:00
Eidolon
5d54d53a4b Hide movie_showfps option when webm is disabled 2023-03-01 19:02:20 -06:00
toaster
40271cd128 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into hwr2-twodee 2023-03-01 12:30:58 +00:00
Eidolon
83b6c30952 hwr2: add wipe mode to F_RunWipe, fix all wipes 2023-02-27 21:45:59 -06:00
toaster
c9dd133b2d play-local-race-difficulty: Make check for Encore option based off the local state (do not attempt to check online unlock) 2023-02-27 19:56:07 +00:00
toaster
54a58178a1 Add Extras-related unlocks
- When SECRET_ADDONS is locked
    - No Addons option on Extras submenu
    - No mid-game Addons in K_CanChangeRules
    - Forced onto CORE on Server Browser room selection page
        - Semi-related: If modifiedgame is true, force onto MODDED, even if you haven't unlocked it
        - TODO: Update UI to show you can't switch in a more elegant way
    - Hide Addons Options on Data Options submenu
- When SECRET_EGGTV is locked
    - No Egg TV option on Extras submenu
    - Semi-related: Rename to Egg TV per team discussion
2023-02-27 19:55:11 +00:00
toaster
6d43d8ef09 Add SECRET_ONLINE.
- Online menu is inaccessible until unlocked.
- Unlike most unlocks, the fact that it's not enabled is very clearly signposted.
    - This is because the previous entry in the series barely had any offline content at all, so the fact you'll have to work for it will catch a lot of people by surprise.
    - Has a message that straight up tells you you need experience in Grand Prix mode.
- Has no affect in TESTERS builds, for which this is the only method of play available.
2023-02-27 17:01:15 +00:00
toaster
7684cc1cf3 M_SetupGametypeMenu: Fix skipping to the Race select setup menu if Capsules and Special aren't unlocked 2023-02-26 23:37:00 +00:00
toaster
26ceb13672 Character Select: Press R (drift) to toggle an "extra info" mode
- Hides "A PLAYER/A $profilename" text
- Shows extra info relevant text
    - Early stages: "[EXTRAINFOMODE]"
    - Grid select: Speed and weight
    - Clone select/READY!!: Character name
    - Color: Color name
    - Follower category: Category name
    - Follower: Follower name
    - Follower color: Follower color name
- The hidden setup_page toggle feature now only uses L button
2023-02-26 23:28:00 +00:00
toaster
1ccde62f8a Challenges menu: Sidestep the problem with holding down the "flip to see the other side" button by making it instead a toggle
This toggle gets switched off when pressing any movement input to make it not possible to just leave on all the time and make the menu messy
2023-02-26 21:19:38 +00:00
toaster
1654b2869b Replay Data Options: Correct blatantly incorrect name and description for the (completely abhorrent hack that is) cv_netdemosyncquality. 2023-02-26 20:49:49 +00:00
toaster
b896f84868 Data Options menu: Adjust for Avrecorder.
- Rename every instance of "gif" to "movie".
- Rename Screenshot options to Media options.
- Surface `moviemode_mode` as `Recording Format`.
- Surface `movie_showfps` option as "Real-Time Data".
- Other avrecorder options... surface on a case by case basis, there's a lot of them and not convinced they're all necessary to be user-facing?
2023-02-26 20:44:23 +00:00
toaster
0953da5886 Item Toggles menu: Add recent items
- Gachabom
- Gachabom x2
- Gardentop
- Reorganise to accomodate the above. No order is perfect, but this will do for now
2023-02-26 18:21:01 +00:00
toaster
ea8c583cce MISC_ChallengeDef: Move challenges grid up by 2 pixels
Helps the feng shui
2023-02-25 14:17:11 +00:00
toaster
91fa244dec Challenges Menu: Adjust ticker behaviour for flipping panels
- Handle beginning a flip in M_ChallengesTick
- Removes set in M_ChallengesInput
- Reduces complexity of set in M_ChallengesAutoFocus
- Fixes an issue where starting the menu would have the tiles partly compacted during the intro wipe
2023-02-25 13:28:11 +00:00
toaster
9779d6066c Challenge Grid: Introduce flipping tiles
- When a tile is selected, flips from category side to specific icon side
- Flips back when unselected
- Hold R (drift) to flip all tiles to visible side
2023-02-25 00:21:28 +00:00
toaster
339617a54e extras-challenges.c, M_UpdateChallengeGridExtraData: Be less lazy about reallocation
- Z_Calloc once, on menu load, instead of every time data changes
- Free once, on menu exit, instead of every time data changes
2023-02-24 19:10:44 +00:00
toaster
4380876959 Challenges Grid: create dedicated struct for menu extradata
- challengegridextradata_t
- Existing UINT8 data per entry has been converted to "flags" property
- This is a tool that will help us later.
2023-02-24 17:38:08 +00:00
Oni
8d33b5d6af Merge branch 'skinchange_spectatorify' into 'master'
Skinchange Spectatorify

Closes #305

See merge request KartKrew/Kart!936
2023-02-19 07:43:38 +00:00
Oni
cdf19e8c79 Merge branch 'fix-profile-card-quick-confirm' into 'master'
Fix crash if navigating profiles menu too quickly

See merge request KartKrew/Kart!939
2023-02-19 00:09:58 +00:00
James R
a880044f19 Move options menu profile reset to before profile gets set
When exiting a card, once the transition ends, there was
a 1 tic window that an A press could select a card and
THEN set the profile pointer to NULL.
2023-02-18 13:37:40 -08:00
toaster
d69e92d70f Fix changing kickstartaccel from the profile menu
- M_ProfileControlSaveResponse: Set without stealth (ie, call command which sends XD_WEAPONPREF netxcmd)
- weaponPrefChange (and its splitscreen ilk): Only build/send XD_WEAPONPREF command when Playing()
2023-02-18 14:15:58 +00:00
toaster
0474675109 Character Select menu: Forceskin is now reflected on the menu
Matches cvar updates in real time, so can't change what's written to setup_chargrid
2023-02-17 17:07:33 +00:00
toaster
7d015ac7b1 Fix unwinding Join By IP option
- M_CharacterSelectTick: Initialise Online menu when setting up
- PLAY_MP_OptSelect: Hide entries 0 and 1 instead of removing them, to keep options aligned
2023-02-17 13:56:29 +00:00
AJ Martinez
f4d98a14b6 Don't let testers shoot themselves in menus 2023-02-17 00:02:23 -07:00
toaster
df4d1fb10a M_SetupDifficultyOptions: Only show Encore on Difficulty select in Match Race
We have our own plans for Encore GP that I will definitely be addressing before release.
2023-02-09 22:40:13 +00:00
toaster
a154b1a565 restoreMenu: Go to Difficulty select after Match Race, instead of the level selection menu
- Splits M_SetupDifficultyOptions out of M_SetupDifficultySelect.
    - Permits Encore to be handled on Difficulty menu if unlocked after a Match Race.
- Fixes an issue where the in-game Pause menu could be accessed in the menu
    - The prevMenu that was set was overriden with in-game Pause.
    - The assumption made - that the levelsearch/levellist struct would not be touched - is pretty transparently violated.
- I made it go back to the Difficulty select instead of fixing the issue because:
    - Match Race is more dependent on the rules you configure for that particular round
    - This mode of play will be modified in future to not be literally offline MP with things like voting, but instead return to the menu
    - It was easier relative to the amount of work to properly restore (this is the biggest reason)
2023-02-09 22:38:04 +00:00
toaster
4ebc42d438 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into staffghost-repair 2023-02-06 22:29:24 +00:00
toaster
daf11a1407 M_LevelListFromGametype: Z_Malloc instead of Z_Calloc for initialisation of cupgrid.builtgrid
A memset is already guaranteed to follow this initialisation.
2023-02-06 20:47:48 +00:00
toaster
8b7faa10c1 M_LevelListFromGametype: Remove memory-corrupting memset
- firstlen was in units of raw UINT8 address (pre-multiplied by sizeof(cupheader_t*)) to permit being used in Z_Realloc. However, it was being added onto the cupgrid.builtgrid pointer BEFORE it was cast into UINT8* for memset, leading to an offset, when considered in terms of UINT8 address.
- Z_Realloc2 is always guaranteed to memset any appended memory so this wasn't even required
2023-02-06 20:46:47 +00:00
toaster
e7b63a5fad G_UpdateTimeStickerMedals, M_StartTimeAttack: If you've beaten all game-provided times, show your personal best record on the in-level HUD instead. 2023-02-05 19:17:07 +00:00
toaster
4522ba3b4d stickermedalinfo, UpdateTimeStickerMedals: A centralised struct for Medal info attached to the time sticker.
- K_drawKartTimestamp: Significantly less messy, no longer dependent on static variables, and no longer iterates over M_GetLevelEmblems every rendered frame(!!)
    - TODO: Still handles playing sound in the drawer
- K_PrepareTimeAttack: Initial generation of a struct of emblems/text is handled on the menu
- G_UpdateRecords: Updated in-game if you unlock the next medal there
This commit was amended to centralise the new material in g_game.c and reduce the number of header additions required.
2023-02-05 17:42:28 +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
6dd32deecb M_HandleStaffReplay, M_DrawTimeAttack: Re-support selecting staff replays from the menu 2023-02-04 11:06:57 +00:00
toaster
61020a2621 M_HandleMenuMessage
Do not permit a menu message to be interacted with if it has not completely risen.
Fixes the occasional skip if you hold the button a fraction of a frame too long, which most scarily could happen on the data erase confirmation...
2023-02-01 23:34:23 +00:00