While I finally pushed to do this because of the epic Blue Sphere reference, I was kinda thinking about doing this for a while, because it gives more room for bots to level up during Hard GP.
I thought about just making the new level cap go up normally, but I decided on keeping the bots' passive buffs (like top speed & ring boosts) go up linearly, while rubberbanding range is kept the same.
I don't think I can properly explain it, but this basically means level 13s are a touch harder than old level 9s before, and new level 9s are touch easier than old level 9s. Basically think of it as more level range than actually making the bots harder.
The expanded range means that Hard GP can start off easier, but end harder. (And of course, Master is even more ridiculous c:)
* Fix majority of Battle resyncs.
* Change how Paperitem spawners work. Instead of rerolling the RNG if a map spot is already used, maintain a list of available spots...
* Correct over-the-network type of player->spheredigestion.
* Remove the condition that prevented the spheres' spawnpoints from being sent over the network, which meant they were only respawning on the host's end...
* Fix itemroulette on Battle playerarrow. (Rarely seen these days but still possible to observe as spectator for Break the Targets)
* Change draw order of Position Faces and Tab Rankings to allow for players' numbers to draw on top of the big out-of-bumpers X.
* At the start of the first bar, everyone digests spheres at 1 per second, same as before.
* This actually only starts counting down from the most recent moment your spheres becomes nonzero, which is a very, VERY tiny buff to prevent their instant depletion.
* At around 40 spheres:
* Chao digests them at 1 sphere per *tic*. Might be slightly too punishing.
* Mecha Sonic digests them at 1 sphere per... 33 tics, or barely faster than before. Might be slightly not punishing enough.
* Everyone else is linearily in between.
HUD:
* Miniaturised Spheres and Emeralds HUD for 3P/4P.
* Repair 3P minimap.
* Move accessibility icons in 3P/4P to next to the lap/bumper sticker (currently only kickstartaccel exists)
* Change language on menu retry to be more generalised.
* Adjust HUD code structuring a bit.
MECHANICAL:
* Now correctly set number of bumpers in Break the Capsules to 1 (from 3).
* The above required reworking K_SpawnBattleCapsules into K_BattleInit, which is a good staging ground to handle more battle-specific setup in future.
* Do not spawn Emeralds or Sphereboxes in Break the Capsules.
* If everyone is WANTED... nobody is.
* Try to handle exceptions to timelimits a little more thoroughly (still not perfect).
* Disable pointlimits in bosses.
This is the function that controls whether a bunch of music-related function (and also whether certain error messages get printed).
* P_IsLocalPlayer now supports party players (currently untested, but the code is pretty airtight).
* P_IsLocalPlayer now always returns false in replays.
* P_IsMachineLocalPlayer now exists for the one situation the game determines local players that actually has a net-related function (kicking illegal character changes).
* Invincibility/grow sfx now operates based on whether the player is NOT local (it used to be whether it was NOT a displayplayer).
* Refactored P_SpectatorJoinGame to make future team support easier, and also reset the relevant camera focus, rather than always the consoleplayer's.
* Fix viewpoints on non-local players having overlapping viewpoint text.