- Imply passage of time when returning from Tutorial to Outro by resetting all the background variables
- Add an additive layer to the Options cogs, so they show up over an extremely dark background
- Metal Sonic will not focus on Tails/Eggman until video is restored
- Don't draw the Miles Electric transparent unless it's completely in its upright position
- Checks for whether a Gamepad is connected
- If yes, says you can use "your Gamepad"
- If no, says you can use "Enter, ESC, and the Arrow Keys"
- Show ENTER and ESC on any Message prompt (instead of A/B/X) if no Gamepad is connected
- Add M_DrawMediocreKeyboardKey, a genericisation of the previous entry in the series' Time Attack HUD
- Force to play when selecting "START GAME" from the Goner Setup
- Make far shorter on the First Boot, obscuring the extended Kart Krew vroom, to prevent it playing identically twice
- Prevent skipping the intro at all if Ring Cup hasn't been unlocked
- Both for the shortened initial startup and the START GAME first encounter
- It already clears dirmenu if relevant, don't do that twice
- Hook into M_PlayMenuJam, to reduce bespoke behaviour
- Use the finalised track string
- Play on the Sound Options menu
Also, use MAIN_Goner as reference for the password field's presence, because I lost like 30 minutes to a related bug
- For Tutorials specifically
- void Dialogue_AutoDismiss(void)
- Dismisses the current dialogue (including from other threads).
- str CheckTutorialChallenge(void)
- Returns special values depending on state relevant to the Tutorial Challenge.
- Returns a blank string in netgames, or if none of the following are true.
- Returns "Active" if the skip is in progress.
- Returns "Failed" if the skip was just failed.
- Returns "Locked" if not available with this gamedata.
- Other tiny check functions
- bool PositionStart(void)
- Returns true if leveltime < starttime.
- bool FreePlay(void)
- Returns true if in Free Play.
If some dialogue needs to be never-missable, that's the mapper's responsibility - but now they won't get randomly interleaved if multiple are activated just by regular free driving, which was the worst kind of default