helixhorned
8d47e476c7
LunaCON: for readgamevar, if ud.config.scripthandle < 0, keep value, don't err.
...
git-svn-id: https://svn.eduke32.com/eduke32@4256 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:54:34 +00:00
helixhorned
9e968b0093
Lunatic: remap16 method for engine.shadetab, 2nd attempt at recreating orig. one.
...
BUILD_LUNATIC.
git-svn-id: https://svn.eduke32.com/eduke32@4242 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-05 14:06:14 +00:00
helixhorned
a9fb18b228
Lunatic: document fundamentals of shade tables, but not 'engine' API yet.
...
git-svn-id: https://svn.eduke32.com/eduke32@4239 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-02 00:08:39 +00:00
helixhorned
e71df2b6e3
Lunatic/m32: make Mapster23 actually start stand-alone, oops.
...
git-svn-id: https://svn.eduke32.com/eduke32@4238 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-02 00:08:36 +00:00
helixhorned
49de6d79b3
Lunatic/m32: include the Lua bytecode into the binary, exit if setup failed.
...
git-svn-id: https://svn.eduke32.com/eduke32@4237 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:52:01 +00:00
helixhorned
13c125db02
Lunatic: 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!
git-svn-id: https://svn.eduke32.com/eduke32@4236 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:52:00 +00:00
helixhorned
75f5449e9a
build.lua: add a flag toggling multiplication of the color components by 4.
...
git-svn-id: https://svn.eduke32.com/eduke32@4235 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:51:57 +00:00
helixhorned
2174b17901
Lunatic: fix setup under Mapster32, remove a few obsolete lines in defs_common.lua.
...
git-svn-id: https://svn.eduke32.com/eduke32@4234 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:51:55 +00:00
helixhorned
70d84cd75b
Lunatic: run EVENT_INIT after initial Lua state creation.
...
git-svn-id: https://svn.eduke32.com/eduke32@4231 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-31 11:51:50 +00:00
helixhorned
148badc32a
Lunatic: allow access to sprite[].yvel through set_yvel() member, document.
...
BUILD_LUNATIC.
git-svn-id: https://svn.eduke32.com/eduke32@4230 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-28 17:04:39 +00:00
helixhorned
9b045deb4b
Make a couple of player functions take player indices instead of DukePlayer_t *.
...
git-svn-id: https://svn.eduke32.com/eduke32@4227 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-28 17:04:31 +00:00
helixhorned
efdd31d5a9
Guard retrieval of player index (.yvel) from APLAYER sprite.
...
It is unacceptable that yvel is on one hand modifiable without restriction from
scripting, but can be used as an array index without prior bound check in the C
code. Because that member has an overloaded meaning and is also used for
innocuous purposes such as the green color intensity of an SE light, it's
infeasible to restrict access from scripting. Consequently, we must add bound
checks on the C side. This is the first part of the effort to make .yvel safe,
adding two functions P_Get() and P_GetP(). There are a couple of other uses as
some kind of index.
git-svn-id: https://svn.eduke32.com/eduke32@4226 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-28 17:04:27 +00:00
helixhorned
2442b107f7
Lunatic: add example toggling forcefield wall to test.lua.
...
git-svn-id: https://svn.eduke32.com/eduke32@4224 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-28 17:04:18 +00:00
helixhorned
d26ae58627
Rename 'camsprite' to 'g_curViewscreen', other related cleanup.
...
git-svn-id: https://svn.eduke32.com/eduke32@4220 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-26 19:45:12 +00:00
helixhorned
d3665719d9
Add helper utility lunatic/util/cmpart.lua.
...
git-svn-id: https://svn.eduke32.com/eduke32@4219 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-26 19:45:09 +00:00
helixhorned
2900144e22
Lunatic: swap con.insetsprite's 4th and 5th positional arguments.
...
git-svn-id: https://svn.eduke32.com/eduke32@4218 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-26 19:45:06 +00:00
helixhorned
3cef7cccc0
Lunatic: expose player[].gotweapon, document it and *_weapon() methods.
...
git-svn-id: https://svn.eduke32.com/eduke32@4217 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-26 19:45:03 +00:00
helixhorned
a4510e35a1
Lunatic: error on invalid static data read like 'sprite.picnum'.
...
git-svn-id: https://svn.eduke32.com/eduke32@4209 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-24 09:44:19 +00:00
helixhorned
02e0929ca7
Pass RETURN to EVENT_DAMAGEHPLANE in the 'dist' arg to allow chained callbacks.
...
git-svn-id: https://svn.eduke32.com/eduke32@4208 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-24 09:44:14 +00:00
helixhorned
fa6746867c
Lunatic: add ceiling-or-floor method set_picnum(). BUILD_LUNATIC.
...
git-svn-id: https://svn.eduke32.com/eduke32@4207 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-20 18:31:35 +00:00
helixhorned
0c69779b98
Scripting: Add EVENT_DAMAGEHPLANE and document it in Lunatic doc Appendix B.
...
Also add test/damagehplane.lua with these demonstrations:
- custom breakable ceilings
- breakable TROR glass
git-svn-id: https://svn.eduke32.com/eduke32@4206 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-20 18:31:33 +00:00
helixhorned
99894812d8
Minor no-functionality-changing tweaks.
...
- factor out: G_WallSpriteDist()
- factor out: Proj_MaybeDamageCF() and Proj_MaybeDamageCF2()
in preparation for the next commit
- Make PROJ_DECAYVELOCITY macro take an arg for readability's sake
git-svn-id: https://svn.eduke32.com/eduke32@4204 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-20 18:31:26 +00:00
helixhorned
dd52afbf1b
Lunatic: fix a couple of spelling mistakes in the doc, found using Emacs ispell.
...
git-svn-id: https://svn.eduke32.com/eduke32@4202 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-20 18:31:22 +00:00
helixhorned
25108494d1
Lunatic: expose "con.shoot(tilenum, i [, zvel])". Document and add example.
...
git-svn-id: https://svn.eduke32.com/eduke32@4201 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-20 18:31:20 +00:00
helixhorned
9e4f10f3e1
Lunatic: add "for s, what in sectorsofbunch(bunchnum, gv.BOTH_CF)" iterator.
...
git-svn-id: https://svn.eduke32.com/eduke32@4198 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-12 19:22:14 +00:00
helixhorned
44351528db
LunaCON: statically check some member assignments with literal numbers.
...
And issue warnings whenever the assignment would fail (error) at game time.
git-svn-id: https://svn.eduke32.com/eduke32@4195 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-11 21:23:42 +00:00
helixhorned
1542596290
Lunatic: in fs.listpath() use FIND_NOCURDIR. Also document that function.
...
git-svn-id: https://svn.eduke32.com/eduke32@4189 1a8010ca-5511-0410-912e-c29ae57300e0
2013-12-01 18:28:02 +00:00
helixhorned
ce68b4ab0f
Lunatic: 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.
git-svn-id: https://svn.eduke32.com/eduke32@4184 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-28 21:18:11 +00:00
helixhorned
b6efd5e57e
LunaCON: 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
git-svn-id: https://svn.eduke32.com/eduke32@4179 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-28 21:18:02 +00:00
helixhorned
f26663a9dc
Lunatic: slightly tweak the event/actor times printout when exiting.
...
git-svn-id: https://svn.eduke32.com/eduke32@4178 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-28 21:18:00 +00:00
helixhorned
cc1574464b
LunaCON: fix assignment to projectile sound/bsound/isound.
...
git-svn-id: https://svn.eduke32.com/eduke32@4177 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-28 21:17:56 +00:00
helixhorned
fd978ced59
Classic: implement horiz. tex panning for sprites (spriteext[].xpanning).
...
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.
git-svn-id: https://svn.eduke32.com/eduke32@4170 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-22 19:26:21 +00:00
helixhorned
9ceae0d892
lunatic/util/foreachmap.lua: don't expand .xxx after ']'.
...
Add an example searching for all maps containing blocking floor-aligned
sprites in underwater sectors.
git-svn-id: https://svn.eduke32.com/eduke32@4165 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-16 18:47:19 +00:00
helixhorned
4dcd167c7a
LunaCON: for gamevar-already-defined warnings/errors, show old location.
...
Synthesis, BUILD_LUNATIC! Got the build? Good synthesis.
git-svn-id: https://svn.eduke32.com/eduke32@4153 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-12 21:03:23 +00:00
helixhorned
25081fb459
LunaCON: In lunacon.lua, make room for a couple more locals at file scope.
...
Also, really reset all label-related tables in reset.labels().
git-svn-id: https://svn.eduke32.com/eduke32@4152 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-12 21:03:20 +00:00
helixhorned
82fb8a0724
LunaCON: for *-already-defined style warnings/errors, show location of old def.
...
git-svn-id: https://svn.eduke32.com/eduke32@4151 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-12 21:03:18 +00:00
helixhorned
987eb858d3
LunaCON: add a couple of userdefs members, fix tsprite's sectnum for writing.
...
git-svn-id: https://svn.eduke32.com/eduke32@4150 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-12 21:03:16 +00:00
helixhorned
78d30bee9b
LunaCON: implement 'ssp' command.
...
git-svn-id: https://svn.eduke32.com/eduke32@4149 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-12 21:03:11 +00:00
helixhorned
42f66ce9ca
Lunatic: add 'fs' module containing 'listpath' function, 'd' in global env.
...
See the updated documentation for (ATM sparse) details.
git-svn-id: https://svn.eduke32.com/eduke32@4147 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-11 16:48:23 +00:00
helixhorned
8029aceaa4
CON: add sprite pseudo-member 'isvalid', getting 1 if the sprite is valid.
...
And 0 otherwise. Before accessing a sprite that is not not known to be
definitely valid (e.g. a loop over all sprites from 0 to MAXSPRITES-1),
one should check for validity before accessing it in any other fashion.
git-svn-id: https://svn.eduke32.com/eduke32@4146 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-11 16:48:17 +00:00
helixhorned
92594f09c8
Lunatic: add two names forgotten for dynsymlist.
...
Let's BUILD_LUNATIC to see whether it still works...
git-svn-id: https://svn.eduke32.com/eduke32@4145 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-08 18:08:49 +00:00
helixhorned
b67c76f814
LunaCON: implement 'setcfgname'.
...
Factor out a block of code into C_SetCfgName() and use that from lunacon.lua.
git-svn-id: https://svn.eduke32.com/eduke32@4143 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-08 18:08:45 +00:00
helixhorned
f620a28d74
LunaCON: on 'starttrack' with null music, issue a 'soft' error.
...
That is, one that doesn't break the control flow.
git-svn-id: https://svn.eduke32.com/eduke32@4142 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-08 18:08:42 +00:00
helixhorned
84357152eb
Lunatic: fix ported A_FurthestVisiblePoint().
...
git-svn-id: https://svn.eduke32.com/eduke32@4141 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-08 18:08:40 +00:00
helixhorned
77574e30b9
LunaCON: implement NORESET flag for gamevars.
...
git-svn-id: https://svn.eduke32.com/eduke32@4140 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-08 18:08:37 +00:00
helixhorned
794edf18ff
Lunatic: add 'lua' OSD command, permitting to execute arbitrary code.
...
That is, everything that would be possible via scripting.
git-svn-id: https://svn.eduke32.com/eduke32@4134 1a8010ca-5511-0410-912e-c29ae57300e0
2013-11-04 22:56:03 +00:00
helixhorned
25edec9c0a
LunaCON: very primitive gamevar handling logic for {save,load}mapstate.
...
git-svn-id: https://svn.eduke32.com/eduke32@4119 1a8010ca-5511-0410-912e-c29ae57300e0
2013-10-27 21:12:22 +00:00
helixhorned
6c88824792
LunaCON: in {save,load}mapstate, warn that saving/restoring gamevars is NYI.
...
git-svn-id: https://svn.eduke32.com/eduke32@4118 1a8010ca-5511-0410-912e-c29ae57300e0
2013-10-27 21:12:20 +00:00
helixhorned
335957800b
Lunatic doc: add Lua source code highlighting using GNU Source-highlight.
...
DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4113 1a8010ca-5511-0410-912e-c29ae57300e0
2013-10-24 17:48:19 +00:00
helixhorned
d9b94c772d
LunaCON: 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.
git-svn-id: https://svn.eduke32.com/eduke32@4112 1a8010ca-5511-0410-912e-c29ae57300e0
2013-10-20 12:35:06 +00:00