Commit graph

135 commits

Author SHA1 Message Date
James R
1eed98bc13 Remove screenshot_option, screenshot_folder, movie_option, movie_folder, addons_option, addons_folder
Remove the cvars and menu options to change which folder
screenshots, movies and addons use. Lots of code bloat
that we does not seem necessary.
2023-03-13 20:39:57 -07:00
toaster
492babd73d Linear Level Select polish
- Even if there's only one level in the group, only skip over the mini linear list in a Time Attack mode
    - Improves some of the jumpscare of looking into Lost and Found and being blasted to TEST RUN
- Fix lists of one map being wedged against the bottom of the screen
- Precache valid map count
2023-03-13 18:20:50 +00:00
toaster
1701662b6b Lost and Found
- When selecting levels:
    - If the gametype uses cups
    - and a map has no cup
    - and you're not in Grand Prix mode
- show those maps in a quasi-cup called "Lost and Found".
- Implementation details:
    - a few == checks for the pointer to `cupheader_t dummy_lostandfound`
    - Otherwise most of the apparatus was built as part of prior art!
2023-03-13 16:44:21 +00:00
toaster
07f7be03a1 M_CupSelectHandler: Fix data types 2023-03-13 15:11:14 +00:00
toaster
b5be97cbfc level-select.c: Fix incorrect responses for level-finding functions
- Fix the case where invalid levelsearch_t were providing values of false instead of NEXTMAP_INVALID
- Fix the case where M_GetFirstLevelInList was not returning NEXTMAP_INVALID for rearching nummapheaders
2023-03-13 15:10:43 +00:00
toaster
756feaa20b M_CanShowLevelInList: Do not permit Test Run in time attack
Also improves the associated comment and indentation
2023-03-13 13:35:23 +00:00
toaster
425f260914 Never consider TEST RUN locked
- Repairs access to TEST RUN cup
- We want to make it an unlockable later, so...
- M_MapLocked data types corrected
2023-03-12 20:41:00 +00:00
toaster
241475155b Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it
Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
2023-03-12 20:17:46 +00:00
toaster
01f6eb71f5 Optimisation: reduce the number of calls to M_CheckUnlockConditions
- For P_Ticker()'s calls to M_UpdateUnlockablesAndExtraEmblems
    - Do not check non-UCRP_REQUIRESPLAYING conditions
        - Controlled by a new `boolean doall` parameter to M_UpdateUnlockablesAndExtraEmblems
        - Most other contexts have this as true
        - Forced true if update is meant to be silent
    - Only check UCRP_REQUIRESPLAYING conditions if a relevant property has been touched
        - Controlled by a new `boolean checkthisframe` property on roundcondition_t
        - Set in all contexts where roundcondition_t is modified
        - Would also be set on lap change, but that case is already covered by the following
- Check all conditions, both UCRP_REQUIRESPLAYING and not, on:
    - local player K_HandleLapIncrement
    - local player P_DoPlayerExit
    - local player P_DoTimeOver
    - Controlled by a new `boolean deferredconditioncheck` property on gamedata_t
2023-03-12 13:52:28 +00:00
toaster
8b437d5a32 Minimum viable product of Chao Keys condition bypass
- Start with 3, per Sakurai's prior art.
- Earn them per certain number of rounds
    - DEVELOP builds: once every 4 rounds
    - Release builds: once every 50 rounds
    - Has an internal cap based on the maximum number of unlockables supported.
        - Possible future work could adjust this to restrict based on the maximum number of unlockables unlocks.pk3 actually has set.
- Use on the Challenges screen to bust open small tiles with hints (or the very first tile, if you haven't unlocked anything yet).
    - Will do a funny shake if you try anything else.
- Interrupts menu flow just like getting an unlock.
    - The matches you've played will tick upwards, giving you keys as they loop over.
2023-03-09 22:33:10 +00:00
Eidolon
f952be1e2c Only allow P1 to be assigned KBM 2023-03-08 18:39:51 -06:00
Eidolon
7ed5e7a7a5 Change gamepad LED colors on playercolor change 2023-03-07 00:07:47 -06:00
Eidolon
86a9579e16 Handle gamepads from interface dynamically
Fixes numerous issues with hotswapping, gamepad assignment, and menu
responsiveness.
2023-03-07 00:07:47 -06:00
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