Commit graph

158 commits

Author SHA1 Message Date
4c847db83d Remove fast PRNG, it won't be necessary. 2026-02-23 16:18:38 +01:00
2aa0ea4680 More work towards Legacy of Rust support (with caveats).
As of this commit, do not consider the experience when playing that new
expansion to be complete. I've only partially written some of the mission texts
and rudimentarily enhanced some boss fights.

Currently there is one major limitation in that the intermission texts cannot
be replaced, as they're hardcoded inside the UMAPINFO. I don't know if I can
work around that.
2025-08-20 16:47:24 +02:00
4374d54f27 Setting up for faster PRNG experimentation. 2025-06-25 14:30:48 +02:00
8a04ef9074 Don't use InPlayerFOV for anything that affects gameplay 2025-06-03 23:13:06 +02:00
a5e58add12 Remove Gutamatics, use bespoke projection code from UT99 modding days. 2025-03-16 15:50:48 +01:00
8d0a087e6c Reduce perf hit of bullet trails by only spawning underwater bubbles actually underwater, instead of always spawning them and then relying on them despawning themselves after checking their own water level.
Further optimization could be possible if I found a way to divide the trace results into segments based on intersections with water volumes. This would save on countless calls to Vec3Offset and PointInSector. Something to keep in mind, I suppose.
While I was at it, I did make the underwater check into a new utility function. It is more or less based on how updating water level is done internally, but saves time by just checking a single point rather than an actor's full height.
Not sure if I'll need to use it elsewhere, but if that turns out to not be the case I'll change it to a private function of the SWWMBulletTrail class afterwards.
2025-03-14 16:23:20 +01:00
80db58b0d0 Bump zscript ver to 4.14.1, plus a whole lot of stuff.
- 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.
2025-03-13 14:50:58 +01:00
f89393ca81 Unconditional blood replacement, new blood decals, corpse blood pools.
TODO: bloodied footsteps, can still re-use code from Soundless Mound there.
2025-03-07 17:27:59 +01:00
7dd20c93e4 Actually use GetMidTexturePosition() to simplify some code. 2025-03-07 11:48:03 +01:00
a99d9e3a12 Clean SWWMUtility.SuperscriptNum up a bit (even though it's not used). 2025-02-04 21:18:39 +01:00
03e556a31d Better integer exponentiation using squaring (thanks, phantombeta ♥) 2025-02-04 10:31:35 +01:00
a1dbf71aa6 Oops, can't do this here. 2024-09-30 21:25:58 +02:00
d3ce281abb Eviternity 2 changed some monsters. 2024-09-30 21:24:34 +02:00
f38db38751 Updates for GZDoom 4.12, part 1 (new functions, variables, flags, etc.). 2024-04-22 14:35:02 +02:00
82f94872cb Fix excess spacing when beautifying class names with underscores. 2024-01-31 20:50:51 +01:00
891b69d3da Additional rules for BeautifyClassName(). 2024-01-22 18:35:54 +01:00
751215c5d3 DoKnockback/DoExplosion: Reduce momentum transfer for crouching targets. 2024-01-17 12:39:00 +01:00
38cd7df826 Small scorenum/damnum refactor. 2024-01-16 10:17:28 +01:00
cbb1b2a8cb Sigil 2 (v1.0) and Eviternity 2 (RC5) support.
+ 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.
2024-01-04 19:50:26 +01:00
230d7192c3 Missed a null check. 2023-12-19 16:39:35 +01:00
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
13b2cb53b3 Add player path tracing in minimap. 2023-12-07 23:17:27 +01:00
6a6c26f307 Reset weapon pickup voicelines only when inventory is wiped. 2023-11-27 15:44:23 +01:00
b7493d867d Tweak kill oneliner chances. 2023-11-20 11:51:34 +01:00
b72bd2dde1 Re-render all README.md images. 2023-11-18 20:55:46 +01:00
67e637bd94 Some cleaning up. 2023-10-18 22:51:34 +02:00
adaf35eeb0 Fix "longest journey" achievement breaking due to movement glitches. 2023-10-10 17:25:58 +02:00
d3d503cd81 Disable unimplemented weapons and ammo for now. 2023-10-10 14:39:12 +02:00
8f93448a32 Corner case where gathered targets for splash damage may become null. 2023-08-20 12:04:01 +02: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
b643167bb1 Fix potential division by zero in DoExplosion.
(It has never happened in practice, but just in case)
2023-06-26 23:54:48 +02:00
a2f245b189 More stuff I missed. 2023-03-17 13:31:10 +01:00
35b8b986db Cleaning up. 2023-02-11 17:03:43 +01:00
525b9e33eb Use new let syntax for multiple returns. 2023-01-14 19:14:39 +01:00
d0fddbf8a3 Testing changes for GZDoom 4.11/5.0. 2023-01-08 14:58:06 +01:00
eff2a9a69b Add MapRange utility function (currently unused). 2022-12-30 23:16:36 +01:00
116bca4b0b Show "all keys" doors as multicolor in the minimap.
Deprecate IsValidLockNum and GetLockColor utility functions.
2022-12-23 18:26:12 +01:00
dd7070b453 UseLinePos doesn't need to be play scoped. 2022-12-18 21:42:00 +01:00
e5cb32bc02 Remove redundant "clearscope" from utility functions. 2022-12-18 20:12:17 +01:00
b1683dae8e Generalized hitnormal functions (where possible). 2022-12-18 20:03:36 +01:00
44f39d1024 Split player and utility code. 2022-12-15 17:12:53 +01:00
8e952f412f 4.10 support update (unfinished and untested). 2022-12-05 02:10:56 +01:00
eb624f15e3 Fix zero-damage hits spawning blood.
(Can't apply to Spreadgun/Wallbuster due to Damage Accumulator use)
2022-12-03 15:05:09 +01:00
9ce5ee591f Fix very wrong™ fract() implementation. 2022-11-28 17:54:45 +01:00
c5f9e3b5a7 Fix incorrect YBeam math. 2022-11-25 20:55:19 +01:00
7f6b66b149 The Silver Bullet is an AMR, not a sniper rifle.
Unify YBeam size/orientation math into one utility function.
2022-11-22 23:05:20 +01:00
4bb3a1e85a Several optimizations on non-interactive actors. 2022-10-14 21:45:21 +02:00
c7d741853e Missed a lil' thing. 2022-10-08 17:50:05 +02:00