- New array of pointers to structures in memory (currently mixing static for base-game and Callocated for custom)
- Centralises a metric-ton of previously seperately handled properties into one struct
- Gametype_Names[]
- Gametype_ConstantNames[]
- gametypetol[]
- timelimits[]
- pointlimits[]
- gametypedefaultrules[]
- gametypecolor[] - Nep: This one was blan exclusive but I added it regardless.
- Don't attempt to guess custom gametype in Replay Hut (requires more work to make custom gametypes behave across the entire experience)
- I_Error if invalid gametype set
- gametyperules is deprecated since it will never be modified seperately from gametype (temporarily a #define, don't wanna bloat this commit too much)
It's 2026, and the only time since Super Mario Kart where 150cc is made unlockable is a god-damned arcade game
Plus, it literally makes more sense for Expert (200cc) to be the unlockable speed now
DUDE TOUHOU LMAO
Jokes aside:
* Lunatic = Master difficulty with modifications to make the races
significantly more difficult:
* Introduces a "lunaticmode" boolean to grandprixinfo;
the demoversion has been upped to 0x0010 due to this
* The bot modifier is, at MINIMUM, 2.0, making them aggressive as hell;
Rival bots use a 2.5 modifier
* Bump Spark is always off in this mode
* RUNNERAUGMENT results have their distances significantly shortened;
if a rival bot takes the lead, this distance is shortened even FURTHER
so they don't frontrun against the human player endlessly
* Alt. Invinc shows up earlier as a sort of "mercy" for human players;
it would otherwise not show up until the race was effectively over
* Maniac = Nightmare difficulty (Master at Expert speed)
with Lunatic's changes
* Map icon drawing is now centered so winton looks okay again
* Squeezed out literally every last pixel of margin (5 rows on greenres!)
* PgUp/PgDn can be used to scroll faster
* Delayed map selection because uhhh it's cool