Build 4455
SVN-
fix fog/visibility on ceilings.
SVN handles and Git names are merged into one person.
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
Fix crash with GTK+SDL2 on startup and use windowed fullscreen instead of
exclusive fullscreen.
sdlayer.c: fix grabmouse_low() with DEBUGGINGAIDS!=0 builds. DONT_BUILD.
User-configurable security monitor refresh delay (r_camrefreshdelay)
This seems to need SDL_MAIN_HANDLED in some configurations... not sure why yet.
Update to ENet git commit 518144338dd2d55192446e5ef37bc2eb97fe9bc8
Move DO_FREE_AND_NULL macro to compat.h
Simplify mutex wrapper into simply differentiating between RENDERTYPEWIN (which is deprecated...) and everything else, which uses SDL mutexes.
shadexfog.lua: in "Save lookups DAT file" entry, allow to save additional lookups.
BUILD_LUNATIC.
(better) document sector[].visibility, sprite[].clipdist, player[].weapon.
More Android. DONT_BUILD.
OSD scaling fixes (mostly)
Android code updates, pay no attention. DONT_BUILD.
Partial Android support cleanup. I actually have no idea if this even compiles ;)
Clean up sdlayer a bit
Clamp macros for floats
Hack around HOM when passing through a masked wall, but only on Android because the solution isn't very good.
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.
Add "osdscale", allowing the console text to be resized anywhere from 1-4x. It's a float because that seemed more useful to Android, where this will probably be hooked up to a slider (its intended usage).
Credits menu update for Android
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.
Fix my mangled rev.h commit from a while back. I guess I forgot to revert it because it didn't break synthesis. :)
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.
SDL 2.0.3 (plus a MinGW build fix that didn't make 2.0.3) for Windows builds.
Tidy menu code in advance of complete redesign.
This replaces all remaining magic numbers with enumerations thereof. It also tweaks the following, even though most will be irrelevant post-rewrite: -Remove unused menus -Properly center the nuke icon in Duke and the star icon in NAM -Fix the multiplayer macro editing menu: --Position the currently editing quote its proper spot instead of beneath the first row --Don't highlight the first quote while editing a different one --Select the quote just edited when finished editing instead of the first one -Fix the cursor of a centered text input field (such as the adult mode password) -Implement proper shade glowing of selected menu entries in Joystick Settings, Joystick Axes, and Joystick Dead Zones -Shift the the Joystick Axes menu down to avoid overlapping the title bar -Change the title of mouse digital axis assignment "Digital Axes Setup" instead of "Advanced Mouse" -Fix the behavior of the Next button in Joystick Dead Zones to not act like a scrollbar
Revert rev.h.