There were a few remaining cases of bot ticcmd generation editing player structures directly. Fix all of this and make as much of it pass const player pointers so this physically can't be allowed to happen ever again. Appears to improve bot sync in netgames & demos bot support, but I have not tested extensively.
- Destroy all SPB Capsules in the stage when an SPB becomes relevant
- When an SPB is put in a player's roulette
- When an SPB is thrown
- Automatically happens when SPB Capsule is touched
- Don't respawn a popped SPB Capsule while an SPB is out
- Selected from the mapheader's Audience list
- Since most Prison Break maps don't have Audience lists set, you'll be seeing a lot of Flicky/Motobuddy/Chao for now
- Yes, these will disappear in deathpits like in Sky Chase
- Intentionally did not do this for the CD Special Stage UFO
- Add Obj_SetEmeraldAwardee
- Separate object receiving emerald from object being
orbited
- Obj_BeginEmeraldOrbit sets both, if the awardee isn't
explicitly set
- Don't HUD track emeralds without emerald flag set
This commit handles everything except actually respawning
the player at a checkpoint.
- Checkpoints are formed by two checkpoint things (2030):
- thingarg0 - The ID for the checkpoint. Must be the
same for these two things, and these two
things only. ID cannot be 0.
- angle - The direction the player is intended to face
after respawning. Must be the same for both
things.
- Each checkpoint thing is a starpost with a stick and an
orb at the end.
- By default, the sticks are lowered to horizontal and
face toward the opposite starpost.
- Rainbow tether sparkles form a field between the two
starposts.
- When a player crosses between these two starposts, each
spins in the direction that the player crossed. The
sparkles also fly out in that direction.
- Over time the sticks pivot upward.
- When the starposts are done spinning, the sticks will be
pointing straight upward.
- Orb at the end of the stick begins flashing when the
starpost is done spinnning.
- Players may cross multiple checkpoints.
- When this happens, any previously activated checkpoint
will have its stick lowered back to horizontal, and its
orb will stop flashing.
- Battle: plays once the orbiting collection animation
finishes and the player's emerald flags are updated
- Centered on the player
- Sealed Star: plays as soon as the orbiting animation
begins
- Centered on the emerald
- Battle emeralds orbit into the player's body upon
collection
- Emerald shrinks down to a speck
- Orbiting speed increases over time
- Player's emerald flags altered at the end of the
animation