- Fixes a very specific crash
- Record a Time Attack
- Let the map exit naturally
- I tested by FALLING OUT of a Sealed Star
- Start recording another Time Attack
- I tested by going to the same map again
- Result
- One of three possibilities
- Z_Free: wrong id
- SIGSEGV
- Game freezes and hangs forever
- I also wrote detailed comments in M_EndModeAttackRun so
you know what it's supposed to be doing
- 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
- Tried to make verbiage consistent in tooltips
- Move advanced video options into submenu
- Remove console chat option
- Move some really technical options from Data to submenu
- Mostly hijacks the gamemode menu format (Local Play)
- Host
- Select gametype (Race, Battle)
- Shortcuts to Gameplay Options and Server Options
- Select map
- Browser
- Unchanged
- Direct Join
- Press A to enter an IP address
- Press C to reconnect to the last joined server
- Left/right cycles through the server history
- Input handling is done straight in G_MapEventsToControls
- If a keyboard event is received, switch off virtual
keyboard
- Removed the input lock while virtual keyboard is
sliding away
- If a gamepad event is received, and it is a change of at
least half the full range, switch on virtual keyboard
- Most R_SkinAvailable calls should be returning index into demo.skinlist (same numerical value as when demo was recorded), for demo sync
- A handful of general things permit exception for this
- Expose `replaynumskins` (calculated as `(demo.playback ? demo.numskins : numskins)`) to Lua
- There's *always* more that can be done for this, but this is the minimum spec that can at least be somewhat stable
- Remove CV_NOSHOWHELP, so the config file can load
- Do not stealth set the cvar, so it is not dependent on
order of operations of config loading and challenge
loading
- Virtual Keyboard can switch to a temporary menu while
typing
- It will switch back to the previous menu after it's
closed
- This functionality can be used even if the menu isn't
already open
- It will close the menu and return to gameplay when the
Virtual Keyboard is closed
- 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.