Build 3723
SVN-
General
I am not a smart man. Fix startup window hangs with grpinfo files.
SVN handles and Git names are merged into one person.
I am not a smart man. Fix startup window hangs with grpinfo files.
Fix model HUD weapons not showing in Polymer, introduced in r3717.
Fix GTK build
Fix two bugs found by Clang's undefined behavior sanitizer.
- Return early from drawsprite_classic() if tspr->owner if oob. Commonize that check between renderers into bad_tspr(). - Make the BIT() macro a left-shift of the *unsigned* number 1, preventing expansion to (1<<31).
Fix debugging builds with Clang 3.2 and up.
In those Clang versions, -fcatch-undefined-behavior was replaced by -fsanitize=<what>. For Clang 3.2, we enable the address sanitizer and for 3.3 also the miscellaneous undefined behavior one. Currently, there's no version auto-detection from the Makefiles, it's set to 3.3 and the others are commented out.
Fix TARGET sprites used as switches, introduced in r3679.
In G_LoadAddon(), remove inner 'struct grpfile *grp', fixing uninited access.
... four lines later. I don't know if that is the intended semantics for this function, but nasal demons is clearly not what we want. Please review!
Fix two harmless warnings and reindent one switch block.
Also, make G_LoadAddon() local to game.c.
Fix startup problems stemming from SelectedGRP = "" ending up in eduke32.cfg
Revert an awful stupidity I committed in r3700.
Classic drawmasks(): if sprite is on other side of maskwall, always draw it first.
This fixes the bug reported here: http://forums.duke4.net/topic/5340-bug-with-masked-walls/page__view__findpost__p__123233 But I haven't checked the change for any adverse effects.
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.
in quick tile selection [G], if tile is nonexistent, revert it.
tweak the 'loaded map' message a bit.
- colorize the trailing part if there is corruption or (new) if sprites were removed - also corrupt-check when loading <V7 map - move start{pos,ang,sectnum} to build.c - remove pointless ...[].extra = -1 before loading map, scantoasc*[] comment
stricter map load time checking for sprites with oob sectnums.
Sprites are now considered to have out of bounds sector numbers if it is < 0 or >= numsectors (not merely >= MAXSECTORS). If such a sprite is now encountered during post-load, an attempt is made first to assign it a sector number (using updatesector()). If that fails, the sprite is removed from the map. The background is that a dozen of maps do come with such sprites and could previously corrupt the sprite list when loaded.
OS X: Pass -Wno-narrowing only with GCC 4.3+, fixing arttool build on my setup.
Fix building against libpng 1.6, which removed png_sizeof
Fix A_MoveSprite() wrongly reporting sector hit without z change after r3678.
Fix SPRITES_OF_SECT_SAFE macro. Oops!
In G_MoveStandables() CRACKx handling, fix oob access of DynamicTileMap[].
Also, in two cases, don't assign A_IncurDamage() result to a variable if it's not needed.
Fix a couple of issues identified in the preceding commit.
- In S_PlaySound(), move the sound index bound check above an indexing. - For A_CheckHitSprite(), and A_FindPlayer(), allow NULL second arg. - In A_ShootWithZvel(), make some one-letter vars be int32_t, making storing safeldist() results in them meaningful. - In MaybeTrainKillEnemies(), remove two redundant checks and move another one further up. - Comment that SIDEBOLT1 will never be translucent as was probably intended. - In G_MoveFX(), fix an always-true comparison.
Clean up of mostly actors.c, but some other files along the way too.
- Rewrite some sprites-of-{stat,sector} loops using the SPRITES_OF, SPRITES_OF_SECT and new SPRITES_OF_SECT_SAFE macros. - In passing, identify some problems and mark them with 'XXX', but don't attempt to fix them yet. - The usual readability improvements...
Fix the inventory icon selector's positioning to match v1.5 (reported by Fox [1]). While we're at it, move it according to ud.statusbarscale for aesthetic purposes.
Fix a signed/unsigned comparison.
Fix a "duplicate const" error.
Fix reading the GOG and Steam paths for Win64 builds.
Fix "Error setting gamma ramp: DDERR_INVALIDPARAMS" on 64-bit.
Fix Mapster32 crash caused by custom s_buildRev strings longer than five characters.
(Note: We are still vulnerable to crashes here (and likely in other places), but you have (4096-16) extra characters to work with. We should consider replacing many uses of Bsprintf with Bsnprintf.)
Fix the pause during display of TENSCREEN.
In upward moving enemy code of VM_Move(), consider TROR boundaries.
This fixes liztroops not passing TROR layers when on the jetpack, as well as other enemies capable of moving upward, and also COMMANDER and DRONE (for which the code is special-cased).
fix test.elua after map-int VX and one rename, add one microbenchmark.
Fix something I fucked up with GRP scanning when I added support for the Megaton addon GRPs.
fix stuff after last commits; translator: clean up -f parsing code.
Also, implement 'cmenu' in LunaCON, make 'definequote' also allowed as inner command.