Commit graph

20 commits

Author SHA1 Message Date
e5e6ce619c Fix severe performance issues in large maps.
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).
2023-12-19 11:46:29 +01:00
d4043c2353 Reimplement reverted commit but with some important safety checks. 2023-07-29 14:02:52 +02:00
3b10e684b6 Revert "Replace usage of ThinkerIterator and BlockThingsIterator in various places where we can instead loop through sector thing lists."
This reverts commit 2bd1cb0657.
2023-07-29 13:48:33 +02:00
2bd1cb0657 Replace usage of ThinkerIterator and BlockThingsIterator in various places where we can instead loop through sector thing lists.
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.
2023-07-29 13:15:34 +02:00
a2f245b189 More stuff I missed. 2023-03-17 13:31:10 +01:00
525b9e33eb Use new let syntax for multiple returns. 2023-01-14 19:14:39 +01:00
8e952f412f 4.10 support update (unfinished and untested). 2022-12-05 02:10:56 +01:00
bcc1f22153 Tiny insignificant change. 2022-11-28 00:35:00 +01:00
c770276bd7 Various changes related to items:
- 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.
2022-10-28 16:49:14 +02:00
db86853195 Allow debug view of player hitbox when using chasecam. 2022-10-21 12:43:41 +02:00
4bb3a1e85a Several optimizations on non-interactive actors. 2022-10-14 21:45:21 +02:00
4230b3b062 Vector/Trig math refactor into utility functions. 2022-08-18 16:18:22 +02:00
823da0615e Fix swapped weapons having bDROPPED. 2022-08-12 01:24:51 +02:00
20a8f3304b Some small optimizations. 2022-07-05 19:37:48 +02:00
65597c181a Stop reinventing lerp() all over the place. 2022-05-29 18:07:30 +02:00
0aee4035ed "Extended Virtual Hitbox" for items. 2022-03-27 15:27:03 +02:00
7f70eb03af I gave in and did the font cleanup already. 2021-12-16 22:07:20 +01:00
ff07516f4c Don't show headpat trackers in debug view mode. 2021-06-01 16:52:15 +02:00
8ec2c14b38 Sound precaching for player/weapons.
Adjust collision sizes of projectiles.
Make player self-light toggleable.
2021-05-18 17:17:15 +02:00
d07bc12a8f Some extra debug code and some fixes. 2021-04-10 19:27:19 +02:00