Commit graph

22050 commits

Author SHA1 Message Date
toaster
e943ba7548 Challenge condition string: Grey out if you've unlocked the space with a Chao Key and haven't achieved its associated condition yet
You can still achieve it and make it full-bright at a later date
2023-03-15 14:51:13 +00:00
toaster
7f3836f916 Chao Key changes
- Chao Keys are now UINT16 instead of UINT8
- The maximum number of Chao Keys is now 9999, which is the largest number of 9s that can fit in a UINT16
- Used keys no longer count towards your total
Will mildly corrupt gamedatas made with previous conditions-cascading builds, but only in a way that gives you extra keys than you've earned.
2023-03-15 14:49:22 +00:00
toaster
2ec3cf498d K_DrawChallenges: Technically possible to have 3-digit Chao Keys, so scooch just a hair further 2023-03-15 13:19:01 +00:00
toaster
bb98db6fce Ring count formatting: Correct to always have leading 0s for up to 3 digits 2023-03-15 13:14:12 +00:00
toaster
8c19477ad8 Self-review: Correct to say "GP & Time Attack data" 2023-03-15 13:12:19 +00:00
toaster
edddb26f98 P_Net(Un)ArchivePlayers: Send roundconditions.unlocktriggers over the wire
Discovered while self-reviewing that ACS has read access to this, not just write, so it has to be saved and loaded.
It is the only roundcondition which should be netsynced. Everything else is truly per-player progression.
2023-03-14 22:05:13 +00:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
toaster
2d7ef00e29 Discoveries while self-reviewing during description creation
- Rename "FinishAllPrisons" and correct text to refer to Prisons
- Do not hint at greater speeds for UCRP_ISDIFFICULTY
2023-03-14 20:59:51 +00:00
toaster
0124cf7356 No TEST RUN in statistics as that's also forbidden in Time Attack 2023-03-14 20:36:54 +00:00
toaster
967ad3662d M_DrawMapMedals: Only shows ET_MAP medals with ME_ENCORE and/or ME_SPBATTACK if you've unlocked those two things 2023-03-14 20:28:36 +00:00
toaster
22e17fd881 Statistics respects cups now
- Adds headers to the list
- Adds indentation
- Doesn't show extra medals if there are none available
- Cleans up some of the undesired duplication in the drawer
2023-03-14 20:27:58 +00:00
toaster
4db0affd2b Addons menu: Show unlocks after backing out
- For the Addons unlock condition.
- Also forbids having menu flow interrupted with challenges if you're in-game
2023-03-14 17:04:46 +00:00
toaster
558d3dc842 M_DrawChallenges: Change offset of Chao Keys 2023-03-14 12:48:34 +00:00
toaster
107acf34d3 Fix some softlock circumstances caused by the Chao Key system
- Nonzero keys pending, but zero pending rounds
- Nonzero keys pending, but too many keys already earned
2023-03-14 12:28:52 +00:00
toaster
5b48c52b65 G_DoCompleted: Call S_StopSounds earlier so legitimate exit condition sound isn't insta-wiped 2023-03-14 11:52:54 +00:00
toaster
276b19e871 M_ChallengesTick: Speed up digesting pending rounds into Chao Keys if there's lots of them remaining 2023-03-14 11:35:08 +00:00
toaster
1fb0e0454f M_ChallengesTick: Fix no in-fade if only Chao Keys are pending 2023-03-14 11:34:07 +00:00
toaster
db1b3dd7c9 GDCONVERT_ROUNDSTOKEY: Make 20 in DEVELOP builds instead of 4, for a closer-to-realistic progression 2023-03-14 11:31:09 +00: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
0f14079555 levellist: Fix type of choosemap 2023-03-13 17:34:14 +00:00
toaster
60fee59c54 Adjust Test Run's exceptions for lock checks
- Revert the blanket exception so Lost and Found won't always have it available
- Won't be considered cheating to go to Test Run on game boot even if not unlocked
- Made the lack of exception for Test Run in Command_Map_f's cheat check more intentional
2023-03-13 17:28:55 +00:00
toaster
bfb939161a M_DrawChallengePreview: Improve SECRET_MAP
- Change scale and offsets of map icon to match other unlock types that show a single map
- Show a gametype string
    - Fudges GT_VERSUS into GT_SPECIAL just like the menu does
    - Shows "Match Race/Online" for a level with no preferred gametype like TEST RUN
2023-03-13 17:22:25 +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
1d3b5adfdf "Monitor" parameter for cups
- Defaults to 1, AKA Sonic 1/2 monitor
- Set to 2 for Sonic 3k monitor
- Supports a range of 1-9 and A-Z
- Permits fine-grained rapid-prototype stretch goal Chaotix monitor stuff later in development
2023-03-13 16:18:07 +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
Oni
9f4c080964 Merge branch 'dynamic-controllers' into 'master'
Handle gamepads from interface dynamically

