Build 9751
GIT-
add "notrans" .def token for voxels to disable drawing with translucency in GL modes
Nickname SVN e nomi Git sono unificati per persona.
add "notrans" .def token for voxels to disable drawing with translucency in GL modes
address defect in c653ba7fc09257ed3590cd2ce29d155ef6752032
add libasync (async++), https://github.com/Amanieu/asyncplusplus/
update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
engine: update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
print commit hash from SDL_GetRevision() to log at startup when using SDL dev builds (odd-numbered patch level)
This is admittedly terrible, but it shouldn't break unless the SDL_GetRevision() output format changes, in which case it just won't print the string anymore.
prune SDL_mixer stuff from sdl_inc.h
We will never NEED_SDL_MIXER.
fix tabs in random.h
add screenshot_dir CVar. Defaults to "screenshots".
Apply tints on KV6 voxels; factor out shared code
Revert "engine: make floor sprites clip a little more like floors"
clipmove() really needs concrete indication of a moving point's starting floor height for this optimization to work correctly, and inferring that ourselves without it being explicitly passed in isn't something that would work.
fix SDL fullscreen issues
remove r_pr_vbos cvar and the code paths used for values 0 and 1
r_pr_vbos 0 was broken and r_pr_vbos 1 became useless once it was clear r_pr_vbos 2 wasn't causing issues.
add GL context version to glinfo, allow in 8 bpp mode (it's still backed by a GL surface, after all...)
manually flush console log file ptr in crash handler
add coordinates to log output from clipmove()
make floor sprites clip a little more like floors
bump MAXCLIPNUM to 4096
This isn't really ideal, but neither is hitting the limit due to maps with an excessive number of sprites that use clipshapes.
fix double free on exit
implement buildvfs_exists() using GetFileAttributes() on Windows and stat() elsewhere, FORCE_INLINE some stuff in vfs.h
The rationale behind this change is that I was profiling CPU use during loads of particularly heavy .def files (10000+ items) and discovered an inappropriate amount of CPU time was being spent inside access(). So, I did some research and found several cases where people on stackoverflow etc had asked what the fastest method of determining whether or not a file exists was, with the results of several benchmarks being given as answers. GetFileAttributes() seemed to win on Windows and stat() seemed to win on Linux, and I did not see any results where access() was a serious contender when included in the spread of tested functions, with the best I saw being 1100-something nanoseconds for access() and 800-something for stat(). This whole thing would be faster if we just read in the entire directory index and matched files against it ourselves with just the few API calls involved with retrieving the index, but access to uncooked data littered across a directory tree isn't really something I give a shit about optimizing further at the moment.
fix incorrect lower bound for r_anisotropy
inline openfrompath_internal
disable SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING if _MSC_VER is defined
include mimalloc-new-delete.h in smmalloc_generic.cpp
This defines global new/delete overrides, so look here if problems stemming from those ever arise.
don't crash when loading corrupt maps with sectors with zero walls
This also makes the editor recognize corrupt sectors with < 3 walls and try to repair the map. It works for the corrupt sectors in E4L1, at least. Please immediately report any problems caused by this change directly to me.
engine/mact: reimplement controller dead zone so that it isn't just naively applied to each axis independently
move uninitsystem() into engineUnInit and remove atexit
rename r_windowpositioning var in source, default to 1
reset rotatesprite lerp value when interpolation should not be performed
Use APPBASENAME for testing maps
Allows FURY compiled mapster32 to launch fury.exe
Ken-Build, Duke3D, SW, mmulti: Replace rand with wrand almost everywhere.
Outside of 3rd party libraries, remaining uses are the Polymer-specific macro LIGHTRAD2 within Duke3D, system_15bit_rand and vox2poly. Also use WRANDOM_MAX in SW.
Add wrand, intended to mimic the behaviors of Watcom C 10.0's rand.
Also add WRANDOM_MAX. This will be used in SW, preventing possible freezes.
Split krand definitions from build.h to a new header, random.h
polymer: show shader compile log on failure, not just link log
Mesa conveys most of the useful info through there, not linking.
Actually make use of `sound` def token's `volume` subtoken
Followup to 072bd40ebd1a2d0833021b78e7784bab65259c61.
Factor out g_sounds[num] access in S_PlaySound and S_PlaySound3D
allow pasting into the console from the system clipboard with RMB
Disable with "osdclipboard 0".
clear mouse buttons when toggling the console
Parse the `sound` def token
Fix POLYMER=0 builds
Expose 8 additional clipboard variables as READONLY to M32 CON
These variables include: * `tempxpanning` * `tempypanning` * `tempxvel` * `tempyvel` * `tempzvel` * `tempstatnum` * `tempblend` * `tempsectnum`
fix issue with Polymer lights sometimes not appearing after the player dies and respawns
skip drawing sprites in textured view if the sector is grayed out
use bitmap_set/bitmap_test in cansee()
improvements to the updatesector family of functions
Implements the concept outlined in MR 114 and adds some additional checks to prevent more calls to getsectordist() than necessary
guard some modified behavior in pushmove() with an enginecompatibilitymode == ENGINE_EDUKE32 check