Build 10664
GIT-
Avoid crash when given an OOB voxel ID
-
Silence unused variable warnings in `Bassert` macro
Nickname SVN e nomi Git sono unificati per persona.
Avoid crash when given an OOB voxel ID
Silence unused variable warnings in `Bassert` macro
Increase mmulti.cpp's MAXPAKSIZE (size of pakbuf in bytes) to 2048.
This appeared to fix a long-standing issue, where a relatively high ping between two players (say, about 750ms) could start increasing over time due to accumulated messages not being sent sufficiently fast.
Log a warning from mmulti.cpp:dosendpackets in case output pakbuf lacks space for all data.
Do so with a given threshold, i.e., turn off the warning until there are 16 consecutive calls to dosendpackets in which pakbuf has enough space for all data to send.
flush colmatch cache if input data is changed
Clean up rusted EDUKE32_GLES so that it at least builds
Update C and C++ language standard version detection
Tweak xxhash_config.h so xxhash.c needs fewer changes on update
fix voxel shading in polymost
Bump MAXXDIM from 7680 to 10240
fix RELEASE=0 build with GCC 14.x
update xxhash to 2bf8313b934633b2a5b7e8fd239645b85e10c852
update libdivide to e72d8272fef23d9cbec3039fd313258be336e514
update miniz to 8714fd3cd8788eb18304200607247926f9728d1f
update lz4 to c537f782c44a0ced71bcf271356aef9506f1375c
bump GL depth buffer size
Factor a new vox_clearid() out from vox_undefine()
fix screentext problem introduced in 5997fee3c6b9c2bda5aa31e8a80782f3901c4be1 by folding the relevant change into the new screentext flag introduced in 03a39f4d64a9131138eeecab08003d5c6b67da1c
update lz4
clean up mimalloc integration
Can now build with USE_MIMALLOC=0 if desired.
update mio.hpp
bump max bunches to 8192
If the texturecache.index file cannot be read, invalidate it
This fixes a problem where the texcache file could grow without limit if something managed to corrupt the texcache index.
add new TEXT_CENTERCONSTWIDTH flag for screentext to center glyphs within their allotted region in constant width mode
respect xbetween value for screentext between chars in constant width mode
only use debugbreak.h when actually debugging
undef SMMALLOC_DLL
lower Polymost SCISDIST to 0.1f
Prevents rendering errors with low fov.
add warning if TROR somehow tries to draw the same wall more than once per frame
don't pass SDL_INIT_HAPTIC to SDL_InitSubSystem() because it's not actually used for game controllers
clarify windowsHandleFocusChange() logic
disable glGetGraphicsResetStatus() stuff for now
print sprite number and tile of sprite when clipsectnum >= MAXCLIPSECTORS in clipmove()
Kinda shit tier, but whatever.
Increase YAX_MAXCLIPSECTORS from 64 to 256
Some TROR layers were blocking hitscan shots because of the low limit.
Don't try to interpolate rotatesprite calls if the clock difference is negative.
avoid passing -1 as bunchnum to SECTORS_OF_BUNCH
minor optimization of 209bc8793d0838bb02d487bd8a74e6199a9911d1 + similar blocks in fgrouscan
improve slope sprite interpolation on edges
update xxHash to 6f9771f2c014a703f151ac646d5f8074b6236c84
move glGetGraphicsReset() shenanigans to videoShowFrame()
Revert clipupdatesector() changes from df868267 and replace with a different approach
If the sector contains a TROR bunch, then whenever clipupdatesector() would normally return 1, instead run updatesector() and return 0 instead. The old approach did not work out in all situations. In Fury, certain flying enemies could not pass some TROR layers properly, and in AMC, trying to submerge in TROR water had the player glitch out on the surface. This exact approach had previously been used in AMC without any major issues for 2 years, before the recent TROR changes.
Rework the cansee() changes from 86e5fe7f to only affect TROR transitions
The problem with the previous version was that it didn't take overlapping geometry into account. This should be a more conservative approach that doesn't affect non-TROR uses of the cansee() function.
Fix hitscan() and clipmove() by checking for invalid sectnums
Invalid sectnums could previously be added to the clipsectlist if a hitscan shot passed a tror layer.
fix regressions with clipupdatesector() from df868267
This resolves a bug in Duke3D where the player couldn't move while shrunk if a TROR sector was present on the map. It also ensures that the original clipping is used if no TROR bunch is present inside the sector in question. This should reduce the amount of backwards-compatibility problems.
Fix clipmove() problems with TROR wall geometry resulting from commit 7f00d5ce
The changes are now more conservative and only affect sprites on TROR layers.
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.
Account for floor and ceiling slopes in renderAddTsprite
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.