Commit graph

21957 commits

Author SHA1 Message Date
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
toaster
5a9281ecfb Three new UCRP's
- UCRP_ISDIFFICULTY
    - Example: IsDifficulty Hard - "on Hard difficulty"
    - Does what it says on the tin
    - You can't specify Easy because there is nothing easier than Easy
    - Does it based on the GPsetting if in grand prix, or the level setting otherwise
- UCRP_PODIUMCUP
    - Example: PodiumCup Ring - "complete RING CUP"
    - Example: PodiumCup Barrier Silver - "get Silver or better on BARRIER CUP"
    - Example: PodiumCup Goggles S - "get grade S on GOGGLES CUP"
    - Basically a monolithic cup completion handler.
    - Only happens after rankings begins in Podium ceremony.
- UCRP_PODIUMEMERALD
    - Example: PodiumEmerald - "collect the Emerald"
    - Get the Emerald to the ceremony and this is yours.
- UCRP_PODIUMPRIZE
    - Example: PodiumPrize - "collect the prize"
    - LITERALLY identical to PodiumEmerald except the string
    - Doing it seperately from PodiumCup means we can't check whether that cup uses an Emerald or another Catcher Prize automagically
2023-03-11 23:56:58 +00:00
toaster
3abba2bd26 G_LoadGameData: Add -resetchallengegrid command line parameter for DEVELOP builds only 2023-03-11 21:19:42 +00:00
toaster
4d88923173 UC_ALLCHAOS, UC_ALLSUPER, UC_ALLEMERALDS: Provide a ??? tease for Master difficulty if not unlocked 2023-03-11 21:09:43 +00:00
toaster
6f62abc1ef UCRP_FINISHPLACE: Don't permit messed up position of 0 2023-03-11 21:06:37 +00:00
toaster
f411ca1e85 UC_ALLCHAOS, UC_ALLSUPER, UC_ALLEMERALDS: Move to using KARTSPEED/KARTGP constants directly 2023-03-11 19:42:20 +00:00
toaster
c67412f6ef Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-11 12:42:55 +00:00
SteelT
d9ef9514fa Merge branch 'altmusic-autoload' into 'master'
Auto load altmusic.pk3 on startup

See merge request KartKrew/Kart!1038
2023-03-11 03:03:57 +00:00
SteelT
43991dd798 Auto load altmusic.pk3 on startup 2023-03-10 21:43:51 -05:00
toaster
6129d810cc UC_ALLCHAOS, UC_ALLSUPER, and UC_ALLEMERALDS
Measures whether you have all 7 Chaos Emeralds, 7 Super Emeralds, or 14 Emeralds
- Hidden if you haven't entered a special stage yet
- Checks all cups and all relevant difficulties outside of GS_LEVEL
    - You can specify a difficulty of Normal, Hard, or Master
2023-03-10 22:50:08 +00:00
toaster
b3aa2520bc gamedata->everseenspecial
Record whether you've ever successfully entered a special stage
Used for conditions which were previously checking for whether you'd completed a special stage - which I think is a bit too restrictive for someone figuring out what next to lab
2023-03-10 22:43:06 +00:00
toaster
cbebfe5a62 UC_POWERLEVEL: Do not iterate over your profiles in GS_LEVEL 2023-03-10 22:41:03 +00:00
toaster
fea235d8a7 UC_REPLAY
Save a replay after finishing a round.
Basically another tutorial unlock condition like UC_ADDON
2023-03-10 21:44:48 +00:00
toaster
dfe75726df cupwindata_t
Save your best GP stats across sessions.
- Saved into gamedata
- Deliniated per difficulty option
- Draw onto cupgrid in GP cup select
    - Best grade
    - Whether you've ever gotten the Emerald
        - TODO: Always shows Chaos Emerald, will need updating when Super Emerald graphics are created
    - Monitor status changes depending on recorded position
        - 1st: Gold, shiny
        - 2nd: Silver, shiny
        - 3rd: Bronze, shiny
        - 4th and downwards: Beige, barely different
- Wiped with G_ClearRecords

Also, to avoid circular dependencies:
- KARTSPEED/KARTGP constants moved from command.h to doomstat.h
- gp_rank_e enums moved from k_rank.h to doomstat.h
2023-03-10 20:20:48 +00:00
toaster
f3cde6140a G_GetNextMap: Do not permit entering GPEVENT_SPECIAL if you're on Easy 2023-03-10 20:15:33 +00:00
toaster
304a7dce72 K_InitGrandPrixRank: Accomodate cv_gptest 2023-03-10 20:14:48 +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
toaster
328ab0059a F_StartIntro: Disable sound credit (was relevant during routine gamedata deletion) 2023-03-09 21:47:16 +00:00
toaster
40786a006c P_MobjCheckWater: Remove wet player test print 2023-03-09 16:40:39 +00:00
James R
600063f46b Merge branch 'bot-improvements-round-12' into 'master'
Bots Again: Round 12

