Servers should get enough free for a healthy launch ecosystem, but not everything.
We'll give the relevant password out after, like, the first week probably? Please be patient, commit-diver
- Map visitation flags (used for level select access) are now cleared by using "Clear Challenges Data" instead
- Custom courses will still have their data completely wiped here because it's the case most likely to mean "I want to remove everything", and because I don't want to pick through all the possible places to nuke 'em
- Skin stats (and Eidolon's map stats) are now cleared by using "Clear Statistics Data" instead
- All gametypes will be shown in the drawer, as opposed to just Race
- However, don't attempt to add the preview pic for CUPCACHE_SPECIAL (the Sealed Star)
- Credits demos will erase grandprixinfo
- Call F_InitGameEvaluation (new function) at the
beginning of the credits to cache the needed data from
grandprixinfo
- Fixes the evaluation screen not showing up for GP
credits
- Cases for lives specifically and not retrying use
G_GametypeUsesLives
- Such as HUD elements and GAME OVER
- Cases for retrying and losing lives use
G_GametypeAllowsRetrying
- Such as GP bonus rounds
You'll see the Platinum time to reach as a guiding star when Time Attacking the specific course, but with no accompanying empty medal icon.
Also
- fixes an x coordinate issue for higher medal quantity on the version that draws under the timestamp
- cache SECRET_ENCORE and SECRET_SPBATTACK availability in the statistics drawer too
Plugs a game design oversight that thankfully was completely sidestepped by all but one Attack replay
Replaces the reset that happened on lightsnake at -20.
Set a specific gamespeed per gametype. KARTSPEED_AUTO for it to be decided by game settings.
Wanted this for a while, but also it makes game speed display logic for DRP very straightforward.
- Pressing/holding any input will now skip only ONE screen of the Intro, like a REAL VIDEOGAME
- Allow you to skip before the end of INTROSCENE_DISCLAIMER, but only once the text has been solid for half a second
- Fix regression re exiting title demos after using -skipintro command line parameter
- intro_scenenum was stuck at 0, so the game was softlocked!
Fixes two bugs:
- Attract mode carrying over to gameplay if an attract
demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
- If you lost and waited for TRY AGAIN to finish and
automatically restart the map (did not touch Retry in the
pause menu)
- Doing this would add TWO continues to your rank
calculation and nerf the bot difficulty twice
- Did not affect lives at all
- This is symmetrical with splitscreen behavior
- One edge case: if you switch away from the player after
the level music stops but before the intermission music
starts, then the silence will continue until you view
another tally that reaches the intermission music
- I think the benefit of doing the proper tally music at
all outweighs this edge case
- Cross a finish line so your lap goes forward and your
waypoints update ahead of the line
- Turn around to face the opposite direction
- Do this on a map where the lap cheat timer activates
when you turn around
- Drive a little way backward and make sure the lap cheat
timer keeps going
- Activate Ring Shooter and start lightsnaking
- Immediately spectate and then rejoin
- The lightsnake would send you ahead of the finish line
and give you an extra lap
- Permit saving "this map has been beaten" for the Tutorial Challenge map if you conquered it
- This was previously short circuited because it wasn't a dedicated course
- Only trigger an extra UpdateUnlockablesAndExtraEmblems check if you haven't yet completed it
- Don't assume that the first Round in a Cup defines the default gametype for it
- Now consistently uses GT_RACE
- It was written this way to try and permit non-Race cups in future...
- But there are much more solid ways to approach this down the line, instead of overloading this pre-existing data.
- cup-select.c: Don't assume `roundqueue.position == 1` means starting a fresh Cup from scratch
- G_HandleSaveLevel: Allow saving GP backups for overridden Courses at the front of the roundqueue
If a stage is taken out of the running for Grand Prix mode and replaced with another, the rank data wasn't corrected. We were merely getting lucky that the one Round Star regularly accessible had the same number of laps as the course it replaced.
Now, Laps, Rings, and Prisons can be adjusted up or down depending on the number of each element you're expected to have with a perfect GP tally.
Related: To make it more friendly to call in multiple places, RankCapsules_CountFromMap has now been adjusted to take a course ID instead of a virtres_t.
- Simplest possible solution for the time remaining: If the current gametype doesn't overlap with the nextmapoverride's TOL, do G_GuessGametypeByTOL.
- Future work: Allow an optional extra parameter to MapWarp to specify a specific Gametype by name.
- Fixes for tutorialchallenge
- NEXTMAP_TUTORIALCHALLENGE is integrated into the above, to reduce duplicate code
- Call D_GametypeChanged, which was previously missing
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material
If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.