Dicembre 2013
-
Generale
Do not consider system gamearrays for updating from demos.
Mostra dettagli
This generally fixes demo playback. Before, tilesizx[]/tilesizy[] were written into twice as many bytes as needed. Now, don't do that at all.
-
Generale
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().
-
Generale
Fix building stand-alone libcache1d.so.
-
Generale
defs.c: in check_tile(), pass 'tile' by value.
-
Generale
Guard a sprite/actor access with sector[].hitag as index from OOB.
Mostra dettagli
Unlikely but possible for rogue CON code.
Novembre 2013
-
document a couple of player members, especially some 'bool' ones.
Mostra dettagli
Important because in Lua, a value of zero yields true in a boolean context. BUILD_LUNATIC.
-
Generale
multivoc.c: use a local variable instead of a file-scope one used locally.
-
Generale
a-c.c: Make vector extensions also be compiled with Clang.
Mostra dettagli
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).
-
Generale
In P_HandleSharedKeys(), clean up weapon index bound checking.
Mostra dettagli
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().
-
Generale
Don't assign result of A_PlaySound() to p->scream_voice if the former is >127.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
In fullscreen_tint_gl() disable GL_FOG, preventing nasty flickering.
Mostra dettagli
Which was especially noticeable in the Lunatic build. Also, use glPushAttrib/glPopAttrib there.
-
Generale
Give rotatesprite 'orientation' bits enum names, too.
-
Generale
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.
Mostra dettagli
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).
-
Generale
A couple of trivial changes.
-
implement horiz. tex panning for sprites (spriteext[].xpanning).
Mostra dettagli
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.
-
Generale
a.m32: add [']+[F] menu function setting xvel=1 on all sel. wall/floor sprites.
Mostra dettagli
For sanitizing underwater sections, see r4166. Also, don't print "Menu function executed successfully" when the function printed something itself.
-
Generale
Amend r4142: make e.g. 'include a' (names shorter 4 chars) append ".m32".
Mostra dettagli
DONT_BUILD.
-
Generale
sdlmusic.c: disable FORK_EXEC_MIDI.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
lunatic/util/foreachmap.lua: don't expand .xxx after ']'.
Mostra dettagli
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.
Mostra dettagli
By detecting them in the SDL_KEYDOWN events. This list is getting a bit ridiculous...
-
Generale
a-c.c: use GCC vector extensions only on 64-bit targets.
Mostra dettagli
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).
-
Generale
a-c.c: prevent stray lines on bottom of sprites by saturating v. tex coords.
Mostra dettagli
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.
-
Generale
a-c.c: in {v,mv}lineasm4, use vector types for vplc/vinc with GCC >=4.7.
Mostra dettagli
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.
Mostra dettagli
Let's BUILD_LUNATIC to see whether it still works...
-
Generale
In C_SetCfgName, don't use unsafe string functions with unknown-length input.
-
implement 'setcfgname'.
Mostra dettagli
Factor out a block of code into C_SetCfgName() and use that from lunacon.lua.
-
on 'starttrack' with null music, issue a 'soft' error.
Mostra dettagli
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.
Mostra dettagli
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.
Mostra dettagli
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().
-
Generale
textfont.c: make TAB character display blank.
Mostra dettagli
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.
Mostra dettagli
That is, everything that would be possible via scripting.
-
Generale
For demos, make savehead.savename[] carry the SVN revision number.
Mostra dettagli
Also, shorten "FAILED STARTING DEMO RECORDING." message so that it fits on the screen. DONT_BUILD.
-
Generale
In exprs like "Bmemcpy(&p->pos.x, &sprite[i].x, sizeof(vec3_t))", drop the ".x".
-
Generale
Sweeping modifications to synthesis and the package directory structure so that every potential binary is in its own package.
Mostra dettagli
While we're rearranging files, ensure all SVN mime-types are set correctly.
-
Generale
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.
Mostra dettagli
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.
-
Generale
RegCloseKey when we are done with RegOpenKeyEx.
-
Generale
Update SDL2 to 2.0.1.