(note: Linux AppImage is not being published, for now, due to issues, same with Linux Portable)
Highlights:
Ortho + OOB fixes and improvements
Revert clipper to older code path when not in Ortho/OOB (speed improvement)
Fix to some crashes and memory leaks
Exposed DDoor to ZScript, Exposed DPlat to ZScript, Exposed more of the Ceiling thinker, Exposed more of the Floor thinker, Exposed DElevator to ZScript.
Exported: • GetLumpContainer • GetContainerName • GetLumpFullPath for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise.
Added autoSwitch parameter to A_ReFire
add a few commonly-used gzdoom-specific properties to the dehacked parser
many more fixes and improvements
Details
Spoiler: This is long
Better flat visibility checks for Ortho projection.
3D floor flats now respect r_dithertransparency flag
Added visual rendering for LinePortals and SkyPortals for OoB viewpoints. SkyPortals will be stenciled, and will always use perspective projection. Disabled interpolation when portalgroup changes (portal transition occurs) if viewpoint is OoB (was necessary for fog of war when r_radarclipper is set to true). Tightened up radar clipper by making it more aggressive. Voided walls wont' get filled in by a floor or ceiling sky (because of the stencil). Ceiling sky will be half-infinitely tall upwards, and floor sky will be half-infinitely tall downwards. Use only floor skies and a good GLSKYBOX for top-down/isometric cameras. Level.ReplaceTextures("F_SKY1", "SKY1", TexMan.NOT_FLOOR); (zscript) is a nice trick for WorldLoaded().
Making 3D-floors respond to r_dithertransparency properly.
Reflective flats now work with OoB viewpoints, including ortho. Had to create a new type of portal stencil for the HWPlaneMirrorPortal. Stacked sector portals could be made to work the same way, but there are clipper issues, revealing out-of-view sections of the map on the other side. Hence sector portal rendering is still disabled in OoB viewpoints.
Stacked sector portals now render for OoB viewpoints.
Addressing some small regression by conditioning a few calculations on OoB viewpoints. Branching Frustum calculation to old method.
rework how vector local type restrictions are managed
add better descriptive name for vectors/quats
don't allow backing types of string/array/map/etc to be referenced as actual types
restrict internal structs to gzdoom.pk3
Allow `>>` in parser for aggregate types
rename vm internal structs to make room for compilation-unit-internal structs/classes
fix crash if chat key is pressed during the loading screen
stop game from getting stuck in chat mode if the main menu is open
Revert using older stencil method for stacked sectors (and reflective flats) if viewpoint is not allowed OoB. There was some bug with nearby skyplanes otherwise.
Forgot to account for when both floor and ceiling of a sector are portals.
Handle sectors within sectors for stacked portals and plane mirrors (affects OoB only).
Update hw_portal OoB height clip
Remove bitwise opeartion on bool
Exposed DDoor to ZScript, Exposed DPlat to ZScript, Exposed more of the Ceiling thinker, Exposed more of the Floor thinker, Exposed DElevator to ZScript.
fix function-pointer cast parsing
Interpolate turning 180 degrees
Added particle rendering to VisualThinkers.
remove K&R C function declaration bullshit from lemon.c
Fix memory leak in mixins
Properly assign tags to various Raven game items
disable Build light mode due to being broken.
Exported: • GetLumpContainer • GetContainerName • GetLumpFullPath for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise.
Added autoSwitch parameter to A_ReFire
rewrote XY and XYZ accessors for vectors to be read-only and not use type punning.
Haiku support patch, to allow compiling for the Haiku OS
fix OptionMenuItemCommand::DoCommand for new 4.15 keyword
Fixed player respawning
Added missing return values in VM calls
fix bug with direct cvar assignment being mistakenly allowed
save togglehud to ini so that it can be properly restored on crash/exit
Added OnLoad virtual
Fixed pitch culling in reflective flats for OoB Viewpoints
Boolean op instead of mod with 2
Ensure boolean to suppress compiler warning
SpawnBlood now returns an actor spawned by the function.
Added am_showlevelname CVar
fix dsdhacked actors not spawning when placed in a map
add a few commonly-used gzdoom-specific properties to the dehacked parser
Thanks for the super-quick release after the recent DEHACKED-related PRs (probably just good timing, but it's hella welcome for a couple of folks working on mods).
That said, I did notice an oopsie right off the bat: the gzdoom.pk3 in the release looks like it was built from an out-of-date wadsrc tree; e.g. I noticed the SelfObituary property (which was just added in February this year) is missing from zscript/actors/actor.zs, but it's definitely present in the latest commits on Git. Maybe the PK3 from an older release got pulled in?
I'm maybe running afoul of the "don't post bugs in the release thread" rule, but I dunno if this is a "bug" per se or just a distribution thing that needs a zip reupload. Lemme know if I should move this to the Bugs forum instead.
[EDIT] NVM, false alarm -- I didn't realize that the 4.14.2 branch was a stable release that was branched from master a while back, and the pk3 does match the branch (as expected). The DEHACKED commits got cherry-picked but SelfObituary didn't, but that's just a case of the feature itself not yet existing. All is well, carry on.
The main purpose of the release was to address some compile errors with the arm .deb package, but while we were at it we pulled in some cherry-picks and I also managed to fix the bug that was causing my Windows build environment to erroneously pull in a bz2.dll dependence that should not have been pulled in. So yeah, it's effectively 4.14.1 with a few changes.
Rachael wrote: ↑Sun May 04, 2025 7:41 am
I also managed to fix the bug that was causing my Windows build environment to erroneously pull in a bz2.dll dependence that should not have been pulled in.
Graf Zahl wrote: ↑Mon May 05, 2025 1:05 pm
What was causing that?
Either CMake or Visual Studio were erroneously pulling from a very old copy of vcpkg that I had, I located it by looking up the strings in that extra .dll that it was pulling in. After I did I renamed it and then re-ran cmake and it stopped pulling it in.