Commit graph

456 commits

Author SHA1 Message Date
Spoike
df6b651eeb 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).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6309 fc73d0e0-1445-4013-8a0c-d673dee63da5
2023-01-09 05:11:34 +00:00
Spoike
16c8e521ef Protocol compat with the Rerelease Update 4, at the expense of earlier versions.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6306 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-08-19 13:30:16 +00:00
Spoike
4fce9e090d Fix up vrinputs frame times.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6289 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-07-28 02:16:54 +00:00
Spoike
217a49c08d Commit 6276 was bad (reproted by qqshka).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6286 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-07-28 02:16:37 +00:00
Spoike
c4b043d39f Fix some missing ambient sounds on large bloated maps/mods (this really should have been fixed years ago).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6281 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-06-29 07:20:24 +00:00
Spoike
dae4ad6ed6 Fix up internal client/spec counters so servers don't incorrectly enter idle modes.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6276 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-06-26 08:08:36 +00:00
Spoike
0f8d07b8e8 Add lerptime protocol extension. Still WIP, don't record to demos.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6247 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-05-28 17:59:26 +00:00
Spoike
255ce795a0 Fix up some KTX issues (mostly bot related).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6246 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-05-28 17:59:17 +00:00
Spoike
2ac548e17f Make use of fitz's interpolation hints when they're provided.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6229 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-04-16 20:28:11 +00:00
Spoike
6dbfc0ebbe Fix msg_readcount issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6218 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-03-08 05:34:26 +00:00
Spoike
c2633078ff Try to fix up package downloads, and dp-compat downloads too.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6199 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-03-01 02:51:55 +00:00
Spoike
01c498d136 Remove Q2 hacks from the usercmd_t type. Just translate them without trying to be clever.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6194 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-02-19 20:49:42 +00:00
Spoike
86d2f0e0d4 Provide support for webrtc's sctp-over-dtls stuff, providing browser+native connectivity (via broker).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6171 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-28 10:48:01 +00:00
Spoike
6c112c3368 Attempt to support more of QuakeEx's network protocol changes, including a 'connectqe host' command to connect to QEx servers with the appropriate handshakes (requires manual PSK setup).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6162 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-16 18:41:44 +00:00
Spoike
80fcfa7938 Hack in some support for qex's clc differences. Add some extra qex-specific svc differences to try to work around its prediction issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6157 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-08 10:01:15 +00:00
Spoike
423b549fa8 Support for qqshka's ktx api version 16.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6145 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-12-20 10:07:55 +00:00
Spoike
2b81527a69 Make our q2/q3 bsp code more modular, with q2/q3 gamecode treating it more generically.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6097 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-03 20:30:40 +00:00
Spoike
8ae9fe1141 Open dp's download protocol to more client types (for qss's benefit). Work around some DP bugs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6072 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-10-05 05:05:56 +00:00
Eukara
e69e81b9f5 input_sequence now formally added, will let the server know which input
sequence we're on when handling input_ globals.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6061 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-09-15 20:33:54 +00:00
Spoike
da46f65679 Fix misc rerelease issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6042 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-24 06:06:05 +00:00
Spoike
783185cc59 Comment/etc tweaks.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6025 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-19 06:02:18 +00:00
Spoike
ac6605e0d7 Tweak inputs some more.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6023 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-19 06:02:03 +00:00
Spoike
cd45de7a1e Scoreboard display will now handle big games better, instead of truncating the list.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6007 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-04 21:18:20 +00:00
Spoike
14e7517b16 Support ezquake's kinda flawed float-ent-coords workaround extension. Update PEXT2_VRINPUTS for base angles (for angle nudges when standing on rotating objects).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5998 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-04 21:16:57 +00:00
Spoike
da27411b26 Fix up some stupid bugs that were causing q2 to completely fail.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5992 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-23 21:06:52 +00:00
Spoike
9735064a89 Tweak splitscreen a little to work around a KTX issue.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5967 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-17 15:10:10 +00:00
Spoike
e90a0b3945 Update VR-Inputs extension. Should now be more resilient against impulse loss, should also report better ping times.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5966 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-17 15:10:01 +00:00
Spoike
18c0e79c47 Fix up SOLID_CORPSE a little.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5952 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-06 00:12:12 +00:00
Spoike
d602e51e54 Try to fix up some splitscreen quirks.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5917 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-25 18:50:42 +00:00
Spoike
0ca1e9177b Fix up some splitscreen issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5913 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-23 02:14:13 +00:00
Spoike
f810be4830 Make input_servertime available to ssqc too, so it can guage the player's latency more accurately.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5908 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:46:52 +00:00
Spoike
8b4a282c47 This should match Reki's revision, hopefully.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5907 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:46:44 +00:00
Spoike
19073fe2a5 Prevent ftenq from overflowing its svc_serverdata quite so easily.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5896 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:44:34 +00:00
Spoike
c035801161 Add support for maps/foo.bsp.xz too, for better compression.
Seeking within files inside zips is now slightly more efficient.
Fix issue with servers decompressing .gz before download...

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5883 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-02 15:29:44 +00:00
Spoike
e789d4400b Hack around the qc code to restore its jump sound when using autobunny.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5860 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-19 04:49:52 +00:00
Spoike
f35928f4fd OpenXR stuff should be a little more usable now.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5850 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:02:49 +00:00
Spoike
692fe2c211 Add serverside pm_autobunny support. Will result in prediction misses for older clients.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5833 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:00:30 +00:00
Spoike
320cf1cee5 Try to fix some compile issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5814 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-04-14 06:10:37 +00:00
Spoike
b9cd6ec91b openxr plugin: tweaked - inputs should be working properly now, and are visible to csqc. subject to further breaking changes, however.
_pext_vrinputs: added cvar to enable vr inputs protocol extension allowing vr inputs to be networked to ssqc too. defaults to 0 for now, will be renamed when deemed final.
updates menu: the prompt to enable sources is now more explicit instead of expecting the user to have a clue.
updates menu: added a v3 sources format, which should be more maintainable. not final.
updates menu: try to give reasons why sources might be failing (to help blame ISPs if they try fucking over TTH dns again).
presets menu: no longer closes the instant a preset is chosen. some presets have a couple of modifiers listed. force the demo loop in the background to serve as a preview.
prompts menus: now does word wrapping.
ftemaster: support importing server lists from other master servers (requested by Eukara).
server: try to detect when non-reply inbound packets are blocked by firewalls/nats/etc (using ftemaster to do so).
qcvm: added pointcontentsmask builtin, allowing it to probe more than just world, with fte's full contentbit range instead of just q1 legacy.
qcvm: memfill8 builtin now works on createbuffer() pointers.
qcvm: add missing unsigned ops. Fixed double comparison ops. fixed bug with op_store_i64. added missing OP_LOADP_I64
qcc: added '#pragma framerate RATE' for overriding implicit nextthink durations.
qcc: fixed '#pragma DONT_COMPILE_THIS_FILE' to not screw up comments.
qcc: added __GITURL__ __GITHASH__ __GITDATE__ __GITDATETIME__ __GITDESC__ for any mods that might want to make use of that.
qcc: fix up -Fhashonly a little
setrenderer: support for vulkan gpu enumeration.
rulesets: reworked to support custom rulesets (using hashes to catch haxxors, though still nothing prevents just changing the client to ignore rulesets)
bspx: use our BIH code for the bspx BRUSHLIST lump instead of the older less efficient code.
(static)iqm+obj: these model formats can now be used for the worldmodel (with a suitable .ent file). Also using BIH for much better collision performance.
pmove: tried to optimise PM_NudgePosition, should boost fps in stress tests.
wayland: fix a crash on startup. mousegrabs now works better.
imagetool: uses sdl for previews.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5813 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-04-14 05:21:04 +00:00
Spoike
432bc96456 Add r_meshroll, like r_meshpitch (hexen2 requires it set to -1 - they made the bug worse).
HTTP client code now tracks the reason for failure better (so we can distinguish between dns, no response, disconnects, and tls cert issues).
Downloads menu shows reasons for failure for its various sources.
make hexen2's +infoplaque button work even when tab isn't held! Yes! usability! who'd a thought it?
Try to clean up some client-only build issues.
Added 'librequake' as a recognised game name (mostly so that we can reuse the quake-specific engine compat settings.
.map support now supports patches enough to query+create(+network)+select them. Collisions are basically defective though.
qcc: Remove char as default keyword.
qcc: Fix some recent regressions.
sv: Add 'sv_protocol csqc' setting to force csqc protocols on clients that disabled handshakes, for mods that NEED csqc support. other options include 'fte1' and 'fte2', if you want to force extra stuff. Engines that don't support the selected protocols will crash out so only set these if your mod/map always requires it.
sv: default to qw physics whenever a mod defines the SV_RunClientCommand, even if its an nq mod.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5775 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-10-06 03:17:28 +00:00
Spoike
e3fdbfcdbd qcc: Add unsigned int, long/__int64, unsigned long/__uint64, and double datatypes to qcc+qcvm.
qcc: Add '#pragma opcode enable|disable NAME' to override whether an individual opcode may be generated for the current target.
nq: Fix smartjump on nq servers.
nq: Fix enemyskin/teamskin stuff on nq servers.
Rework show_fps cvar to give a greater focus on the timings graph.
Update updates menu to allow enabling/disabling specific sources.
Add separate settings for ef_red+ef_green+ef_blue.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5768 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-09-29 07:09:01 +00:00
Spoike
b380421e42 Lets try using _LARGEFILE64_SOURCE in 32bit linux builds. Not that anyone will notice.
Clarify the 'too many alternate clients' messages.
Gamepad movement should respond to +speed.
favour fte's nq protocols over dp ones when both are supported by the client, to boost compat with qss.
try to generate proper utf-8 filenames from player/team names when recording mvds, instead of bad char encodings.
Fix loading saved games with splitscreen enabled.
pr_dumpplatform can now optionally filter symbols via some specific external files, adding deprecated tags for any symbol not also supported by DP and QSS.
Rework CSQC globals to use macros, to ensure completeness and consistency.
rework sv_csqcdebug to use special svcs. This should make it more robust.
Fix some scary warnings when vid_reloading the vulkan renderer.
Fix a possible segfault from opengl+rtlights.
Mousewheel will now interact better with engine menus.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5757 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-09-08 05:11:09 +00:00
Spoike
856cad09cc Try to switch some types in preparation for potentially switching to 64bit types (so qc timer can use doubles for longer map uptime).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5718 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-06-27 19:32:49 +00:00
Spoike
5aa11ddbb1 makefile: attempt to fix freetype when not using makelibs (should make it slightly easier for people to compile with msys2 without needing to resort to cmake).
emenu: clean up hexen2's maplist options slightly.
emenu: modelviewer should now be slightly more friendly (click+wasd to move around).
particles: fix up randomised s coords.
csqc: try to fix issue with applycustomskin not refcounting properly.
client: [s_]precache and (new) mod_precache cvars can be set to 2 to precache the resources after load, for faster loading at the expense of some early stutter, without risking later mid-game stuttering.
gltf: add support for morphweights in a cpu-fallback path. don't expect good performance on surfaces with morphtargets for now.
gtlf: add some support for gltf1 files. far from perfect.
shaders: gltf1 semantics handling
shaders: const correctness
iqmtool: fix up mdl skin export.
iqmtool: integrate the engine's gltf2 loader. works with animated models, but unanimated ones suffer from basepose-different-from-bindpose issues.
q3bsp: hopefully fixed bih traces. still disabled for now.
qc: change default value of pr_gc_threaded to 1.
qcext: add the '__deprecated' keyword to various symbols in fteextensions.qc, now that fteqcc supports it.
ssqc: spit out a more readable error for WriteByte(MSG_CSQC,...) outside of SendEntity.
ssqc: add registercommand builtin, for consistency with menuqc and csqc (though only one can register any single command).
sv: report userinfo/serverinfo sizes (some clients still have arbitrary limits, plus its nice to see how abusive things are)
sv: try to optimise sv_cullentities_trace a little.
movechain: relink moved ents.
csqc: add spriteframe builtin, for freecs to use instead of more ugly less reliable hacks.
menuqc: fopen("tls://host:port", FILE_STREAM) should now open a tls stream. tcp:// should also work.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5703 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-06-12 23:29:58 +00:00
Spoike
80474cc3be Fix web+android targets. Fix some relatively recent quake2 bugs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5695 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-05-16 13:12:58 +00:00
Spoike
c949500da8 Implement preliminary openxr plugin. inputs are still useless (can HOPEFULLY result in some prints, but nothing else), and there's no considerations for 2d things.
Fix prediction issues with the ftenq protocol.
Fix some console image previews.
Added mod_precache cvar. set to 0 to significantly reduce memory usage in xonotic...
Prevent xonotic's random file writes from forcing full worker syncs, for faster loading.
QTV connections are now accepted only from localhost peers by default.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5694 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-05-14 15:50:26 +00:00
Spoike
08ccf2d0a8 Fix up some netquake initiak angle quirk, and related quirks.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5688 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-04-30 14:33:58 +00:00
Spoike
4c2066601a Support connecting subnodes to servers over tcp (instead of depending on fork).
Fixed up the -netquake / -spasm / -fitz args slightly, should actually be usable now.
sv_mintic 0 is now treated as 0.013 when using nqplayerphysics, to try to make it smoother for nq clients.
Preparing for astc's volume formats. Mostly for completeness, I was bored. Disabled for now because nothing supports them anyway.
Fix broken mousewheel in SDL2 builds.
Fix configs not getting loaded following initial downloads in the web port/etc.
Make the near-cloud layer of q1 scrolling sky fully opaque by default (like vanilla).
Sky fog now ignores depth, treating it as an infinite distance.
Fix turbs not responding to fog.
r_fullbright no longer needs vid_reload to take effect (and more efficient now).
Tweaked the audio code to use an format enum instead of byte width, just with the same values still, primarily to clean up loaders that deal with S32 vs F32, or U8 vs S8.
Added a cvar to control whether to use threads for the qcgc. Still disabled by default but no longer requires engine recompiles to enable!



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5683 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-04-29 10:43:22 +00:00
Spoike
e8aa715763 disabled some quake-only teamplay stuff in non-quake builds.
GL: r_dynamic -1 is now r_temporalscenecache 1, which makes menu options etc a little friendlier. fixed a serious memory leak.
GL: Lightmaps are now uploaded using pbos to reduce cpu stalls (especially with temporalscenecache) and the resulting periodic framerate drops. Requires gl4.4.
PM: moved manifest-downloads to the package manager. still needs some proper testing.
PM: Fixed bug with downloading updates from every known mirror for that update.
PM: Fixed bug with duplicate mirrors...
PM: menuqc is now able to query available updates.
engine's Draw_TextBox centers the text box more appropriately and easily.
SV: added sv_autooffload cvar, when set the map command will automatically create a server in a separate process to reduce the effects of stutter in inefficient ssqc mods.
Menu: menu_mods now shares data with getgamedirinfo builtin.
MenuQC: Added some extra properties to the getgamedirinfo builtin.
MenuQC: Added Menu_RendererRestarted entrypoint.
MenuQC: _vid_renderer_opts cvar now has a value that actually reflects the windowing systems in the build, rather than just renderers.
CQSC: Added getlocationname builtin.
ALSA: device names are now more consistent with other audio drivers.
SV: added unsavegame console command, to delete unwanted saved games.
SV: hashtable entries are now saved into saved games.
SV: reworked player remapping strategy when loading games. Player slots are now directly swapped serverside, not reconnected.
SV: resend all csqc entity state when a client signals that it started recording a demo.
SV: Added SOLID_BSPTRIGGER as a shapely alternative to the aabb SOLID_TRIGGER. modelindex must still be set for this to work.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5668 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-04-19 01:23:32 +00:00
Spoike
9aa87ad28e Fix the SendEntity geomsets issue Eukara found.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5655 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-25 20:56:01 +00:00