Build 3207
SVN-
update BUILD types with signed->unsigned changes of *stat.
SVN handles and Git names are merged into one person.
update BUILD types with signed->unsigned changes of *stat.
"fix" building.
update structures, find maps case-insensitively in findmaps.sh.
make geom.lua work standalone, fix __eq metamethods for dvec[23]_t.
expose updatesector*, add random walker as timing test for them.
various tweaks and API changes/additions.
various tweaks.
Going to extremes to avoid code duplication like the plague, but at least it's great to learn about the whole function environment business.
fix up Makefiles, split dynsymlists.
The Makefile now has separate {GAME,EDITOR}LDFLAGS, so the correct dynamic symbol list can be specified.
prototypical editor binding.
rotatesprite+test, player access, misc.
rewrite bitar to use arrays of int32, more convenience ops.
reflect the preceding rename in the sources.
implement a couple more 1.5 commands.
clean up handing of ac/mv internally, add control module.
cleanup
'bitar': rewrite ops for colon syntax, serialization, set ops.
fix build on OS X, pass LUNATIC define to build/ sources.
fix hex literal parsing on Windows, add two comments.
add 'stat' module for running statistics.
Also, rewrite the mapastats iterator and the LIZTROOP hitscan timing in terms of that.
add 'randgen' module, implementing an encapsulated JKISS PRNG.
Also fix error handling path in our_require(), i.e. when loadstring fails.
build fix on Windows and translator fix with 32-bit archs?
erratum in r2844 commit message: ydim vs. bytesperline --> xdim vs. bytesperline
time every event and actor call and print summary at game exit.
add "bit array" helper module, rewrite the bit test in terms of that.
protect user modules from tampering, too.
more bitop profiling; make undeclared-var reads forbidden in modules
override 'error' so that a string is always returned to C.
extend must-fail tests with a check for the expected error messages.
overridden 'require', currently for base modules only.
make baselib functions used in defs.c local, be more disciplined with stack.
Also, print a backtrace if we return to C with an error.
ksqrt, with timing and value test.
The latter shows that "int32_t ksqrt(int32_t)" also copes with values in the range INT32_MIN..-1, effectively interpreting them as uint32_t (i.e. adding 2**32). However, this should not be relied on from CON.
safety tweaks, expose more stuff
Arrays inside structs must not be accessible, since they're not bound-checked by the FFI. Therefore, we flatten them into repeated scalar fields and need to write accessor functions later.
various stuff
- hitscan & related types and constants - profiling with gethitickms - translator: eval the opening parts of block commands early - fix getbunch
take a stab at semantic actions; tweaks
actors
in event interface, pass actor, player, dist.
pack actor/move parameters into t_data, which is enlarged to 14 elements.
(LUNATIC build only.) Also, a minor problem is identified. sizeof(actor_t) is 124 on 64-bit platforms, while the expected size is 128 bytes. This needs to be corrected whenever the next savegame version bump happens.
one const char * --> char *, since we alloc/free it.
fix one stack index, comment on a problem with ffi.C access.
actions prototype, not enabled even in the dev build.
For Lunatic, we'll want to get rid of the t_data --> script indirections, since the latter will be no more. Thus, all parameters are saved in t_data directly. For the normal build, there are no changes, only stylistic tweaks.
v7 engine support, event updates
embed lpeg and the translator into the binary
better initial environment setup, preventing textual repetitions