Build 5314
SVN-
don't redundantly adjust globalcursectnum in polymost_drawrooms().
Show details
See r5024 and the added comment.
SVN handles and Git names are merged into one person.
don't redundantly adjust globalcursectnum in polymost_drawrooms().
See r5024 and the added comment.
r_npotwallmode, emulating 8-bit for walls w/ nonpow2 height textures.
When that mode is enabled (see below for caveats), wall textures that have a non-power-of-two height (call it 'h') will be modified to look like in classic: Let 'H' be the next power of two greater than 'h'. The texture will be uploaded with height 'H', made up from 'h' hlines of the original texture, followed by 'H'-'h' first hlines of the same. No panning "corrections" will take place. The mode is disabled by default. Caveats/notes: * the mode requires that r_hightile is disabled * it is not implemented in Polymer * in the Lunatic build, it is ineffective when a VX map is loaded, as those display walls with NPOT height textures correctly
in NPOT wall ypanning "correction", behave like Polymer in one corner case.
Specifically, the handling of one-way walls ([1] in Mapster32) was slightly different.
make r_usetileshades 2 the default.
This mode does not take a sector's visibility values into account for uniform darkening of a texture. It is more faithful to classic with respect to fog/visibility *distances*, but may be less so as far as the "tint" of the texture due to visibility attenuation is concerned.
introduce r_usenewshading 3 and make it the default.
With this mode, the near distance of the linear fog is always 0, unlike being negative with r_usenewshading 2.
handle HUD model 'fov' DEF token.
This "simply" requires an appropriate factor in the projection matrix. Also, get rid of a special-case factor for >=1.6 aspects (making HUD models wider then, I think).
make spriteext[].{x,y,z}off independent of xdimen/viewingrange/aspect.
The offsets (that will translate the axes for .pitch/.roll rotation) were calculated improperly with screen sizes other than 1280 x 1024 and were dependent on other related variables. The fix proceeded empirically, i.e. mostly trial, error, and some educated guesswork. (It's telling that the magic constant 1280 is needed.) A test for Lunatic is added to test.lua that will rotate SEENINES. Bug pointed out by Mblackwell.
fix my r_usetileshades==2 sub-method.
Don't touch TerminX's r_usetileshades==1 or it being the default.
fix 'zadd' DEF token handling. (Polymer has it right.)
factor out y panning coefficient calculation code.
don't attempt to draw sprite with void tile, preventing div-by-0s later
fix mirror-related oob access analogous to r1872's fix for classic.
When drawing from inside the mirror, there may be no 'bunches' (BUILD lingo, not TROR ones) collected, but following code used the first one unconditionally.
with r_parallaxskypanning=1, clamp the sky at a constant horizon.
See E4L1 for what this means.
crash prevention for bad pal sprites (and warning in Mapster 3D mode)