- It's what the people want, why bother to complain?
- Alt is now its own separate item titled the S-Monitor
- Several variables, macros, functions, and comments have been renamed to fit this change
From indev talks: it'd be better to bind horns to a dedicated button,
than for it to occupy more "important" inputs like item/ring usage and looking backwards
* Tie all voices to skins, allocate voices during skin allocation and patching
* Bring back voice.name, kill voice.parent, add voice.id
* Lua compatibility for voices (again) soon (hopefully)
Skin voices and freeslot voices are no longer separated, with all voices allocating as skin voices would prior.
Due to this, skin voice allocation has been refactored a bit:
- No longer relies on a name string, instead using Dehacked name info hashes and string offsets
- Name string checks now check the voice's Dehacked name; the skin 'tails' will allocate KVOICE_TAILS, and so on
- Overall refactors to fit this new system
* The "unique item" flag has moved to kartitem, and split to accomodate
shields (item slot only, not paper items)
* "BGoneTime" renamed to "CooldownTime"
* indirectitemcooldown has been folded into the existing cooldown system,
all results with the indirect flag share the highest cooldown time
* Added cooldown debugger to kartdebugdistribution
* Fixed Thunder Shield not resetting cooldown when killing an SPB
Too much shit to explain, read the diff (you should anyway!)
Very sloppy, expect lots of fixes
TODO: SOC it all, separate "active odds" table, how to handle alt items
* Changed every instance of K_AltShrinkActive to its K_IsKartItemAlternate equivalent
* Same as above for Invincibility; some functions might still rely on K_GetKartInvinType though
* (Balance change) Alt. Invin. needs a slightly farther distance to start appearing, hopefully means less 5sec dud invinces
* Brought back cv_landmine to prevent SIGSEGVs in the item toggles menu
* Introduce NUMBASEKARTRESULTS since all KAITEM_X items are overrides assigned via K_GetAlternateVersion