Build 3970
SVN-
fix some must-fail tests and module()s without require'end_gamevars'.
SVN handles and Git names are merged into one person.
fix some must-fail tests and module()s without require'end_gamevars'.
Makefile.common: disable -Wstrict-overflow.
It didn't turn out that useful and was giving a warning with one of the preceding changes.
Polymer/ART mapping: fix formula for globalvisibility.
Also, very slightly tweak a factor toward a "brighter" (farther visible) scene overall to account for the "circular" nature of the fragment distance (as opposed to an "ortho" distance in Build).
Apply patch by forum user "John Jendro" fixing OS X build.
add forgotted "screensound" to keyword list in con_lang.lua.
Also, fix 'spriteflags' directive.
partially fix LTO=1 build with GCC.
Having to tag these few variables and functions as ATTRIBUTE((used)) seems sensible, but what follows is just strange. OSD_Printf? headspritesect?
various tweaks and fixes.
- fix getv movflags handling in VM_Move() - add actor.fall() - LunaCON: sanity-check some action members
Fix loading maps in Mapster32, introduced in r3911.
Also, get rid of the strange filename[len]=255 hack in loadboard() and make its file name arg const char* at last.
Fix USE_OPENGL=0 build
MSVC build fix (looks like the compiler version shipped with VS2013 has nearbyintf now...)
various minor tweaks and fixes.
- Pass original module name (dot=dirsep) to module via our require() - geom.lua: fix some operations using the vector type constructor - geom.lua: provide constructor for ivec3, useable like vec3
fix random angle movflag, Windows build; write more documentation.
Fix 1.3D, sorry guys
Fix up handling of the Duke shareware beta a little bit, and change the dialog that pops up after running the shareware version too many times to take you to Steam instead of GOG (the Steam version is a better deal)
Lunatic savegames: store g_playerWeapon[][], fix 'require' with submodules.
make mail, money, paper be affected by tile remapping, fix one printf.
cache1d.c: cover up preceding assertion failure by bumping size of lzwrawbuf[].
It's hard to call this a fix, since ideally, buffer sizes like these would be only as large as needed in the worst case.
cache1d.c: prettify compression functions, add one currently failing assertion.
fix construction of *_crash.map file name in crash handler.
Fix one-sided y-flipped floor-aligned sprites, introduced in r3776.
Add a test case in test_tileoffsets.map.
Fix accessing the wrong animation indices with negative viewtypes.
(I think; untested.)
fix current incarnation of gamevar saving/restoration.
game.c: fix out-of-bounds write in G_GetSubString().
Fix the display of numbers with TEXT_GAMETEXTNUMHACK and TEXT_XOFFSETZERO. (Fix level stats, part 2.)
The commit revises the definition of qstrdim when TEXT_[XY]OFFSETZERO are used. With these flags, the offsets the user specifies are now the only dimensions the function cares about in terms of tile placement, so depending on the difference between the offset(s) and the size of the final tile, it may be slightly more or less than the dimensions actually displayed on the screen because tile size is never taken into account. (For example, if your font is nominally 9x7 like the Duke bluefont and you use a TEXT_XOFFSETZERO of 5 with a string five characters long, the total x dimension will be 25 even though the last character will overhang that amount by four pixels. If you use a TEXT_XOFFSETZERO of 12 with the same string, the total x width will be 60 even though there will be three pixels of empty space on the right edge.) This change was made because assigning text an arbitrary constant width in general implies an intent to keep character positions constant even with a variable width font, but returning the visible span of pixels on the screen that the tiles cover would have caused the string to move when alignment options other than the top-left were used. In other words, you can now safely use TEXT_[XY]OFFSETZERO with the alignment options and the text won't jiggle. Also, with TEXT_GAMETEXTNUMHACK, numerals are now effectively TEXT_XOFFSETZERO text that respect the above paragraph, so number count displays can look nice with alignment options too. Having to modify the extent/offset code makes me realize that I'm not quite happy with its structure because it gets tangled juggling different concepts like character width, X offset, and spacing, and how they relate when the line wraps or in terms of the final size. Fortunately, it produces correct results as far as I know, and it's not necessarily ugly, just hard to understand. Handle with care.
Fix display of level stats by fixing G_ScreenText() handling of (orientation & 2).
fix a couple of oversights, tweak some stuff.
Lunatic/classic: in TROR maps (V10), enable non-power-of-two wall drawing.
Also, fix clearing a bunch in new-format-map (=Lunatic) build.
fix mistranslation of CON "else { if" to Lua "elseif".
When encountering a non-empty statement inside braces, emit "do" ... "end".
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).
Fix potential oob access when flipping the floor [F] in 2D mode.