- K_PlayerTripwireSpeedThreshold, K_CheckpointCrossAward - repaced with "GTR_CIRCUIT and not K_Cooperative" - excludes Sealed Stars as before, but includes custom Race-based gametypes
- UFO Spawner tracking on minimap - GTR_PAPERITEMS, per how UFOs are handled in k_battle.c
- G_RandMapPerPlayerCount: Check for the absence of GT_SPECIAL when excluding LF_SECTIONRACE, not the presence of GT_RACE
- Little bit of a hack, but right now there's no way to do custom cooperative gametypes, we don't have proper access to gametyperules in this function, and Battle courses aren't going to have this flag anyways
- Move `followerready`'s first set from `K_SetFollowerByNum` (which isn't called if your follower is -1, the exact case Goddess is supposed to help us with) to `G_UpdatePlayerPreferences`, which is always called whenever the follower ID is validated on join
- Cache "Goddess"' followerskin ID by cribbing from `r_skins` and `R_DefaultBotSkin`
This avoids an issue where the skins array takes up a fixed, but large
amount of memory at runtime. On x86_64 linux, that array is roughly 80
megabytes in memory, most of which is unused when the game is unmodded.
Instead, we treat `skins` as a dynamically resizing array, and it is an
array-of-pointers into separate allocated `skin_t`.
This is based on Lactozilla's skin limit MR for SRB2, but I've rewritten
it because RR has diverged quite a bit.
This was verified to check every access of `skins` by using clangd's
find-all-references function. However, I have only tested plain skins,
not Lua addons, so that could afford some extra checking.
- Play intro when exiting goner Playground
- Do not allow using menu to skip driving down that hill in goner Playground
The reason these two are hacks is because a map is considered goner Playground if you use -warp at command line or map in console on title screen to get to a Tutorial course... but these are unimportant edge cases IMO
- Selection between Tails' Way (existing Tutorial) and Eggman's Way (Playground)
- Semi-passable UI
- Characterful descriptions
- Add "PlaygroundRoute" condition to Challenges
- Fires if you select Eggman's Way
- 0 Chao Keys unless you go back to Goner for the outro (which Playground skips)