Build 4457
SVN-
General
engine.c: extend the last workaround to all four fogpals generated at startup.
SVN handles and Git names are merged into one person.
engine.c: extend the last workaround to all four fogpals generated at startup.
engine.c: after creating gray fog palookup, make its greatest shade map to same color.
Concretely, for all 1 <= i <= 255, make graypalookup[31][i] := graypalookup[31][0]. Also document 'fogpal' in the Lunatic doc.
fix fog/visibility on ceilings.
engine.c: clean up scansector().
prevent visibility overflow on sloped ceilings/floors at large distances.
Fix r_usenewshading 3 visibility/fog for shades >= Numshades-1 (usually 31).
BUILD_LUNATIC.
Makefile.common: pass Clang sanitizer flags in release DEBUGANYWAY builds, too.
Also, - add a static assertion to engine.c - gameexec.c: compile out an unused function in Lunatic builds
In G_SavePlayer(), save timers at beginning and restore when finished.
This makes the game not process as many ticks as have elapsed during the saving afterwards.
Keep displaying difficulty menu for as long as the *voice* plays.
Previously, the check was for the hard-coded sound number. This made it impossible to change difficulty selection sounds via EVENT_SOUND.
add getactor[]/sprite[] member 'movflags'.
This is exactly the same as the actor[].movflags member in the Lunatic build: http://lunatic.eduke32.com/lunatic.html#actor
sdlayer.c: fix grabmouse_low() with DEBUGGINGAIDS!=0 builds. DONT_BUILD.
shadexfog.lua: in "Save lookups DAT file" entry, allow to save additional lookups.
BUILD_LUNATIC.
(better) document sector[].visibility, sprite[].clipdist, player[].weapon.
Fix minor help text formatting issues in shadexfog.lua.
Also, fix saving PALETTE.DAT tables without lognumalphatabs byte. DONT_BUILD.
in rotatespritea and screentext, if alpha < 0, make -alpha denote blend.
For convenience, orientation gets bit 1 (translucency) set automatically. Again, test/screentext.con is updated to show off this functionality (the code there assumes that additive blending tables are loaded at blend numbers 101 -- 132). BUILD_LUNATIC.
fix 'screentext' command.
In ext. PALETTE.DAT, store log2 of last alpha table index. Handle alpha in classic.
The extended PALETTE.DAT format can now carry a trailing byte, called 'lognumalphatables'. If it is present, the engine assumes that alpha blending tables are loaded at blend indices 1 to 1<<lognumalphatables and handles rotatesprite's alpha and spriteext[].alpha accordingly. The ability to save this new byte is added to engine.lua:savePaletteDat() and the corresponding convenience functions in shadexfog.lua. Examples test/screentext.con and test/sprite_access.con are updated for demonstration purposes.
Mapster32/Lunatic: add descriptions to [;]+[F] menu entries shown in upper left.
BUILD_LUNATIC.
engine.c: for printext16(), make newlines do what you expect them to.
a.m32: for showpal==1, also show editor colors with printext16.
Mapster32/Lunatic: hook up shadexfog.save() and saveLookupDat() to [;]+[F] menu.
Mapster32/Lunatic: add functionality to connect Lua funcs to s.bar menu [;]+[F].
Hook up those from test/shadexfog.lua and some debugging ones from engine.lua.
factor out [']+[F] common code into "class" StatusBarMenu.
astub.c: clean up [']+[F] menu code, fixing one oob access w/ dyn. entries.
Rename sector[].filler member to '.fogpal'. From CON, keep the '.alignto' alias.
The overall situation is thus as follows: - in C and from Lua, that member is called 'fogpal' - In CON (both C-CON and LunaCON), it's 'fogpal' with 'alignto' being an alias; 'filler' wasn't available before, either. - In m32script, it's 'fogpal' or 'alignto' ('filler' is not available any more)
In non-lookup OpenGL modes, make sector[].filler (rename pending) override fogpal.
That is, if that member has a nonzero value, that one is taken for the color of the GL fog instead of (most of the time) sector[].floorpal. "Sky sectors", that is, skyboxes or simply parallaxed floors/ceilings are *not* handled.
a.m32: add state 'for_sprites_near_picnum'.
The state quries the user for four values: ref. picnum, target picnum, max. ldist and a lotag. Then, for all sprites i (of ref. picnum), for all sprites j (of target picnum), if ldist(i,j)<=maxldist, sprite j's lotag is changed to the provided one. Also add lunatic/test/maputil.lua, containing a similar function but allowing to customize the selection predicates of the ref. and target sprites, as well as the action to carry out.
engine.c: clean up code around wallmost(), owallmost() and grouscan().
Bump jit/bcsave.lua to the one from LuaJIT 2.0.3.
Add a second DNCOORDS/cl_showcoords mode, showing some renderer settings.
Also, extend the documentation for r_usenewshading a little. Specifically, note when the different modes were introduced. BUILD_LUNATIC.
disable normal/parallax mapping in rotatesprite.
It was plainly noticeable in the editor's tile info display, for example.
In COMMON_clearbackground() (for the OSD), disable fog.
Amend r4394: don't use full brightness (glColor() factor 1) with hightiles.
This is done by factoring out some polymer.c:polymer_getbuildmaterial() code into polymer_eligible_for_artmapping() and using that. The one in polymer.c can still determine to not use ART mapping on some ("rare"?) occasions, so it's not 100% in sync.
Minor Polymost code cleanup.
- factor out eligible_for_tileshades() - remove some rendmode 1 code - move some auto vars further down
checkdefs.sh: for DEFs, also handle 'include ...', use 'find -L' (follow symlinks).
add some shade/vis debugging functions.
engine.lua: linearizeBasePal(), mapster32 only test/shadexfog.lua: create_depth_shtab(), create_vismarker_shtab()
With r_usenewshade 3, do apply starting fog dist. eqn. for negative shade.
In 'tilefromtexture' DEF token, fix specifying -1 xoffset or yoffset.
game.c: fix last step of p->visibility approaching ud.const_visibility.
handle Ctrl-K/Ctrl-U in the OSD. BUILD_LUNATIC.
provide access to wall[].blend.
Really minor accumulated readability tweaks.
Polymer/rotatesprite: don't redundantly apply shade glColor() with ART mapping.
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.
Factor out approaching val. to target val by half-difference steps into logapproach().
Fix a case in G_MovePlayers(), where the player sprite's shade is approached toward the ceiling/floor's shade. Before, it could stop at one above or below!
Fix taking ARRAY_SIZE of PlayerSelfObituaries (not PlayerObituaries!)
Also add two static assertions checking that the obituary quotes don't go out of the MAXQUOTES bound. BUILD_LUNATIC.
Fix an unused variable warning with NETCODE=0. DONT_BUILD.
engine.c: check (non-)clipping over a floor curb of an upper TROR neighbor.
engine.c: factor out two functions from clipmove().
patch up off-by-one line numbering problem. DONT_BUILD.