- Editing the current profile for a player will update their Driver so map command and Challenge Driver have proper comparison available
- Re-order M_CharacterSelectInit so driver/follower info is available/valid when M_SetupProfileGridPos is called
- Since we're only using 50% of rollangle steps at 35fps, we can smooth it out under interp conditions like the flipping tile
- Don't grey out the text/stop the button animation for the input prompt, since pressing it again will stop the music, whereas grey text on Drivers/Followers/Colors means no function
- Keep the tile flipping even when not hovered over
If playing a given altmusic unlock...
- If selected, spin the disc
- If not selected, constantly flip the relevant tile on the board
- Either way, flash the relevant pixel in the scroll bar
- Only works in parties of 1
- Currently intentionally disabled for other types of Match Race, as they tend to have too many options and I don't want to risk infinite menu loops
- Dedicated function for cleaning up Challenges Menu memory
- Adjust the required function slate to open Challenges menu without malformed data
- Permits it to be used with restoreMenu, where it would silently infinitely loop before
- The Chao Medal in the top right corner will be completely filled if you've unlocked everything, even if that was via skips
- You basically never saw the silver Chao Medal. Major challenges *are* designed to be skipped if you don't want to, only 101% should be gruelling (complementary)
- The Scroll Bar at the top will darken pixels of complete columns ever so slightly even if minor challenges aren't yet achieved, to make it easier to find conditions to go back and fulfil if you're truly hunting for everything
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.