Build 3883
SVN-
check reserved bits for sound and ai movement flags.
-
make mail, money, paper be affected by tile remapping, fix one printf.
Nickname SVN e nomi Git sono unificati per persona.
check reserved bits for sound and ai movement flags.
make mail, money, paper be affected by tile remapping, fix one printf.
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.)
provide CON-defined labels in read-only table require("CON.DEFS").
add projectile member .userdata and predefined label PROJ_USERDATA.
It is a 32-bit signed integer. No version bump necessary, although CON code accessing this new member will not work with earlier revisions (obviously).
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].
strip dir prefixes on file-not-found; _getpname, ud.m_player_skill.
showview and showviewunbiased.
add preliminary helper code for local gamevar saving.
fix current incarnation of gamevar saving/restoration.
properly generate references to gamevars named like Lua keywords.
free a couple of file-scope local slots by storing stuff in tables.
proper handling of dynamic remappings with weapon defaults.
That is, the gamevars named WEAPONx_* in CON will now have the remapped value if they were not overridden from CON ('gamevar' at file scope). For C-CON, everything except signaling an override from the CON parser is in place.
hook up dynamicsoundremap.
hook up qstrdim and screentext.
Also add some recent keywords to the list in con_lang.lua which I had forgotten all along.
real user per-player vars.
The previous behavior was to translate them as global gamevars, since LunaCON currently has no support for multiplayer. However, then some errors would be missed where such gamevars are accessed in no-player context (e.g. EVENT_ENTERLEVEL). On by default, disabled with -fno-playervar.
fix mistranslation of CON "else { if" to Lua "elseif".
When encountering a non-empty statement inside braces, emit "do" ... "end".
also reset per-actor gamevars from spawns originating from C.
Take care not to do it twice. Still untested though.
split 'replace' option for actor chaining flags into soft/hard.
Hard replacement reassigns the tile flags, while soft replacement bitwise ORs them, as in CON (since some flags might already have been set using commands like spritenoshade).
reset per-actor gamevars on actor spawn, untested.
implement 'definegametype', allow writing userdef.level_number.
Also, allow (implicit) actor index -1 to 'sound' like in C-CON and fix MULTIMODE gamevar definition (was 0, not 1).
remove "found `gettspr' outside of EVENT_ANIMATESPRITES" warning.
Because one may obviously use gettspr/settspr in states called from that event.
add a couple of ud members, gamevars; handle 'dynamicremap' only once.
Also, allow MAXVOLUMES+1 to first arg of 'music'.
-Wchained-loadactor option for LunaCON, clear errors on restart.
The last only in release builds.
implement dragpoint, clipmove*; fix gamearray serialization.
fix 'copy' on 64-bit archs.
LunaCON standalone: don't try default path on file-not-found for root names.
partially sync with r3803, link with lpeg.a (update to LPeg 0.12).
For pre-1.3 CONs, determining the older script version with gamestartup and/or definelevelname is not implemented.
prototypical gamevar serialization, currently very CON-centric.
partially implement {save,load}mapstate CON commands.
What is missing is saving and restoring per-player and per-actor gamevars. Also add a test CON mutator 'mapstate.con'.
fix Lua->CON line translation by recreating the line info, too.
conditionally compile out more code in savegame/gamevars.[ch].
Also, make the savegame major version 2 in the Lunatic build.
accept any number of *.lua modules on the command line.
There's no option letter for loading them, and the extension is checked case sensitively. Lua modules are loaded after CON translated to Lua. Also remove -testlua option.
back up generated LunaCON code, recreate Lua state on map entering.
remove old gamevar/serialization code.
sync rotatesprite* with CON.
make on-disk gamearray footer contain non-printable chars.
Also, allow writing userdefs[].auto_run.
Support adding custom grps to the selector in the startup window. To use this feature, create a file with a ".grpinfo" extension in your EDuke32 directory, following this template:
grpinfo { name "YourGameName" scriptname "yourgame.con" defname "yourgame.def" size yourgrpsize dependency DUKE15_CRC flags GAMEFLAG_ADDON crc yourgrpcrc } The "flags" field can also take the value "GAMEFLAG_DUKE" to define a new base game. Since this is the first commit of a new feature, certain semantics of the implementation and syntax are liable to change as necessary.
Remove 'cl_angleinterpolation' cvar because it had no effect for a while.
Also remove the two instances of commented out code, but not the respective CON structure access code.
in tsprite access, fix checking min/max/RO; tweak RESPAWN preview.
This fixes RESPAWN preview wrongly clamping the previewed tsprite z coords to [-524288 .. 524288] (x/y limits). Also, make the previewed tsprites be 33% translucent with the option of 66% translucency by setting 'showrespawn_fulltrans' to 1 in a.m32.
fix stuff after last commits; translator: clean up -f parsing code.
Also, implement 'cmenu' in LunaCON, make 'definequote' also allowed as inner command.