Build 4023
SVN-
a couple of trivial changes.
SVN handles and Git names are merged into one person.
a couple of trivial changes.
sync defs.ilua's user_defs with r3993, adding member MasterVolume.
add LuaJIT's jit/bcsave.lua and headers for synthesis build preparation.
prepare Makefiles for synthesis build.
- libs and headers are expected in platform/Windows/* (not there yet) - prefix Lua #includes with luajit-2.0/ - build bytecode objects with absolute path name (used for debug info)
disable printing debug messages for the preview build. BUILD_LUNATIC.
sanity-check some arguments passed to con.action().
Add pre-compiled LPeg 0.12 for 32-bit Windows (MinGW).
rename test.elua to test.lua.
The old extension is an artifact from when I was thought that extensions should label whether a Lunatic module is to be used in internal/external contexts. Also, change test.lua slightly and commit a little updated documentation.
protect global environment.
remove DBG_ variable for _DEBUG_LUNATIC=0.
fix some must-fail tests and module()s without require'end_gamevars'.
document previous additions and more of the existing stuff.
rework weapondata_t __newindex handling for the sound members.
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.
create game Lua state just before EVENT_NEWGAME, not in G_EnterLevel().
add -ftrapv, -fwrapv opts, providing trapping/wrapping arith semantics.
Currently only for multiplication.
call G_ShowView() using the Lua C API and not through the FFI.
G_ShowView() may call events. Ouch!
document more stuff (not too carefully), add red DRAFT marker.
handle system gamearrays for some array commands.
- '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.
Add doc/how_to_build_lunatic.txt and doc/lpeg-lunatic.patch.
retire per-sprite tsprite access for per-tile animation callback reg.
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().
various unrelated changes and more documentation.
- 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.
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.
- 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".
- 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
in con.action and con.move, allow mixed number/string key tables.
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.
add actor methods allowing overriding action delay and move hvel/vvel.
Add testing code for an example actor 1275 (newspaper) to test.elua.
require'CON.ACTION' etc. gets composites from CON; add actor.MOVFLAGS.
don't register con.action/move/ai by name, make these return a cdata.
merge updatesector and ~breadth, making the former accept a flag.
retire 'geom' module, putting vector types into xmath.
allow serialization of tables in more general cases.
begin writing LunaCON documentation.
don't pass 0x80000000 to int32_t arg, document xmath functions.
document vector types, add forgotten warning icon.
various minor tweaks and fixes.
- Pass original module name (dot=dirsep) to module via our require() - geom.lua: fix some operations using the vector type constructor - geom.lua: provide constructor for ivec3, useable like vec3
player method fadecol(), an improved palfrom.
Also, an external 'minitext' with optional shade and pal. args and documentation for ps:padecol().
major overhaul of gamevar serialization for savegames.
- Handle local gamevars. - Restore gamevars from require('end_gamevars').
fix random angle movflag, Windows build; write more documentation.
write more documentation, handle randomangle movflag in a:set_move().
check reserved bits for sound and ai movement flags.
make mail, money, paper be affected by tile remapping, fix one printf.
clean up 'geom' module, make walls readable with pseudo-member 'z'.
rename spriteext[].*off->mdoff.*, actor[].actorstayput->stayputsect.
make gameactor and gameevent be "table-called" functions.
implement qgetsysstr/STR_VOLUMENAME.
Propagate potentially remapped CON defines to the control module.
(This is the module that implements much of the "hard-coded" functionality formerly on the C side.)
commit preliminary, unfinished documentation written in AsciiDoc.
Don't (yet?) commit the generated HTML.
make require() translate dots to dir separators, make those illegal.
However, from the command line, reverse the situation: dirseps must be passed as '/', dots are forbidden (except in the trailing ".lua").
bound-check defineprojectile tile/sound members.
Also from Lunatic, make these members read-only and provide methods that allow setting them to either -1 or a number in [0..MAX{TILES,SOUNDS}-1].
rename bitint members to *bits instead of *x.
strip dir prefixes on file-not-found; _getpname, ud.m_player_skill.
showview and showviewunbiased.
keep status number symbols in actor.STAT instead of gv.STAT_*.
add preliminary helper code for local gamevar saving.
fix current incarnation of gamevar saving/restoration.
prettify listglobals.sh output.
properly generate references to gamevars named like Lua keywords.
free a couple of file-scope local slots by storing stuff in tables.
tweak sector.STAT.* and other names a little.