- Try to get rid of all implicit casts from string to name, color or class.
- Use FindClass where needed.
- Used a map in a case where a dictionary was unneeded.
- Use new bounce flags where needed.
- Replace Legacy of Rust weapons/ammo.
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.
* Additional kiss voices
* Mirror interaction lines (not yet implemented)
* Intonation changes for two existing lines
* Fix randomization of some voices (grunts and whatnot)