October 2021
-
fix SDL fullscreen issues
-
remove r_pr_vbos cvar and the code paths used for values 0 and 1
Show details
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
-
fix "gameexecutable" option in configuration file
-
don't block input when player .hard_landing is set
-
zero player .horizRecenter and .horizSkew when zeroing return_to_center from CON
-
don't bother trying to fill VC_REV, VC_HASH, and VC_BRANCH if we don't even have a .git directory
-
fix timing issue with logo.anm playback that could occur if an actual hard video mode change is required at startup (e.g fullscreen in a non-native resolution)
-
additional gamevar verification when loading savegames
-
add coordinates to log output from clipmove()
-
make floor sprites clip a little more like floors
-
bump MAXCLIPNUM to 4096
Show details
This isn't really ideal, but neither is hitting the limit due to maps with an excessive number of sprites that use clipshapes.
-
move P_SetupMiscInputSettings() from game.cpp into game.h and call after loading savegames
-
fix double free on exit
-
revise d1b3b702ba776119db042e6ba4e6b06d5f909f01
Show details
I remembered
-
fix compatibility with savegames made before 4fdd8dc8c30a05db79fa9fde0d085c0f75210e9e and e8470bd29cb19a4b815bc2bc74e0ac0a8de2a06d
-
implement buildvfs_exists() using GetFileAttributes() on Windows and stat() elsewhere, FORCE_INLINE some stuff in vfs.h
Show details
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.
-
enable debug symbols for MSVC release builds for profiling
-
shitcan lrintf use in sample calculation
-
don't print extended data size and offset to console when saving and loading games in release builds
-
fix exported symbols for memory allocation failure handling
-
move Windows debug thread naming stuff out of driver_winmm and into winbits.h
-
fix warning in sqrtable_old[] generation in initkqsrt()
-
remove unnecessary/wrong wall[].picnum == MIRROR check from projectiles
Show details
MIRROR is only ever on .overpicnum for valid mirrors.
-
tweak a couple fix16_t functions to use the versions of min/max/clamp etc that we use elsewhere instead of their own inline implementations
-
fix calc_smoothratio again
-
shitcan nexttowardf use in polymost
Show details
This never did what I was trying to do and it wasn't really clear until recently how much of a perf hit it could be. Byeeeeee.
-
update library building instructions
-
remove newlines from the ends of strings passed to fatal_exit()
-
don't initialize g_keyRemapTable[] values if they're already non-zero
Show details
Required for key remapping to work in the editor after the commit that added the "working directory only" checkbox.
-
FORCE_INLINE everything in tracker.hpp
-
optimize hash tables
-
fix uninitialized data use
-
add predefined MAXLEVELS and MAXVOLUMES for CON
-
in EVENT_LOADGAME, give RETURN a default value equaling the userbytever field from the savegame header and relax sv_loadheader() check
-
remove polymost_invsqrt_approximation()
Show details
This was a cool hack for its time, but it's not useful to us anymore.
-
add pow2ulong and pow264 tables, fixes a stupid line drawing pattern bug in the editor
-
getzrange result cache that actually works correctly
Show details
Just kidding, it still sucks and it's commented out.
-
change getcrc16() to void * instead of char * so I don't have to cast things every time I use it
-
build fix
-
fix dumpster fire thing
-
fix incorrect lower bound for r_anisotropy
-
inline openfrompath_internal
-
disable SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING if _MSC_VER is defined
-
fix g_highestSoundIdx range checks
-
replace the "played killed by pushmove()!" error logged in the console with a call to QUOTE_SQUISHED
Show details
Players don't get killed by pushmove() in error anymore.
-
include mimalloc-new-delete.h in smmalloc_generic.cpp
Show details
This defines global new/delete overrides, so look here if problems stemming from those ever arise.
-
switch from stb_vorbis to minivorbis
Show details
Fixes minivorbis to compile as C++ and hooks it up to our memory allocators. This also allows the precompiled libogg.a prerequisite for libFLAC.a to be removed.
-
add minivorbis 4e40a167726effb0ae9d3065452a9ee2bb80a84f
Show details
This is the entire official vorbis implementation crammed into a single header. Fixes to work with our cflags in a future commit.