New function specifically for dropping rocketsneakers K_DropRocketSneaker
Used by Eggbox touchspecial to properly dispose of shoes and clean up hnext
Now also used by the shoe thinker to drop themselves
Fixes angle of spent shoe launch
- Moved respawn code to its own file
- Reorganized a lot of the code related to respawning
- As a result of the massive reorganization, I squashed several bugs. Most notably: mid-game joiners having weird spawns, being able to skip laps by respawning.
- Respawn lightsnake no longer takes you straight to your nextwaypoint -- it now has a minimum distance forward that it tries to put you at when you respawn.
Bots will steer *towards* rings, items, ring-stingable players, and players with lower weight. They will steer *away* from projectiles, traps, players using damaging items (such as invincibility), players with shields, and players with higher weight.
- Make ring usage smarter
- Ring usage threshold varies between characters (Tails will be more willing to dump rings, Metal will hold onto them)
- Decrease ring use threshold when they have a speed boost (tethering)
- Decrease ring use threshold when slowed down more than usual
- Properly implement Triple Sneaker & Rocket Sneaker usage
- Use smallest radius of all waypoints being predicted, to improve precision
- Bots never use prev waypoints
- Use sneaker if held for too long without a proper use
- Use sneaker if losing too much speed
- Use sneaker if you have another boost (tether, boosters)
- Add triple sneaker & rocket sneaker support
- Don't go towards shortcut waypoints without a shortcut item
- Bots get naturally better handling
- Only look for players who can pick up the item. Serves as a subtle tell for other players holding onto items, and lets you see the canon color more often
- Held eggman item uses black instead of player color
- Fix karma items not animating
This commit also fixes MF_NOCLIP not working properly on players. Sink now spawns an SPB explosion on successful hit, since dying is no longer a harsh punishment.
- Capsules get spawned in the proper scenarios
- Level ends when all capsules are busted
- Time gets used on the leaderboard instead of score
Also split a handful of Battle code into k_battle.c. Lots of other code could probably get moved here later
- Split MF2_DONTDRAW into MFD_DONTDRAWP[1-4], also replaces MFE_DRAWONLYFORP[1-4].
- Split MF2_SHADOW into MFD_FULLBRIGHT and MFD_TRANS80. I also added an entire spectrum of options for transparency & brightness overrides, since I've found myself wishing for stuff like that before.
- Tethering was updated for it's client-sided drawing to apply to splitscreens too.
- Removed cv_transparency.
The transparency overrides don't seem to work yet (obvious on things using MFD_SHADOW), just running out of time to look into it so I'm pushing what I have.