Build 7966
SVN-
General
Add voxels option to menu, if at least one has been defined
SVN handles and Git names are merged into one person.
Add voxels option to menu, if at least one has been defined
Fix bug where "standing" on top of a sprite structure underwater would cause the player to act as if they were no longer underwater
Attempt to work around odd behavior when attempting to use stuff like wall aligned sprites with the new version of clipmove
The behavior was always "wrong" as clipmove does not handle movement of lines, just movement of clip boxes against lines and face sprite points, but the newer version of clipmove actively bounces sprites away from lines they would otherwise clip into. This was causing wall-aligned sprites that called any functions that ended up calling clipmove to get pushed away from the wall unintentionally.
Tweak the fatal engine initialization error and game already running dialog boxes a bit
Polymost projection changes to correct the perspective in widescreen and ultrawide resolutions.
Patch from Nuke.YKT and Fox.
Fix Mapster32 bug with 2d3d mode ambient sounds
gameexec.cpp: allow G_ShowView() to execute regardless of the state of g_screenCapture.
This fixes skyboxes not rendering in TILE_SAVESHOT.
sector.cpp: ensure that if scripts have told us not to render normally to the tile, that we still handle restoring our target & setting up the tile appropriately for what the script may have rendered
engine.cpp: make renderSetTarget() more robust so that passing an xsiz or ysiz <= 0 is not accepted and can't cause a segmentation fault
polymer.cpp: fix issue where assert could fail due to HUD model sprites having an owner >= MAXSPRITES
polymost.cpp: Fix issue where tiles whose dimensions had grown would not have their sizes updated in GL and could fail to update their texture data
polymost.cpp: If a tile in the tilesheet is large enough to fit a redefined tile, use that space rather than allocating a new texture
polymost.cpp: if an indexed colour tile is being reloaded, changed dimensions, and no longer matches the calculated tilesheets, generate a separate texture for it.
Similarly, if the tile does match the calculated tilesheets but was a separate texture, delete the texture and load the tile back into the tilesheet.
This adds back in the engine's old automapping feature
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.
Don't blow away wall cstat bit 14 for use as a temp flag in the editor
Patch from Nuke.YKT.
Work around an issue with far plane clipping with voxels without mipmaps in software mode
Patch from Nuke.YKT.
Emulate slope overflow in Polymost in order to match the rest of the engine's slope algorithms
Patch from Nuke.YKT.
Hopefully work around more Polymost polygon leakages
Patch from Nuke.YKT.
Fix issue rendering TROR when the camera's z coordinate is right on the portal
polymost_scansector(): avoid using a culling method not designed for voxels when handling 1-sided wall aligned sprites that have voxel replacements
Fix rendering skyboxes to a tile by altering renderSetTarget() & renderRestoreTarget() to set & reset xdim & ydim so that G_ShowView() can render while a render target is set,
and additionally modifying G_SetupCamTile() to call EVENT_DISPLAYROOMSCAMERATILE after calling renderSetTarget()
Patch from Nuke.YKT to work around precision-based inaccuracy problems in Polymost TROR
Add MERGE_NODES macro for Polymost... this will be used in the following commit
Patch from Nuke.YKT to clip bunches to screen boundaries in Polymost
Patch from Nuke.YKT to fix sloped floor and ceiling textures wiggling around in Polymost
Revise r7835: instead of not testing wall sprites, we'll just ignore the side blockers
Don't check clip objects for sprites in the keepaway() loop in clipmove()
This prevents some hilarious issues with deadly wall decorations. The "side blocker" clip lines that already exist for these sprites should already prevent the kinds of clipping issues this loop is intended to address, anyway.
Fix additional clipmove() issue
Additional clipmove() reworks
This fixes a LOT of clipping errors but needs thorough testing.
Switch a few iterators in clipmove() from int to native_t
clipmove() patch from Nuke.YKT:
"In some edge cases posx/y might be 'inside' of neighbor sector. I've added double check for this case"
Fix mirrors in Polymer
Add updatesectorneighbour() and updatesectorneighbourz() and make them accessible to CON to allow searching for nearby neighbouring sectors from a known sector.
These updatesector counterparts are more performant for tasks that require determining whether nearby sectors exist at a point as they will not exhaustively search the map. This also leads to more correct behaviour when sectors are disjoint, as queries will breadth-first search neighbouring sectors rather than risk accidentally stumbling first across accomodating disjoint sectors.
Fix edge case where mirrors & TROR could interact and render over skyboxes in the classic software renderer
polymost1Frag.glsl: Fix warning C7572: OpenGL requires extension names to begin with 'GL_'
Tweak previous commit so clipmove takes precedence over getzrange