July 2013
-
remove DBG_ variable for _DEBUG_LUNATIC=0.
-
fix some must-fail tests and module()s without require'end_gamevars'.
-
replace 'idx >= BOUND+0ULL' idiom with 'not (idx >= 0 and idx < BOUND)'
-
General
Makefile.common: disable -Wstrict-overflow.
Show details
It didn't turn out that useful and was giving a warning with one of the preceding changes.
-
General
Polymer/ART mapping: fix formula for globalvisibility.
Show details
Also, very slightly tweak a factor toward a "brighter" (farther visible) scene overall to account for the "circular" nature of the fragment distance (as opposed to an "ortho" distance in Build).
-
General
Retire global 'lastvisinc'.
Show details
It was only ever used as upper bound to the time that a visibility change decays, but since it does that in an exponential fashion, there's really no point.
-
General
Make vis decay with time independent of FPS, treat p->visibility<0 like 0.
Show details
Now, if p->visibility differs from the constant visibility, the former converges toward the latter by three-quartering the difference each second totalclock increment (1/60th second). Negative player visibilities are not handled consistently throughout the different renderers, so make it look the same as 0 (can view to infinity).
-
properly calc start/end fog dist for r_usenewshading=2, vis=0, shade>0
Show details
So there's no "jump" from vis!=0 to vis=0 making the texture appear brighter.
-
General
Apply patch by forum user "John Jendro" fixing OS X build.
-
General
Makefile.common: make LUNATIC be set to 0 if not set from env ("?=0").
Show details
Also override LTO to 0 in Lunatic builds.
-
document previous additions and more of the existing stuff.
-
General
Clean up some player.c code.
-
rework weapondata_t __newindex handling for the sound members.
Show details
Also, in test.elua, add a currently failing must-fail test (i.e. it wrongly succeeds where it should not!).
-
revamp sector changing/updating functions of sprites.
-
General
game.c: read sprites-on-screen count for DNDEBUG at end of G_DoSpriteAnimations.
Show details
Because that function might have inserted tsprites itself, e.g. for the fake floor shadow. Also add one "spritesortcnt < MAXSPRITESONSCREEN" bound check in legacy ROR code.
-
create game Lua state just before EVENT_NEWGAME, not in G_EnterLevel().
-
General
Factor out repeated few-liner into G_NewGame_EnterLevel(), misc. cleanup.
-
add -ftrapv, -fwrapv opts, providing trapping/wrapping arith semantics.
Show details
Currently only for multiplication.
-
call G_ShowView() using the Lua C API and not through the FFI.
Show details
G_ShowView() may call events. Ouch!
-
General
In DNCOORDS display, show execution time in ms for all actors (G_MoveActors).
Show details
Smoothed using an exponential moving average... with a time constant of 1 sec if I didn't miscalculate things. Also, split BYTEVERSION_JF into Lunatic and non-Lua.
-
output timing results to CSV file, don't time unreg'd events/actors.
Show details
The base name is taken from the environment variable LUNATIC_TIMING_BASEFN, which is suffixed with .actors.csv and .events.csv.
-
add forgotted "screensound" to keyword list in con_lang.lua.
Show details
Also, fix 'spriteflags' directive.
-
Add predefined labels MAXSPRITES, MAXSTATUS and MAX_WEAPONS.
-
implement 'tossweapon'.
-
document more stuff (not too carefully), add red DRAFT marker.
-
General
Polymost "use tile shades": don't confound shade and visibility.
Show details
That is, for shade of objects, use shade tables. For visibility, use GL fog. Mixing these two does not produce satisfactory results in areas where both shade and visibility darkening are high, such as around the E1L1 restroom.
-
handle system gamearrays for some array commands.
Show details
- 'copy' may have them as source, 'getarraysize' works fine - 'setarray' and 'resizearray' are obviously forbidden - 'readarrayfromfile' and 'writearrayfromfile' is not implemented for them (use case?) Also, in the Makefile: don't use realpath on directories. It may give an empty string.
-
swap first and second arg of con.spawn().
-
slight Makefile tweak for Windows preparation.
Show details
Add doc/how_to_build_lunatic.txt and doc/lpeg-lunatic.patch.
-
retire per-sprite tsprite access for per-tile animation callback reg.
Show details
Don't yet make this official API though, since there are unresolved issues with newly created tsprites potentially being fed back to the animation loop. Add xmath.angvec(), xmath.bangvec(), tspr:set_sectnum(), tspr:setpos().
-
General
Remove one instance of duplicate code lines and now unused TSPR_MIRROR.
-
General
Rename the external 'gethitickms()' to 'gethiticks()'.
-
General
In Windows and SDL layers, rename *hitick* to *u64tick*.
-
various unrelated changes and more documentation.
Show details
- check map-text version on load - LunaCON: don't allow (back)slash as identifier char - LunaCON stand-alone: don't resort to default directory for root file names - document non-local control flow functions and for LunaCON, ambigious lexical elements
-
partially fix LTO=1 build with GCC.
Show details
Having to tag these few variables and functions as ATTRIBUTE((used)) seems sensible, but what follows is just strange. OSD_Printf? headspritesect?
-
make g_playerWeapon an array of a corresponding bcarray type.
-
document the additions of the preceding commits.
-
various changes.
Show details
- swap 2d and 3rd args in xmath.rotate() -- now rotate(point, ang, pivot) - add vec3 method 'rotate', calling xmath.rotate - store game tic count in savegames
-
many changes, motivated by writing test "helixspawner".
Show details
- some renames of functions/methods - con.actorvar: explicitly allow (for now) boolean and number values - added gv.gametic, player.holdskey(), player.all(), actor.check*()/hit*(), gv.rendmode, gv.REND, <bitint>:mask(), spr:getheightofs() - make read of nil var in "finalized" (live) module produce error, too - add test/helixspawner.lua
-
on palfrom from CON or C, set palsfade{speed,next} and regard prio.
-
General
Polymodes/Lunatic: don't do y panning "correction" for nonpow2 ysize tiles.
-
document con.action/move/ai and actor methods.
Show details
Also, in some movement functions, replace e.g. (vel*TICSPERFRAME)>>2 with vel.
-
various tweaks and fixes.
Show details
- fix getv movflags handling in VM_Move() - add actor.fall() - LunaCON: sanity-check some action members
June 2013
-
in con.action and con.move, allow mixed number/string key tables.
Show details
E.g. con.action{0, 4, delay=20}; for convenience, viewtype and incval are initialized to 1 (not 0) here.
-
retire an actor's sprite[].hitag/lotag for new actor[] members.
-
General
Retire actor[].shootzvel, as it was only ever used in local scope.
Show details
That is, its value was only referenced during the duration of a function call that had previously set it. It was also never accessible from CON.
-
General
Actor-related code cleanup part 2: give actor t_data[] indexes names.
Show details
Using macros like AC_COUNT(t). Clean up related code: - comment out the dead condition noted in the previous commit - Lunatic: use get_count() instead of get_t_data(0) in one place, rename to _get_t_data(), i.e. make that method internal
-
General
Actor-related code cleanup part 1: rename some locals, expose one dead condition
Show details
... due to making hi/lotag unsigned in r3174. This commit keeps the compiler warning, the next one will remove it.
-
add actor methods allowing overriding action delay and move hvel/vvel.
Show details
Add testing code for an example actor 1275 (newspaper) to test.elua.
-
require'CON.ACTION' etc. gets composites from CON; add actor.MOVFLAGS.