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"
2d mode performance improvements
improve 2d mode sprite label display. I want to test this further, so this is marked as 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.
Enable sector drawing and textured map in Mapster32 sideview mode with a sideview elevation of 512 (straight up and down).
Improve r_preview_mouseaim and Polymost Mapster32 3d mode mouse selection. Also adds a display of the current coordinates, angle and horiz when moving around in 3d mode.
Slight further Polymost cleanup. Nothing of real importance. DONT_BUILD.
Make 'L' key toggle grid lock in 3D mode, because it affects placement of sprites inserted with 'S'.
Polymost parallax sky fix.
Fix Polymost issue reported at http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__220265
Engine memory reductions/optimizations:
-faketilesiz[MAXTILES] removed in favor of simple faketile[(MAXTILES+7)>>3] bitfield -h_xsize/h_ysize (tile size overrides from .def) are now uint16_t instead of int32_t -hudmem[2][MAXTILES] removed in favor of adding a hudmem ptr to mdmodel_t -tilefromtexture performance improvements -more tsectortype/twalltype usage in various engine functions that read but never write -continued Polymost cleanups and refactors. Please report any odd rendering errors.
Large batch of Polymost changes, including:
-lots of stylistic rewrites -further improvements to anti-fighting code for wall and floor sprites (introduces three new cvars, r_wspr_offset, r_wspr_offset_variance, and r_fspr_offset) -fixed brief HOM when traversing through a one-way masked wall -seldomly used "alphahack" feature for hightile textures now represents alpha cutoff internally as a single byte instead of a float -fixes a handful of issues where geometry failed to draw at certain coordinates from certain angles in certain resolutions -renames a couple of cvars
Polymer tsectortype usage. DONT_BUILD.
Minor stylistic changes, fix FPS counter and other 2D drawing in Polymer.
Further gamevar changes/optimizations. This also fixes a bug Fox reported with the "shortcut" access to structure members that's tacked on to GetVar, where if the value of the index you're trying to access happened to equal the ID of the current sprite, it would act as if the variable passed was THISACTOR.
Fix Mapster32 mouse cursor in GL
Fix Polymer when switching from Polymost
Nocompress and nodownsize for skyboxes
Polymost changes to better support running under GL ES. Still need to investigate GL_LINES and GL_QUADS... neither work under either GL -> GL ES wrapper we've tried, so we must be doing something wrong.
Minor engine cleanup
Fix Mapster32 sector copying
Fix undefined behavior in Polymost
fix wall and floor sprites clipping into or z-fighting with surfaces (replaces glDepthRange() hacks for sprites), add r_nofog cvar for debugging, reduce the total number of OpenGL calls by only calling glFogi() to set the fog mode when initializing the renderer or changing r_usenewshading.
Introduce "twalltype" for temporary uses of walltype where using wall_tracker_hook() would be invalid. This is similar to "tspritetype" and fixes a bunch of problems in the editor that cropped up when changing the tracker sanity checks to an assert that only exists in debug builds (branching upon any write to a sprite, sector or wall had an unacceptable impact on performance).
Fix Mapster32 bug where pressing "O" on a sprite twice would corrupt your map due to unchecked use of hitscan results.
Revise C++ structure trackers for performance and introduce "tspritetype", for temporary sprites or other usages where using the trackers would be invalid or undesired. DONT_BUILD.
Replace hightile grayscale method (usually combined with tints to produce
replacements for the first handful of palette lookups) w8th superior "luma" method. DONT_BUILD.
Fix Mapster32 fullscreen video modes. DONT_BUILD.
Fix a handful of crash bugs I caused with the 32-bit ASM version of the classic renderer. DONT_BUILD.
Clean up classic renderer header (a.h) a bit. DONT_BUILD.
Try out __restrict in the classic renderer. #define'd for easy removal in case it causes problems or is useless.
Fix MSVC warning in Polymer
Add support for pressing backspace to go up one dir in the file selector in Mapster32
Enable -usecwd for Mapster32 on Windows (same functionality as EDuke32)
Hack around HOM when passing through a masked wall, but only on Android because the solution isn't very good.
POLYMER=0 build fix. DONT_BUILD.