Build 4330
SVN-
disallow saving map-text files in Mapster32 for now.
-
General
Amend r4318: Lunatic doesn't need the safety check.
SVN handles and Git names are merged into one person.
disallow saving map-text files in Mapster32 for now.
Amend r4318: Lunatic doesn't need the safety check.
add *actor[].blend as an alias to .detail, *tspr[].tsprblend analogously.
See lunatic/test/sprite_access.con for a LIZTROOP that periodically smoothly alpha-fades in and out. (Assuming that the 128 alpha blending tables from shadexfog.create_128_trans(1) are installed.) BUILD_LUNATIC.
Extend PALETTE.DAT format to allow carrying additional blending tables.
Lunatic: also, add an additional argument 'moreblends' to engine.savePaletteDat() and document that function. See test/shadexfog.lua for a "user-friendly" wrapper shadexfog.save() which prints success or errors.
move code in test/shadexfog.lua to engine.savePaletteDat() and complete it.
The function now writes out a full PALETTE.DAT: base balette, shade table and translucency table.
update dynsymlists. Move blendtable[] from build.h to engine.c.
BUILD_LUNATIC.
add a 'lastokcol' argument to engine.nearcolor() and document it.
On the C side, slightly rewrite (now) getclosestcol_lim() for clarity.
document engine.*blendtab() and engine.getrgb() functions.
remove sprite members 'detail' and 'filler', add 'blend', make r/w.
In the C code, rename sprite[].filler to 'blend'.
Also, fix a missed .filler -> g_ambiencePlaying[] rewrite in the editor. In C-CON, 'detail' is kept as alias to C-side (former) .filler / now .blend, but that name is *deprecated*.
gloadtex() cleanup, make some vars in kplib.c static, add source/valgrind_errors.log.
BUILD_LUNATIC.
sounds.c: exit S_PlayMusic() early if length of file is <4 bytes, clean up mem mgmt.
engine.c: amend r4292, which introduced an even worse oob for NPOT xsize texs.
engine.c: in calc_bufplc(), cope with negative lwall[] values.
This should fix the crash encountered here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__184069 a-c.c also gets a new switch macro, DEBUG_WITH_VALGRIND.
implement 'precache'.
add option -ferror-nonlocal-userdef, on by default.
BUILD_LUNATIC.
sounds.c: do S_MusicVolume() in S_SoundStartup().
This fixes this initialization issue: http://forums.duke4.net/topic/7144-midi-volume-weirdness/
Some functionality-conserving cleanup of jaudiolib code.
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.
Get rid of neartag* global variables. LunaCON: fix 'operate'.
sector.c: factor out goto soup in P_CheckSectors() into function.
sector.c: cleanup round 3, P_ActivateSwitch() refactoring.
Follow-up to RTS cleanup: factor out 2x almost-same code into G_StartRTS().
Reincarnate RTS sound functionality together with cleaning up related code.
- Make Win+F* also make play and RTS sound, since modern OS's window managers like to eat Alt-F*. (Some Win+F* may be inaccessible too, but together all 10 should hopefully be covered.) - Fix an issue where keys other than F1-F10 were considered as starting an RTS sound and crashing EDuke32 in the process
Fix USE_OPENGL=0 build... again. DONT_BUILD.
Fix respawn operation with monsters off, rewriting G_OperateRespawns().
BUILD_LUNATIC.
when clearing bunch number of c/f with yax_setbunch(), don't reset xpanning.
In the non-Lunatic build naturally, since the Lunatic one uses its own member.
add codegen option -fbad-getactorvar-use-pli for C-CON compatibility.
Also, improve -Wnumber-conversion warning by printing the resulting number. BUILD_LUNATIC.
make wall texture alignment [.]/[,] work with bottom-swapped walls.
In simple cases, it should be added. Combinations of alignment across TROR boundaries and bottom-swapping will probably not work right.
Improve determination of when a sprite should be drawn before a masked wall.
Concretely, in the "behind, outside" case, draw the sprite early if any of its 2 or 4 corner points are behind the masked wall, and inside the cone or on the other outside.
don't attempt audio format auto-detection for less than 12 bytes.
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.
Per-map ART tiles: don't back up or restore reserved tiles.
This prevents a crash and maybe other badnesses when e.g. loading a map with ART tiles, doing something that allocates a reserved tile (such as looking into a viewscreen), then loading another map where the tilesiz* of TILE_VIEWSCR is restored to 0.
fix one error message, make -h/--help display usage.
Actually, right now, any first arg starting with '-' will show the usage.
Engine-side per-map ART file support.
When a map named <filename>.map is loaded (<filename> may also contain directory separators), the engine checks for existence of <filename>_XX.art in the virtual file system, where XX is a 0-padded number from 00 to 19. It loads a consecutive sequence of these ART files, i.e. aborts whenever a number in the sequence isn't found (in contrast to normal ART loading). Restrictions: - the per-map ART files must not reside in ZIP files - if a tile number is attempted to be overridden that has a dummytile or is cache1d-locked, per-map ART loading fails On failure, the map is still loaded, but a diagnostic message is output to the log/OSD. Loaded per-map ART data are cleared whenever the map is "left". In particular: - whenever another map is loaded - in the editor: when a new map is started - in the game: after the bonus ending screen of a finished level, after going to the title screen via the menu A final note: file names are supposed to be looked up and compared case-sensitively. That is, <filename> must match EXACTLY between the map's and per-map ART one; 'art' must be lowercase. Otherwise, the cookie monster will come and eat you! BUILD_LUNATIC.
for readgamevar, if ud.config.scripthandle < 0, keep value, don't err.
Stylistic/formatting tweaks in cache1d code.
remap16 method for engine.shadetab, 2nd attempt at recreating orig. one.
BUILD_LUNATIC.
Fix USE_OPENGL=0 build. DONT_BUILD.
document fundamentals of shade tables, but not 'engine' API yet.
Lunatic/m32: make Mapster23 actually start stand-alone, oops.