Build 4292
SVN-
implement 'precache'.
SVN handles and Git names are merged into one person.
implement 'precache'.
add option -ferror-nonlocal-userdef, on by default.
BUILD_LUNATIC.
accept empty square brackets for {g,s}etuserdef optional index part.
Fix compilation of C++ build, but not starting up yet.
BUILD_LUNATIC.
error on userdefs accesses with non-local current player.
Add lunatic/test/getuserdef.con.
add codegen option -fbad-getactorvar-use-pli for C-CON compatibility.
Also, improve -Wnumber-conversion warning by printing the resulting number. BUILD_LUNATIC.
document engine.*shadetab() functions. DONT_BUILD.
make gv.current{Level,Episode} one-based and document them.
Also, in LunaCON, make player .palette member read-only. BUILD_LUNATIC.
for readgamevar, if ud.config.scripthandle < 0, keep value, don't err.
remap16 method for engine.shadetab, 2nd attempt at recreating orig. one.
BUILD_LUNATIC.
document fundamentals of shade tables, but not 'engine' API yet.
add 'engine' module, currently allowing to create custom shade tables.
Available in the game and editor. Provide test/shadexfog.lua, containing a function to creating a set of 32 shade tables corresponding to different shades of the same fog palookup table, together with some tests and convenience functions. Also, - Add gv.LUNATIC_CLIENT{,_EDUKE32,_MAPSTER32} - Add LUNATIC_FIRST_TIME in the global env for the game - defs_m32.lua: add reload() convenience function - Failed attempt at recreating the base shade table. It is NOT a linear ramp of the base palette colors to (0,0,0). That is, it's not created by build/util/transpal.exe!
fix setup under Mapster32, remove a few obsolete lines in defs_common.lua.
run EVENT_INIT after initial Lua state creation.
allow access to sprite[].yvel through set_yvel() member, document.
BUILD_LUNATIC.
add example toggling forcefield wall to test.lua.
swap con.insetsprite's 4th and 5th positional arguments.
expose player[].gotweapon, document it and *_weapon() methods.
don't allow starting demo recording, since gamevar diffing is NYI.
error on invalid static data read like 'sprite.picnum'.
add ceiling-or-floor method set_picnum(). BUILD_LUNATIC.
fix a couple of spelling mistakes in the doc, found using Emacs ispell.
expose "con.shoot(tilenum, i [, zvel])". Document and add example.
add "for s, what in sectorsofbunch(bunchnum, gv.BOTH_CF)" iterator.
statically check some member assignments with literal numbers.
And issue warnings whenever the assignment would fail (error) at game time.
in fs.listpath() use FIND_NOCURDIR. Also document that function.
document a couple of player members, especially some 'bool' ones.
Important because in Lua, a value of zero yields true in a boolean context. BUILD_LUNATIC.
disable some player members, tweak decls of others.
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.
add two names forgotten for dynsymlist.
Let's BUILD_LUNATIC to see whether it still works...
implement 'setcfgname'.
Factor out a block of code into C_SetCfgName() and use that from lunacon.lua.
on 'starttrack' with null music, issue a 'soft' error.
That is, one that doesn't break the control flow.
fix ported A_FurthestVisiblePoint().
implement NORESET flag for gamevars.
add 'lua' OSD command, permitting to execute arbitrary code.
That is, everything that would be possible via scripting.
very primitive gamevar handling logic for {save,load}mapstate.
in {save,load}mapstate, warn that saving/restoring gamevars is NYI.
implement NODEFAULT flag (1024) as session variables.
This is in contrast to C-CON, where the implications are not clearly obvious. See this discussion/monologue: http://forums.duke4.net/topic/955-eduke32-scripting/page__view__findpost__p__159613 Currently not implemented for session gamevars: - per-player, will be made a global one instead - per-actor, will be made a plain per-actor one instead DONT_BUILD.
add necessary identifier-is-not-gamevar check.