Build 5293
SVN-
further 2d mode performance improvements. Sprites are also now displayed with their xrepeat and yrepeat taken into account. It's not perfect yet... needs more "jiggery-pokery"
SVN handles and Git names are merged into one person.
further 2d mode performance improvements. Sprites are also now displayed with their xrepeat and yrepeat taken into account. It's not perfect yet... needs more "jiggery-pokery"
fix two "variable may be used uninitialized" warnings.
I didn't produce a case when this could actually have happened, but reading the code, in the case of variable 'j' it seems possible with an empty map.
fix a possible oob read via drawspritelabel; sanitize 2d3d mode.
That is, in m32_is2d3dmode(), also check if 2d and 3d mode resultions are the same. Otherwise, oob writes (e.g. via tileinfo_doprint()) and other thinkable niceties may ensue.
2d mode performance improvements
improve 2d mode sprite label display. I want to test this further, so this is marked as DONT_BUILD.
Update VS project. DONT_BUILD.
Disable FLAC in MSVC builds for now until I have time to build new libraries that are compatible with VS2015. DONT_BUILD.
fix 3d picture-in-picture when editing a map with TROR.
improve diagnostic message.
A couple of Mapster32 tweaks to play nicer with different palettes.
Address complaints from the "Mapster32 problems and bugs" thread.
Mapster32 changes:
-2d mode sprite colors are now automatically generated from the sprite's 8-bit tile. -Zooming in and out has been smoothed out. -The 2d mode crosshair cursor is now 1px thick instead of 2. -The left mouse button can now be used to select multiple wall points and sprites in 2d mode. -Ctrl-x now skips corrupt maps instead of going into an infinite loop. ;) -'-L function in 3d mode works again. -Sprites with a clipdist that has been changed from the default value of 32 will display a circular approximation of the distance in 2d mode. Note that the real clipping distance is actually closer to a square, but a circle looks much less confusing/stupid alongside the display of floor sprites. -2d mode status bar has been made a few shades lighter.
New experimental Mapster32 hybrid 2D/3D mode feature. Pressing F10 in 2D mode enables a picture-in-picture 3D view in the corner of the screen. When moving the mouse over the 3D view, the controls change to 3D mode controls and all 3D mode operations can be performed. The 3D view can be resized with shift + F10 and can be moved to different positions by holding CTRL and using the arrow keys.
This commit also implements a much more useful automatic grid sizing feature and smooths out zooming in and out of the map.
Very minor OSD cleanups, no functional changes. I was planning on doing more with this but decided to do something else instead, so I want it out of my tree without losing it. DONT_BUILD.
Makefile tweaks: remove BUILD_FINISHED because it frequently appeared in the wrong place when using make -j, and remove "executable" wording from linking phase. DONT_BUILD.
Enable sector drawing and textured map in Mapster32 sideview mode with a sideview elevation of 512 (straight up and down).
Fix automap lines in Polymer mode
add pr_nullrender variable to toggle drawing and updating GL buffers
fix an oob write in test_map().
mdsprite.c: from updateanimation(), if m->[cn]frame >= numframes, clear to 0.
This prevents an oob access when rendering, the one observed was at polymer.c:4255.
Fix an out-of-bounds read in getpskyidx().
m32exec.c fix "multiple unsequenced modifications to 'insptr' [-Wunsequenced]".
Fix clipshapes, accidentally broken in my vec2_t rotatepoint commit.
Fix crash when playing back an .ogg with comment metadata that doesn't contain "=".
Android and MSVC build fixes. DONT_BUILD.
Define the formerly nonsensical combination of orientation bits 256 and 512 to mean "automatically zoom the tile so that the 320x200 coordinate system is vert-minus widescreen instead of horiz-plus".
Fix warning: narrowing conversion of 'img->vpx_image::d_w' and 'img->vpx_image::d_h' from 'unsigned int' to 'int32_t {aka int}' inside { } is ill-formed in C++11 [-Wnarrowing]
Add "multipsky" token.
Convert multi-psky handling to use dynamically-allocated arrays.
Re-expose kpzbufsiz and set it to zero in uninitengine, preventing potential crashes from successive re-initializations of the engine.
r5238 build fix
Minor internal CON changes.
Minor VPX playback optimization. DONT_BUILD.
Add line numbers to a couple of .def parsing warning messages. At some point these should probably all be cleaned up, similar to how they're handled with CON parsing. DONT_BUILD.
Misc Android. DONT_BUILD.
fix negative alpha for 'rotatespritea'. BUILD_LUNATIC.
Conceptually, this amends r4428.
from 'definevolumename', make g_numVolumes be determined as in C-CON.
check EVENT_ENTERLEVEL for nonzero RETURN, run w/ other players then.
Background: AMC TC initializes per-player variables from this event.
Free alloc'd anims in h_dukeanim. Adds a function hash_loop().
suffix gamearray file names with '.gar'.
fix rendering of middle part of 1-way masked wall.
It does not depend on the "swap bottom wall parts" bit being set. The fix is by matching up the related code with Polymost.
Re-expose clipmoveboxtracenum.
Fix warning: array subscript is above array bounds [-Warray-bounds]
Fix warning: variable may be used uninitialized in this function [-Wmaybe-uninitialized]
Fix warning: type does not match original declaration [enabled by default]
Replace calls to Error() with buildprintf().
Add uint32_t PaletteIndexFullbrights[8] so that Polymost can respect the lack of fullbrights in KenBuild and Shadow Warrior.
Since sprite->filler is now fogpal, modify the CTF code that uses it to use a new variable in SW's USER struct instead.
Modify the border-drawing code to work with our widescreen code.
automapping (deleted), visibility --> g_visibility, numpalookups --> numshades
Update some API calls.
Add the Shadow Warrior source to our tree after astyling, uncrustifying, and renaming one file.
Set up and enable building with USE_OPENGL. DONT_BUILD.
implement NODEFAULT per-actor gamevars in the C-CON fashion.
For glocal gamevars, the LunaCON semantics (session gamevar) are kept. For per-actor ones, this now prevents resetting a gamevar's value to default on spawn or loadactor. BUILD_LUNATIC.
config.c: fix an overlapping strcpy() in CONFIG_SetMapBestTime().
allow writing -1 to player[].newowner.
For the other player members, where formerly negative values were allowed to be written, only -1 is now.
fix g_tile[].proj memory leaks, halve number of projectile_t allocations.
When checking for SE7 water teleportation, regard sign of z velocity.
This fixes RPGs fired upwards at a steep angle teleporting immediately to underwater when wading in water (reported via PM by Turok 64 Jr).
Merge glbuild_android into glbuild. DONT_BUILD.