See merge request KartKrew/Kart!1034
2023-03-09 10:29:14 +00:00
Oni
60863a88a3 Merge branch 'quieter-wavedash' into 'master'
Quieter wavedashing

See merge request KartKrew/Kart!1035
2023-03-09 09:05:55 +00:00
AJ Martinez
85c492e848 Wavedashing no longer puts everyone in your netgame into a hurricane 2023-03-09 02:01:57 -07:00
Sally Coolatta
f2afc65af4 Merge branch 'bot-improvements-round-12' of https://git.do.srb2.org/KartKrew/Kart into bot-improvements-round-12 2023-03-09 03:07:38 -05:00
Sally Coolatta
d7256aa5f6 Give bots friction rubberband again 2023-03-09 03:06:30 -05:00
Sally Coolatta
cd2dd1315a Reduce waypoint radius for bots on turns 2023-03-09 03:06:30 -05:00
James R
794b276267 Merge branch 'snacpending-monch' into 'master'
PARANOIA: snacpending negative error plays sfx_monch

See merge request KartKrew/Kart!1027
2023-03-09 07:57:42 +00:00
James R
f19de81dd2 Merge branch 'fix-eggman-transfer-crash' into 'master'
Fix null ref in eggman transfer

See merge request KartKrew/Kart!1031
2023-03-09 07:56:22 +00:00
VelocitOni
23b04832ad Buff Spikes
Both Vertical and Wallspikes size and increase, vertical spikes tumble, speed is now TICRATE instead of 2*TICRATE
2023-03-08 22:02:24 -05:00
AJ Martinez
d8670bae20 Fix nonfunctional wizard guard for wizards 2023-03-08 16:58:15 -07:00
AJ Martinez
6d983852d9 Fix null ref in eggman transfer 2023-03-08 15:58:56 -07:00
James R
86990d47d2 Merge branch 'i-error-if-missing-exchndl' into 'master'
Windows: close game with error if exchndl.dll is missing

See merge request KartKrew/Kart!1010
2023-03-08 03:25:10 +00:00
James R
6d530ec810 PARANOIA: snacpending negative error plays sfx_monch 2023-03-07 18:26:50 -08:00
James R
afa62f2402 I_Error if exchndl.dll is missing for Windows builds 2023-03-07 17:52:10 -08:00
Oni
216e4064dc Merge branch 'wavedash-sounds' into 'master'
Add sounds to sliptide zip / wavedashing

See merge request KartKrew/Kart!1024
2023-03-07 20:23:05 +00:00
toaster
84742e0376 G_LoadGameData: Remove print from recorded map record 2023-03-07 20:02:23 +00:00
toaster
d2c36c952a Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_grandprix.c
#	src/k_grandprix.h
2023-03-07 19:37:46 +00:00
toaster
1ccd41c3db R_RenderThickSideRange: Compilation fix
It seems `lighteffect` was not a comprehensive enough blockade to referencing an uninitialised `xwalllights` for my strictly-warning compiler.
2023-03-07 19:32:52 +00:00
AJ Martinez
da2aab1af1 Avoid sound iteration, if we can help it 2023-03-07 06:08:20 -07:00
AJ Martinez
06f583a15d Un-re-buff wavedash boost because tripwire 2023-03-07 05:57:01 -07:00
AJ Martinez
3463456976 Oni fixup gaiden
Passive sound when holding wavedash (waved4), wavedash delay TICRATE -> TICRATE/2, wavedash delay pauses while driftboosting
2023-03-07 04:58:17 -07:00
AJ Martinez
65b62e07c8 Add sounds to slipide zip / wavedashing 2023-03-07 03:20:41 -07:00
James R
df00ed4f64 Merge branch 'render-highlight' into 'master'
debugrender_contrast, debugrender_spriteclipping and debugrender_highlight

See merge request KartKrew/Kart!1021
2023-03-07 09:53:13 +00:00
Oni
cb6391c2cc Merge branch 'high-contrast-debug-waypoints' into 'render-highlight'
Make debugwaypoints radiuses more visible

See merge request KartKrew/Kart!1022
2023-03-07 09:52:24 +00:00
James R
aa927a5b00 Merge branch 'overtime-spectator' 2023-03-07 01:45:16 -08:00
James R
540bd6e18d Merge branch 'improve-battle-tracking' into 'master'
HUD TARGET for Battle Kiosk, Monitors and Emeralds; remove WANTED over players' heads

See merge request KartKrew/Kart!1016
2023-03-07 09:44:07 +00:00
Oni
e4ba544994 Merge branch 'buff-sliptide' into 'master'
Make sliptiding actually good

See merge request KartKrew/Kart!1020
2023-03-07 08:49:46 +00:00
James R
b8a503f56a Always sync health to bumpers in P_KillPlayer
Fixes Death Pit respawning in Battle.
2023-03-06 23:37:42 -08:00