Build 4482
SVN-
General
sdlayer.c: for Windows, switch keyboard layout to/from US on init/uninit.
Show details
Taking over the code from winlayer.c.
SVN handles and Git names are merged into one person.
sdlayer.c: for Windows, switch keyboard layout to/from US on init/uninit.
Taking over the code from winlayer.c.
Rip out S_FindMusicSFX() from A_CallSound() and use in SE6/14 on-spawn init.
This makes the subway sound not played once on map initialization.
shadexfog.lua: in menu, move creation of debugging shade tables below DEBUG line.
BUILD_LUNATIC.
lunatic/test/shadexfog.lua: add function create_brightpass_trans().
Also hook it up in the [;]+[F] menu.
game.c: in A_Spawn(), protect CSTAT_SPRITE_NOSHADE of spawned MASKWALL* sprites.
actors.c: fix a A_CheckSpriteFlags() call for zombie actor to STANDABLE change.
This only affects zombie actors in a sector with a parallaxed ceiling. If they have SFLAG_NOSHADE clear, their shade is taken from the ceiling upon changing the statnum. Previously, A_CheckSpriteFlags() received a value that could only be 0 or 1 for the sprite index (typo).
sdlayer.c: fix compiling wm_ynbox() for Linux/WITHOUT_GTK=1.
add read-only variable 'Numsprites', r/w userdef member .mouseaiming.
scan label names according to stricter LunaCON rules instead of char blacklist.
These ones: http://lunatic.eduke32.com/lunacon.html#_ambiguous_lexical_elements Seriously, defining a token kind by excluding certain characters (instead of allowing a given set) is really, really broken.
allow '.' as non-first identifer character.
in linking tag determination, handle 'on' switch picnums (+1).
in e.g. F5 "next free tag" display, note object w/ greatest tag.
don't read some variables from mapster32.cfg redundant since r4344.
Mostly, these are rendering-related variables. We keep *writing* them to mapster32.cfg so that older Mapster32 versions can be used side-by-side for now.
src/config.c: fix what is apparently a copy-paste typo in readconfig().
In non-lookup GL modes, if fog is due to fogpal, make fog params indep. of shade.
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.
engine.c: instead of fogpal post-tweaks (last 2 commits), normalize by numshades-1.
That is, for every for palette (now, even ones created by the user) the last shade is the (or rather, a color close to the) full fog color by construction. In loadpalette(), reject a PALETTE.DAT with only one shade level.
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.