December 2013
-
General
Do not consider system gamearrays for updating from demos.
Show details
This generally fixes demo playback. Before, tilesizx[]/tilesizy[] were written into twice as many bytes as needed. Now, don't do that at all.
-
General
Fix mouse buttons 4 and 5 on SDL2/Windows.
-
in fs.listpath() use FIND_NOCURDIR. Also document that function.
-
add FIND_NOCURDIR option to klistpath().
-
General
Fix building stand-alone libcache1d.so.
-
General
defs.c: in check_tile(), pass 'tile' by value.
-
General
Guard a sprite/actor access with sector[].hitag as index from OOB.
Show details
Unlikely but possible for rogue CON code.
November 2013
-
document a couple of player members, especially some 'bool' ones.
Show details
Important because in Lua, a value of zero yields true in a boolean context. BUILD_LUNATIC.
-
General
multivoc.c: use a local variable instead of a file-scope one used locally.
-
General
a-c.c: Make vector extensions also be compiled with Clang.
Show details
I was checking for GCC >= 4.7, while Clangs pretends to be GCC 4.2. Use a feature test macro instead. The comment I made in r4161 regarding GCC vs. Clang code was wrong. Now, Clang generates slightly faster code for these cases (solid and masked 4-pixel wide vlines).
-
General
In P_HandleSharedKeys(), clean up weapon index bound checking.
Show details
In particular, (int32_t)j != -1 is replaced by (uint32_t)j < MAX_WEAPONS to prevent a value >= MAX_WEAPONS to be assigned to p->wantweaponfire (it's used as a weapon index in P_CheckWeapon().
-
General
Don't assign result of A_PlaySound() to p->scream_voice if the former is >127.
Show details
Because p->scream_voice is an int8_t. This is an unlikely situation (126 voices ought to be playing simultaneously while starting the "scream" sound), but still...
-
disable some player members, tweak decls of others.
Show details
The ones disabled are because they were found to not be used in any mod I tested. Exposing members directly is rarely good API. - bool toggle_key_flag -> const uint8_t ... (because value 2 is used) - make scream_voice, cheat_phase read-only
-
slightly tweak the event/actor times printout when exiting.
-
fix assignment to projectile sound/bsound/isound.
-
General
In fullscreen_tint_gl() disable GL_FOG, preventing nasty flickering.
Show details
Which was especially noticeable in the Lunatic build. Also, use glPushAttrib/glPopAttrib there.
-
General
Give rotatesprite 'orientation' bits enum names, too.
-
General
Use named enum constants for the HUD flags instead of literal numbers.
-
bump the allowed range for 'r_pr_hudangadd' to [-1024 .. 1024].
-
handle HUD model 'fov' DEF token.
Show details
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).
-
General
A couple of trivial changes.
-
implement horiz. tex panning for sprites (spriteext[].xpanning).
Show details
Known as getactor/sprite[].xpanning from CON, values are 0-255. It should be assumed that this is only valid for wall-aligned sprites (currently, face sprites also pan). A test is provided in lunatic/test/animatesprites.con. It should be run in E1L2 and only with the Lunatic build.
-
General
a.m32: add [']+[F] menu function setting xvel=1 on all sel. wall/floor sprites.
Show details
For sanitizing underwater sections, see r4166. Also, don't print "Menu function executed successfully" when the function printed something itself.
-
General
Amend r4142: make e.g. 'include a' (names shorter 4 chars) append ".m32".
Show details
DONT_BUILD.
-
General
sdlmusic.c: disable FORK_EXEC_MIDI.
Show details
Also, if it were to be reenabled again, use execv() instead of execvp(), i.e. don't look up $PATH for the executable.
-
make underwater blocking floor sprites w/ xvel 1 NOT act like sprite bridge.
Show details
Likewise for blocking wall sprites. This makes it possible to construct underwater sections containing complex spritework without losing the "underwater-ness" when over such sprites, in a backward-compatible way. Actually, the check is for bit 1 being set, but all other bits should be considered reserved.
-
General
lunatic/util/foreachmap.lua: don't expand .xxx after ']'.
Show details
Add an example searching for all maps containing blocking floor-aligned sprites in underwater sectors.
-
show a message when setting the initial position with SCROLL LOCK.
-
fix Ctrl-F/Ctrl-G as "key FIFO" keys, used in Mapster32.
Show details
By detecting them in the SDL_KEYDOWN events. This list is getting a bit ridiculous...
-
General
a-c.c: use GCC vector extensions only on 64-bit targets.
Show details
Compiling a 32-bit NOASM build resulted in code containing a MOVAPS instruction that accessed a memory location not aligned to 16 bytes (MinGW, GCC 4.8).
-
General
a-c.c: prevent stray lines on bottom of sprites by saturating v. tex coords.
Show details
The functions mvlineasm1, mvlineasm4 and tvlineasm2 can now be set to clamp the vertical texture coordinate (vplc), preventing the unsightly stray lines on the bottom of non-y-flipped sprites. (The first part of this effort, r3483, handled their top). However, this is only enabled for the mvlineasm ones: the vectorized variants suffered almost no slowdown (even though a PADDUSD SSE instruction would be a nice thing to have), while it was pretty significant for the sequential translucent ones. Summarizing, this leaves two cases where stray lines may appear in the non-ASM build (the saturation is NYI for a.nasm): - at the bottom of y-flipped sprites - at the bottom of translucent sprites (can be toggled by #define) Another observation is that recent GCC generates much faster code for this stuff than Clang from SVN.
-
General
a-c.c: in {v,mv}lineasm4, use vector types for vplc/vinc with GCC >=4.7.
Show details
For a full 1680x1050 screen drawing a solid/masked wall, the FPS increases from 118 to 133 and from 114 to 116 (respectively) for me. Guarded by the macro USE_VECTOR_EXT in the source.
-
add two names forgotten for dynsymlist.
Show details
Let's BUILD_LUNATIC to see whether it still works...
-
General
In C_SetCfgName, don't use unsafe string functions with unknown-length input.
-
implement 'setcfgname'.
Show details
Factor out a block of code into C_SetCfgName() and use that from lunacon.lua.
-
on 'starttrack' with null music, issue a 'soft' error.
Show details
That is, one that doesn't break the control flow.
-
fix ported A_FurthestVisiblePoint().
-
implement NORESET flag for gamevars.
-
on non-Windows, make textmode=0 the default, just like in Windows.
Show details
This fixes some init and update anomalies: before, - init would always be the graphical mode (0), but writing merely "osdtextmode" would switch it - osdtextmode would not get saved to the cfg
-
retire OSD_GetFmt(), OSD_GetFmtPtr() and OSD_GetTextPtr() functions.
Show details
These were too much "looking into the implementation of a module" for my taste, hence OSD_GetShadePal() earlier.
-
make plain display (osdtextmode=1) colorized, too.
-
factor out getting sh/pal using format+text buffers into OSD_GetShadePal().
-
General
textfont.c: make TAB character display blank.
Show details
This renders tweaks like r4122 unnecessary. Also, note a "bug" with the program generating that C code.
-
add 'lua' OSD command, permitting to execute arbitrary code.
Show details
That is, everything that would be possible via scripting.
-
General
For demos, make savehead.savename[] carry the SVN revision number.
Show details
Also, shorten "FAILED STARTING DEMO RECORDING." message so that it fits on the screen. DONT_BUILD.
-
General
In exprs like "Bmemcpy(&p->pos.x, &sprite[i].x, sizeof(vec3_t))", drop the ".x".
-
General
Sweeping modifications to synthesis and the package directory structure so that every potential binary is in its own package.
Show details
While we're rearranging files, ensure all SVN mime-types are set correctly.
-
General
Allow -g, -x, -h, -j, and for the game, -d, to take their file name after a space. This allows quotes to be used with them properly.
Show details
I updated the help windows to prefer these variants because they are superior to the -xSquished versions. Also, factor out the command-line processing code for the above, plus con/def modules and clipmaps.
-
General
RegCloseKey when we are done with RegOpenKeyEx.
-
General
Update SDL2 to 2.0.1.