- Uses P_GetNextEmerald to determine the associated emerald. Earlier work paying dividends!
- Color selected matching Cup Select screen
- New states which can be used in other contexts
- S_SUPEREMERALD1 and S_SUPEREMERALD2
- S_SUPEREMERALD_UNDER
- Uses a lot of existing apparatus, just leveraged to draw horizontally instead of a full map.
- Currently only functional in Sealed Star contexts, due to K_GetCircuitLength having no clean alternative for sprint tracks.
- Tracks Catcher/Emerald.
- K_drawKartProgressionMinimapIcon and K_getKartProgressionMinimapDistance
- Abstracts the progress of converting distance to finish into a position on the bar.
- Sibling function of K_drawKartMinimapIcon
- The author of this commit wanted to make it an alternate outcome of this function, which it shares a lot of similarity with, but doing waypoint traversal in HUD for objects that don't independently track their distance would absolutely tank performance.
- Tidying up in the main function permitted less minimap state to be used in these.
- Handles putting an object into the hyuu's inventory.
- Permits Sink conversion for items which are a little too powerful to give to someone who was JUST in first place.
- For now, the item to convert is an SPB.
- Split out from K_DropHnextList to make its handling more explicit, and to permit K_DropItems scenarioes to *not* drop shields.
- Always called on P_DamageMobj on any non DMG_STUMBLE damagetype, so shields always get digested on true pain.
- Todo: Should shields be popped even on DMG_STING..?
- NOT called on Eggman Mark pickup.
- Add to Lua (alongside K_DropHnextList, which was inexplicably missing).
- POSITION: Runs when POSITION period ends. Has no activator.
- OVERTIME: Runs when the time limit runs out. Has no activator.
- EMERALD: Runs when the Special Stage UFO's Chaos Emerald is grabbed. The activator object is set to the player that grabbed it.
- UFO is always solid.
- Adds a height check if the player is no boosting.
- Stumbles if the player is within a 60 degree cone of the
direction the UFO is moving. (Only applies if not
boosting.)
This condition blocked items from doing damage after just
being thrown. The intention was to not let shotgun Ballhog
instakill the player. This is now prevented by
MF2_ALREADYHIT instead.
blame cab1af549
MF_NOCLIPTHING is no longer enough to prevent the object from being removed.
All calls which can delete the object should now be handled more thoroughly.
- Add flags variable to toggle much of Orbinaut behavior.
- Don't spawn afterimages for Gacha Bom.
- Animate facing angle of Gacha Bom when thrown backward.
- Let tossed Gacha Bom drive forward after landing.
Two arrows. One above the player, floating. One below the
player, on the ground.
Both arrows use the player's facing angle. Arrows are only
visible to their own player (other players can't see them).
The floating arrow is a papersprite. You can see the arrow
turn with you as you turn your camera.
The grounded arrow is a splat with additive blending. It
tilts to match the slope of the ground you're driving on.
- Item count has always scaled up with player count. Items
spawn every N tics. Previously, these items were evenly
distributed across all item spots. Now, only one monitor
is spawned at a time and the number of items inside scales
up.
- Emeralds spawn inside of monitors instead of loosely.
- Sphere boxes should spawn in the same way as before.
- Once a monitor has been spawned at an item spot, no more
monitors can be spawned there until that one is destroyed.
There's an additional delay of one spawn interval before
a monitor can be spawned in that location again. This is
so a monitor cannot ever instantly spawn back if one is
destroyed at just the right time.
- Includes a struct definition for symmetrical objects
made out of papersprite sides.
- Dimensions of papersprite sides are looked up using
sprite cache.
- Monitors may contain multiple types of items.
- Item RNG is deterministic from the time the monitor is
spawned but the item types are not stored in memory.
Instead the RNG seed is restored every time an item type
needs to be determined. Item types need to be determined
every time the icon on the monitor's screen changes and
when the monitor is popped and drops all its items.
- Monitors sparkle like emeralds if there is an emerald
inside.
- Monitors take damage from players simply bumping into
them. The damage scales up with speed and weight.
- Activating a lightning shield in proximity decimates the
monitor into being able to be destroyed in one hit by
anything thereafter.
- All throwable / deployable items destroy a monitor in
one hit.