+ Invinciball activation now voiced by Demo (thanks, Vyolette).
+ Retooled exit line merging (should fix those pesky duplicate exit markers).
Note: Oneliners for the Eviternity 2 final boss are not voiced yet.
So... Remember that one decision I made about avoiding BlockThingsIterator as
much as possible? Turns out that was a stupid idea. There ARE situations where
it's better to iterate sector thinglists, yes, especially for things that are
NOT part of the blockmap, but in other cases, the excess allocations of new
iterators are a reasonable price to pay for the lower perf impact in extreme
cases, such as maps that have a gazillion sectors with gazillions of things in
them (I'm looking at you, UDMF mappers).
As a compromise, at least, in situations where the thinglists are needed, I did
add a sort of micro-optimization by implementing code to check if a bounding
box is inside a sector (would be nice if this was part of GZDoom itself, tho).
While in the latter case this may result in longer loops, it also reduces GC thrashing by not needing to allocate an iterator every time.
This also simplifies the DoBlast code as there is no longer a need to manually traverse portals vertically.
- All items now have vanilla hitbox sizes for compatibility.
- Removed extended hitboxes (no longer needed).
- Blob shadows are now exclusive to players (and eventually monsters).
- Glows and sparkles are no longer toggleable.
- Glows and sparkles have fixed size/radius.
- Item sparkles are now handled by the glows, rather than the player.
Mag ammo can now be sold.
Fix selling prices of bulk items.
Fix rare case where mag ammo can be picked up without a parent.
Fix alt hud crash when no weapon is selected.
Various other adjustments.