Closes #397

See merge request KartKrew/Kart!1018
2023-03-13 07:56:34 +00:00
James R
1f70b9c63c Merge remote-tracking branch 'origin/bumpers-ARE-health' 2023-03-13 00:51:44 -07:00
Oni
4297591b87 Merge branch 'misc-battle-fixes-chapter-69' into 'bumpers-ARE-health'
Bug fixes and general improvements to Battle: The Final Season Part 1

See merge request KartKrew/Kart!1028
2023-03-13 07:48:22 +00:00
Oni
bee420ff8d Merge branch 'fix-stacked-hitlag' into 'misc-battle-fixes-chapter-69'
Let wombo combo work again; fix Bubble-Invincibility deadlock; fix Mine spinout hitbox lifetime

See merge request KartKrew/Kart!1033
2023-03-13 07:47:57 +00:00
Sal
073b787a82 Merge branch 'fix-director-reset-if-others-join' into 'master'
Only toggle director when you yourself spawn or when the first player in the level spawns

See merge request KartKrew/Kart!1006
2023-03-13 04:07:46 +00:00
Sally Coolatta
0a11eef569 Default controls in menus works for all players
Prevents keyboard-only profile softlock.
2023-03-13 00:04:40 -04:00
James R
34e322b7a1 Ignore non-combo damage during hitlag
Fixes stumble deadlock
2023-03-12 20:55:07 -07:00
Sal
e70c23fe0f Merge branch 'sliptide-improvements' into 'master'
Wavedash refinement

See merge request KartKrew/Kart!1040
2023-03-13 02:54:55 +00:00
Sal
aa1e31e51f Merge branch 'fix-writetextmap' into 'master'
Fix -writetextmap

See merge request KartKrew/Kart!1041
2023-03-13 02:53:09 +00:00
AJ Martinez
b741d1f11a Use dedicated sound for wavedash min charge indicator 2023-03-12 17:09:09 -07:00
toaster
45891ac22f G_GetNextMap: Go to TEST RUN when the next Race map in a GP is invalid
Resolves #366
2023-03-12 20:53:46 +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
0b71b2f71f M_DrawStatistics: Fix "Hours/Minutes/Seconds" plurality if there's only 1 2023-03-12 20:16:03 +00:00
toaster
03b6f50ab8 M_DrawChallengePreview: Selection assistance icons
- SECRET_SKIN:
    - Shows the character icon you'd have to pick (Eggman for Eggrobo, etc)
    - Shows the Engine Class section of the charsel grid you'd have to pick
- SECRET_FOLLOWER:
    - Shows the category icon you'd have to pick (3DB for Whirl, etc)
- SECRET_CUP:
    - Shows the position on the cup grid, INCLUDING previous pages
2023-03-12 18:10:14 +00:00
toaster
84e807cfa0 UCRP_ISENGINECLASS
Checks for the player's character's engine class
As before, A-I and J are valid classes
2023-03-12 15:55:14 +00:00
toaster
65a4f33b6f R_GetEngineClass
Before unlockable conditions dependent on Engine Class are added, standardise the system.
- enum constant in r_skins.h from A-I + J
    - Engine Class J is for SF_IRONMAN
        - The Joker in the pack of cards
        - Also immediately after I in the alphabet
        - It's a Jape that works on multiple levels
- Integrate into K_UpdateEngineSounds
    - Ignores Engine Class J
- Show the Engine Class in character select extrainfo mode, even in situations character name would have been the only thing shown
2023-03-12 14:41:15 +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
Sally Coolatta
b0064e41e8 Only save used vertices
Fixed in two ways:
- P_LoadExtraVertices is a special construct for extended blockmap types. This is easily resolved with num_orig_vertexes before loading the map.
- Original Doom-style blockmap with ZenNode however also adds additional vertices directly into VERTEXES. These have to simply be ignored by cross-referencing them with linedefs to see if they are used by anything.
2023-03-12 06:43:31 -04:00
Sally Coolatta
f02057bf2e Write textmap after conversion like vanilla
Unfortunately this means that K_AdjustWaypointsParameters no longer saves to UDMF converted maps, because it requires sector thinglists, FOFs, and spawned mobjs.
2023-03-12 06:03:32 -04:00
Oni
0f303100d4 Merge branch 'easy-balance' into 'master'
Changes for different game speeds

See merge request KartKrew/Kart!1039
2023-03-12 09:33:31 +00:00
James R
253489b75c Merge branch 'vol-cvar-defaults' into 'master'
Normalize all volume scales to 0-100

See merge request KartKrew/Kart!1030
2023-03-12 03:50:57 +00:00
James R
ab26a66602 Merge branch 'new-sound-musicdef' into 'master'
Implement musicdef volume in new mixer

See merge request KartKrew/Kart!1029
2023-03-12 03:43:58 +00:00