- MT_HYUDORO itself was being relinked, causing the Hyudoro to not disappear after delivery
- MT_HYUDORO_CENTER is relinked instead; this is the object that actually holds a player reference
2.4 has player-buffing mechanics, especially item snatching.
2.4 also has damage frames for UFO, so UFO damage carryover probably *feels* more significant even if it's numerically worse.
Thus, UFO damage carryover:
- 1/6 of damage retained -> 1/12 of damage retained
- 40% cap -> 20% cap
Seems like an uncontroversial change.
- Fixed rocket sneaker tripwire state not activating
- Exposed sneaker boost variables to lua
- Made bots at least aware of the new sneaker boost type...? Probably.
More tripwire leniency after invinc + fixed netgame crash caused by rocketsneaker boost type separation
See merge request kart-krew-dev/ring-racers-internal!2609
Previously the overshield you got from sneaker boosts could stack up to nonsensical amounts of overshield. This revises the behavior as follows:
- Sneakers give you 25 tics of overshield, but will never stack
- Rocket sneakers give you 1/2 second of overshield, but will never stack
- Sneaker panels extend your existing overshield for 1/3 seconds, but cap at 1 full second
- Only works in Match Race and Online level selects
- Shows in-progress state on Pause and Cup Grid, but no direct influence available on those screens
- Z to queue current highlighted map
- Pending until you press A, then sent to server
- When done online, tries to send one at a time to avoid overloading connection
- C to clear
- Removes one from pending first
- If you're out of pending maps, prompts whether you want to clear server's queue
Now that TA wipes are their intended length, holding Respawn during Time Attack for more than a single frame repeatedly restarts the run. This is not ideal, and frankly wasteful of CPU. Here is the specified replacement for this case:
- Holding gc_respawn will hold on a black(/white) screen before mapload.
- Allows for taking a conscious breather (or opportunity to curse) in the middle of long Time Attack sessions.
- Ticcmdbuilder will not interpret gc_respawn into BT_ constants in Time Attack contexts at all.
- Fixes the occasionally visible E-Brake when coming out of this breather state.
A lot of messy, copypasted boilerplate has been bundled together into a single function.
Programmers can now fire up a Match Race, the most basic type of gameplay, from menu code in only four steps (other modes take a little more attention):
- **M_MenuToLevelPreamble(UINT8 - splitscreen players #, boolean - false to extend wipe/true for short wipe)**
- set restoremenu
- D_MapChange(...)
- M_ClearMenus(...)
Includes the following fixes:
- Encore no longer has over-long wipes when started from menu, only standard-length
- "Boss Intro" and Encore start-of-round sounds will always play, even if no Title Card is drawn
- No long wipe when restarting a Time Attack run
- Auto Encore and Auto Gamespeed are no longer accidentially forced if you've manually changed them to Off and Gear 2 before starting netgame
A chunk of P_LoadLevel, extracted.
Calling it in D_ClearState should clear up some of the straggling pointers that might cause Laz' reported issue.
With any luck, it should also significantly reduce the amount of memory the menu uses.
- Built off g_fast_forward to utilise a lot of existing structure
- Only does steps of 5 seconds and therefore isn't precise, but that's better than having to rewatch/fastforward through the entire thing
- No single frame step back or general in-motion rewind preview, but that was all overkill