Build 10424
GIT-
General
Fix potential enginecompatibilitymode regression in cansee()
SVN handles and Git names are merged into one person.
Fix potential enginecompatibilitymode regression in cansee()
Fix enginecompatibilitymode regression in hitscan()
Fix many cases in which cansee() would fail with TROR
This commit adds a failsafe which corrects the given origin and destination sectnums of the "cansee()" function, by checking if the corresponding (x,y,z) coordinates are actually contained within the given sectors. The problem with TROR in particular was that the calculation done to determine the point of intersection on the TROR layer requires the coordinates to be within the given sectnums. Else, cansee() would simply return 0, even if there was a clear line of sight. This should also implicitly fix any other cases where the coordinates of the cansee() call do not exactly match up with the given sectnums.
Properly split TROR code from commit 19fd0915 into YAX_ENABLE blocks
And fix problems introduced by 9070cd2bff6d4547f0765fc483ffd4f923e24383.
Fix sprite shadows being drawn on transparent TROR layers
Also fixes sprite shadows being drawn floating above floor slopes.
Fix "return to center" triggering after CON_SAVE is executed
Fix tsprite cutoff if the sprite stretches across multiple TROR layers
The sprite is now properly copied for each sector it stretches across.
Overhaul TROR handling for hitscan() and clipmove()
- Vertically attached sectors are now added to the clipsectorlist - Entirely remove the previous TROR hack from hitscan() - Instead, hitscan() now also uses clipsectorlist, and detects whether a TROR transition floor or ceiling was hit. If so, any subsequent wall hits in the same sector are skipped. This fixes the following: - Collision and hitscan checks where a sprite stretches vertically across more than 2 TROR layers. - Hitscan shots being unable to clear sloped TROR surfaces. - A potential out-of-bounds array access in hitscan()
Add TROR-awareness to sprite clipping in hitscan()
Analogous to the previous commit, it also checks the sprites of the upper and lower TROR bunch of the sector. This handles the case where a sprite is intersecting layers, and fixes hitscan shots not hitting enemies properly in such cases.
Add TROR-awareness to sprite clipping in clipmove()
This makes it so that the sprites of the ceiling and floor bunch sectors of the sector being checked are also iterated over. This handles the case where a sprite is intersecting TROR layers, and fixes projectiles not hitting enemies properly in such cases.
Make clipupdatesector() TROR-aware with compatibility ENGINE_EDUKE32
When checking if a point (x,y,z) is contained within a sector, then if x,y is contained, but z is not, it also checks all attached TROR layers. This fixes terminx/eduke32#24
Completely revert attempted jitter fix from 5977025e
This caused two problems: - The change with AC_FZOFFSET caused BLOODPOOL to jitter in Duke3D - The change with water floors caused various actors to jitter in Fury More trouble than it's worth.
Fix build after big updates in ae4a71a199773d77445a47e6ea80787969b2fd97
Fix voxel visibility rolloff in classic mode to match sprites
TODO: Polymost
Fix regression in 611edc9672272fe651d66734c0448be7695b256d
If you made saves since then, loading them will likely scramble your cfg settings, but you should not lose any progress at least.
Fix logic oversights in 6e6b82d4cc9a0434d1ff7a122ae267c3b0e7b21e
Fix assertion in get_floorspr_center with regard to sloped sprites
Fix screen border tile in Polymer
Fix up many print statements to use loguru so they actually work
Fix maybe-uninitialized warnings
Fix keyboard function override message not showing the keys
And apply some cleanup to the code in question.
Fix weapon behavior with FIREDELAY set to 1
Defer setting kickback_pic setting to lower block. Make adjustments to prevent errant behaviour this may cause.
Fix rapid-tap chaingun glitch
Behaves like Atomic Edition now. Avoids breaking WW2GI.
Fix OOB access
Skip screentextRender() if provided zoom smaller or equal zero
This fixes a division by zero crash if zoom == 0.
Display r_maxfps == -1 as "Auto" on the display menu
Previously, this would be the default selection and say "CVAR"
Fix savegames made before floorzrebound and floorzcutoff were introduced.
These would default to 0 after loading the savegame.
Fix ordering issues with rotatesprite interpolation that were causing insane jitter and pacing issues.
Bugfix polymost1Frag.glsl
Revert interpolation changes on non-water VM_Fall cases
Fix z interpolation problems in VM_Fall() and A_Fall()
This prevents a visual jitter effect from sprites that aren't moving, but use the "fall" command in a water sector (zombie actors, pickups, etc).
Fix name and use of XDG_CONFIG_HOME environment variable
More cleanup to come.
Fix pathsearchmode when using a .def which loads a GRP
Same fix as applied for Mapster32 in c7aa59b001
Fix cstat parameter in "classicDrawVoxel()" being int8_t instead of int16_t
Also fix an error log message in engine.cpp logging the wrong variable.
Fix parameter in "polymost_drawtilescreen" being called "wallnum" instead of "tilenum"
Duke3D/Editor: Add "whilevare" CON command
Also fix editor checking for "else" tokens on whilevarl.
Fix typo in PR light offset for EXPLOSION2.
Also fixes attempts to read data for sprite no. -1 in case of no parent sprite.
Fix FURY=1 build removing the "obj/fury/" folder after linking.
This bug was introduced in 36af1bb2 and caused the subsequent mapster32 linking to fail. The obj dump folder now has "_dump" as suffix. For regular duke3d builds, this temp folder had the name "obj/eduke32", and hence did not conflict with the "obj/duke3d" folder.
Fix crash on init with microprofile when GL is not available at runtime
Fix crash on exit when GL is not available at runtime
Fix crash on `setrendermode 3` when GL is not available at runtime
Duke, SW: Fix game data search paths