Build 7751
SVN-
General
game.cpp: temporarily limit A_Spawn() owner changes from r7738 to locators
SVN handles and Git names are merged into one person.
game.cpp: temporarily limit A_Spawn() owner changes from r7738 to locators
Disable -malign-double on i386 as libraries would need to be compiled with it.
Fix 32-bit Polymost issues by enabling SSE instructions and setting GCC to use SSE floating point math exclusively.
Additionally, enable SSE2 to better match 64-bit builds and use -malign-double for the potential performance benefit.
actors.cpp: Change demo camera path following behaviour to search for locators based on a hitag channel to avoid locator lotag contention.
Now, destination and subject locators should be assigned one hitag channel. Destination locators will be visited starting from lotag 0 and counting upward. Subject locators can have any lotag within the same hitag channel, and may also be a destination if the lotag is not separated from the destination locator ids. Destination locators must now specify their subject locator in their owner field by lotag.
game.cpp: When A_Spawn() is spawning from an already existing sprite, do not reset the owner field if it has been overridden from the default.
polymost.cpp: Fix polymost_domost() issue with COMBINE_STRIPS where in certain cases, merging with the viewport nodes caused accidental reading of sentinel node values.
Additional debug code is included for visualizing the state of the vsp data structure. Further, fix issue in drawpoly where it would access out of bounds of dpxy if fewer than 3 vertices were passed in and fix issue where multiple calls to polymost_setVisibility() were repeatedly setting the visibility factor to the same value.
Use stencil buffer in Polymost to restrict mirrors to only render within the region of the screen occupied by the mirror wall.
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.
winlayer.cpp: fix videoBeginDrawing() to return an intptr_t to mirrorBuffer when inpreparemirror
engine.cpp: fix sprite sorting/adjustment issue introduced in r7612 that caused sprites with the same y value at the end of the sorted array to not be adjusted properly
polymost.cpp: Fix issue where state would not be reset properly in polymost_drawmaskwall() when rendering translucent maskwalls with no texture
polymost.cpp: fix polymost_dorotatesprite() alpha test/blend issue introduced in r7619
polymost.cpp: fix issue where floors & ceilings with DAMETH_MASKPROPS were not being blended
engine.cpp: fix bug in killsprite where sprites were not being removed properly after sorting changes
Fix Polymer skybox bug introduced in r7620
Fix polymost_drawtilescreen() to not be improperly affected by globalshade.
Remove enabling/disabling of deprecated GL_TEXTURE_2D in Polymost.
For Polymer, temporarily workaround coupling with Polymost and usage of the fixed-function pipeline. Additionally, fix typo in polymost_printtext256().
Reduce state changes and fix translucent maskwall depth buffer issue
Fix maskwall array indirection bug and two if conditional oversights from r7612
polymost.cpp: switch from writing gl_FragColor to writing gl_FragData[0] in order to reduce VGPR usage on AMD cards
Fix depth buffer issue causing translucent sprites to not render properly in Polymost.
Use polymost_spriteHasTranslucency() and polymost_maskWallHasTranslucency() to determine if a sprite has translucency. Optimize sprite rendering when in Polymost by only sorting sprites with translucency.
polymost.cpp: fix fragment shader issue where fullbrights in a texture could affect rendering when u_useColorOnly was enabled
engine.cpp: lintersect(): use klabs() instead of abs()
Fix issue where swingdoors would refuse to open or close if an enemy was in front of the door in an overlapping but unrelated/disjoint sector
engine.cpp: lintersect(): fix integer overflow and negative case issue
Re-introduce earlier lintersect() work that was reverted.
engine.cpp/.h: clean up & fix lintersect(). Additionally, add support for finding intersections of collinear line segments. This reverts r7290.