A bit of a code cleanup, change a couple of prints.
Auto value for sv_demo_write_csqc now writes the csprogs into mvds, to hopefully reduce playback issues. the lazy record commands should be favouring .mvd.gz at least.
Try to support DP mods a bit better.
Try to be a bit more verbose about why webrtc might be failing.
Fix up some qc warnings from recent fteqcc improvements.
Make our mini http server report timestamps better, so wget's timestamping is happy.
Try to avoid sigpipe errors from tcp connections.
Make sure bad q2 layout strings won't go out of bounds. Add dev2 prints for bad layout string commands (there's probably lots of bad q2 mods out there, hence not dev1/unconditional).
Attempt to improve touchscreen behaviours with onscreen buttons that appear upon touch events (and fade out). Long presses should close menus etc. Likely needs some more work.
Show at least one address for each socket we're listening on, even if its loopback, instead of nothing at all.
Make sure freecs etc do heartbeats despite not giving a poop about nq/dp.
Fix vulkan renderer's rt spotlights (both shadows and spinning).
Start game menu's map option is now a combo instead of a text field, to save on typing.
If multiple updates come from inside the same .zip url, extract each one of them from a single download instead of downloading the exact same zip multiple times. This is mostly for DP mods that expect to need to download everything upfront.
Our Q2 code is a little fragile. Give it its assumptions to avoid hideousness.
Alt+tab was randomly registering as tab presses - explicitly ignore tab at the start of the input line so we don't end up with walls of console completion suggestions.
Handle recursive redirects better, don't silently truncate redirects.
Fix up the penalty system. stealth mutes are now actually stealthed properly, user bans no longer confuse removeip. Added stealthmute command for convienience.
Fixups for crashes triggered by xonotic, probably some other mods too.
ezquake clients were all being treated as version 0, instead of our version-dependant workarounds disabling when ezquake bugs got fixed.
Fix Q2 saved-game crash.
Make class parsing more c++-like, fix some issues with uninitialised variables not getting detected properly.
Fix _bump texture loading.
Rework gamepad menu bindings, should be more intuitive now.
Avoid the use of RETURN_CSTRING for cvar string values that might get cached by qc beyond the engine freeing the implied memory (crashes were reported by pjt/newby).
Add file uri support, requires a '-allowfileurl' commandline argument.
Add rogue's teamplay modes to the menu.
Add -unsafefopen commandline argument to allow disabling the qc fopen sandboxing (like the original frik_file spec).
Fix up some SDL issues.
add base64encode and base64decode builtins. Allow the second arg of registercommand builtin to specify a description for that command.
Fix partial fakeshaft not always appearing.
Fix cl_maxfps's periodic fast-frame bug. Reduce latency in singleplayer.
Be more verbose in the case of hardware errors, in case OMC has that issue again.
Make sure the rerelease's models can do colourmapping properly.
Better compat with QE. EX_PROMPT now supported serverside (emulated for non-qe clients). Per-client localisation now works. Scoreboards are now a little nicer when running mods with well-defined teams (eg NQ ssqc).
Make sure runstandardplayerphysics builtin properly initialises everything it needs.
Fix up some docs.
Protocol compat with the Rerelease Update 4, at the expense of earlier versions.
Fix a skins issue on nq servers after changing maps.
Fix some issues from last commit.
Fix up fteqcc's typedefs.
Try to fix up some ICE quirks.
Work around a gcc optimisation bug.
Some more ICE polish.
Slightly smoother framerates on shib8.
Add r_showbatches command to debug builds. Shows a list of all draw calls for the next video frame.
Make the frametime graph a bit more pretty.
Our ICE implementation now uses mdns to avoid hairpin issues on lans, for more robustness.
Try to clean up our pext handshake code a smidge.
Prevent FTE servers from getting mistreated as NQ servers, this should restore the 'observe' option.
Only default to sv_listen_nq when running q1.
Make sure infokey(ent,"protocol") reports something unique for qex-protocol clients.
Add fence stuff to q2bsp, for Kingpin support.
Fix a gl buffer handle leak.
Fix up vrinputs frame times.
Fix up replacement texture names for sprite framegroups to better comply with what might be called a standard.
Fix possible out-of-bounds access (reported by qqshka).
Commit 6276 was bad (reproted by qqshka).
Add TURN support to our ICE implementation, along with a few fixups. Must be configured with 'net_ice_servers turn:foo?user=foo?auth=bar'. space-separated list, can also accept additional 'stun:' servers.
Change 'player minlight' rules from the singular player.mdl to any entity with a player's colourmap. This is to fix ktx's vwplayer.mdl not responding like players should. This may also slightly affect TF's sentries and telepads and stuff.
it SHOULD be using pkg-config instead, like the cmake stuff indirectly does. (unfortunately I get lazy, and pkg-config isn't always available either, especially when cross-compiling, and frankly we only need the headers anyway so using the host system's version of the headers is generally fine anyway.) $ pkg-config --cflags opus -I/usr/include/opus forcing it inside the C code potentially prevents fixing it up with CFLAGS (eg: if the required file is /usr/include/opus-VERSION/opus.h instead).
why singleplayer: in singleplayer, you're forced to restart the hour-long map or whatever on death, if you didn't manually save. in coop, monsters stay dead, there's no 'restart' commands doing the autoreloading, etc. it'd be more effective to autosave on player timeout, though by the time they actually time out they've already lost a load of time anyway. in deathmatch, you get extra disk access and stalls for no good reason when your average user won't be able to load the saved games anyway. mostly...
Revision 6270 was bad.
Fix some missing ambient sounds on large bloated maps/mods (this really should have been fixed years ago).
Add a variation of the addentity builtin, for explicit light levels.
Make the various build config defines a little more robust.
Fix up internal client/spec counters so servers don't incorrectly enter idle modes.
Clean up the q3 plugin a little.
Fix fixes.
Be slightly more verbose on tcp failures.
Fix ezhud images not loading.
Fix some qcc bugs with large structs (reported by qqshka).
First weapon wheel implementation.
Fix up our support for _Bool.
Add DP_SV_SHUTDOWN, for qqshka.
Add vid_baseheight and vid_minsize cvars for TCs unhappy with vid_conheight to put in their default.cfg, instead of them feeling a need to force user settings.
Make sure getmodelindex/modelnameforindex and sound equivelents are available in both ssqc and csqc.
wither reported that findkeysforcommandex wasn't present in menuqc. Fix that.
basementApe reported segfaults in the audio init logic.
.ktx 2darray textures were being written incorrectly.
qqshka: seems like allow_download_particles and allow_download_logs cvars are not registered :E
Simplify QW network deltas. By just trusting the server instead of second-guessing it, we should get something more robust (at least for demo playback).
Use the correct function for plugins.
Try to work around an nvidia issue.
compiler warning fix.
Fix warning message.
Make fteqcc handle dupe typedefs better (primarily to fix autoproto).
'qqshka: btw, static actually helped' with hotkeys not working.
Make sure that either f_playmapend or f_specmapend work when f_mapend does, for people that want more specific behaviours. spec is ALWAYS used for demo playback too.
Prevent IQM loader from crashing on bad models.
Modelviewer should cope with more bones now.
Make sure areaportals get reset properly on map changes.
Add lerptime protocol extension. Still WIP, don't record to demos.
Fix up some KTX issues (mostly bot related).
Fix up some .wal palette issues when running q2 bsps in q1 gamedirs.
Mouse4 now acts as a back button in our menus. Binds menu should now report system key names instead of guessed names (better non-qwerty support).
Fix up statically linking the ODE plugin into the engine (eukara wanted me to fix this up).
Update QE compat a bit.
Allow for better encoding of guarenteed-unsigned values.
Make it a smidge easier for server admins to run community maps.