Commit graph

364 commits

Author SHA1 Message Date
Shpoike
ff1a2299f4 megacommit.
adds qtv relay support.
lots of other misc tweaks.
2024-07-14 19:58:26 +01:00
Shpoike
69982c9b96 temp 2024-07-14 19:58:25 +01:00
Shpoike
8dadfb4878 Added sys_openfile console command(and menu option) to web and flatpak(via cmake+dbus) builds, to 'install' packages on sandboxed systems a bit more easily.
Cmake: Add FTE_WERROR option, defaults to true in debug builds and off in release builds (in case future compilers have issues).
Cmake: Pull in libXscreensaver so we don't get interrupted by screensavers when playing demos.
Make: Added `make webcl-rel` for a web build without server bloat (eg for sites focused on demo playback. Yes, this means you XantoM).
fteqcc: Include the decompiler in fteqcc (non-gui) builds ('-d' arg).
fteqcc: Decompiler can now mostly handle hexen2 mods without any unknown opcodes.
Allow ezHud and OpenSSL to be compiled as in-engine plugins, potentially for web and windows ports respectively.
Web: Fix support for ogg vorbis. Add support for voip.
Web: Added basic support for WebXR.
QTV: Don't try seeking on unseekable qtv streams. Don't spam when developer 1 is set.
QTV: add support for some eztv extensions.
MVD: added hack to use ktx's vweps in mvd where mvdsv doesn't bother to record the info.
qwfwd: hack around a hack in qwfwd, allowing it to work again.
recording: favour qwd in single player, instead of mvd.
Protocol: reduce client memory used for precache names. Bump maximum precache counts - some people are just abusive, yes you Orl.
hexen2: add enough clientside protocol compat to play the demo included with h2mp. lacks effects.
in_xflip: restored this setting.
fs_hidesyspaths: new cvar, defaults to enabled so you won't find your username or whatever turning up in screenshots or the like. change it to 0 before debuging stuff eg via 'path'.
gl_overbright_models: Added cvar to match QS.
netchan: Added MTU determination, we'll no longer fail to connect when routers stupidly drop icmp packets.
Win: try a few other versions of xinput too.
CSQC: Added a CSQC_GenerateMaterial function, to give the csqc a chance to generate custom materials.
MenuQC: Added support for the skeletal objects API.
2024-07-14 19:58:24 +01:00
Shpoike
d781018df3 Add all the junk for network compat with Q2E.
Defaults to using Q2E's protocol 2023 (but not netchan).
FTEQ2 servers can host both vanilla and Q2E clients simultaneously, but its recommend to use the vanilla gamecode to avoid localisation issues.
2024-07-14 19:58:24 +01:00
Shpoike
3708dab87a Clean up some zlib references. 2024-07-14 19:58:24 +01:00
Daniel Svensson
c9687bfd7b Use float[3] for MSG_ReadPos and MSG_WriteDir.
vec3_t is not available in header, but float[3] matches better than float*.
2023-12-25 11:07:30 +01:00
Shpoike
5dba16de0d Fix up some issues with drawpic(HTTPURL) 2023-08-12 14:04:01 +01:00
Shpoike
75166b0815 Fix up an __int64 networking issue. allow qc's sprintf builtin to print them ('q' modifier, also works for doubles when paired with the 'float' modifier as appropriate). 2023-08-12 14:04:01 +01:00
Shpoike
0509f7c83c Tweaks for the flatpak builds. 2023-08-12 13:59:54 +01:00
f317282571
Quake II: read the skin, effects, renderfx, and solidsize fields as unsigned shorts (#200)
* Quake II: read the skin, effects, renderfx, and solidsize fields as unsigned shorts.

* Add missing header definition for int MSG_ReadUShort();

* Rename MSG_ReadUShort() to MSG_ReadUInt16() as per @Shpoike's wishes

* solidsize needs to be read in via MSG_ReadSize16 because it does protocol conversions (@Shpoike)

* Q2UFRAME16 and Q2USOUND should be read unsigned as well, as it matches the internal data within FTE (@Shpoike)
2023-07-26 12:12:21 -07:00
fhomolka
6d83a3218a
Remove NaCl code (#190)
* Remove the nacl dir

* Remove nacl from ifdef checks shared with other platforms

* Remove nacl from build bash scripts

* More removal of nacl from bash scripts

* Remove nacl-specific code from the engine

* More removal of nacl-specific code from the engine

* remove nacl-specific code from the Quake 3 plugin

* Remove nacl from readme (also seems to have force LF line endings)

* Remove nacl mention from browser.txt

* Remove nacl from Makefile

* Remove nacl from dotnet2005 solution file (lol)

* Correcting an endif, this did not end nacl

* Clarification for NaCL no longer needed

* Left small todo for myself

* Partially undo f44daef091bcc5917b0ddb2cbe41ebdd9738f770
the if preproc checking for `_DEBUG` was incorrectly removed
2023-07-01 15:20:13 -07:00
Shpoike
f2d54f30d8 Update DTLS stuff, fixing certificate pinning bugs.
We should now support dtls1.2 under win10 (otherwise win7+8 is still stuck with 1.0).
SSQC can now query client certificate info via infokey - *cert_sha1 or *cert_dn
Server addresses can be postfixed with eg ip:port?fp=BASE64 to provide a fingerprint to verify the server without depending on cert authorities.
2023-04-17 03:58:20 +01:00
Spoike
fcbfc90892 Make our mini http server report timestamps better, so wget's timestamping is happy.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6338 fc73d0e0-1445-4013-8a0c-d673dee63da5
2023-01-09 05:14:57 +00:00
Spoike
62e8bb5774 Prevent FTE servers from getting mistreated as NQ servers, this should restore the 'observe' option.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6294 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-07-28 02:17:27 +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
1068a62d75 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.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6266 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-06-19 15:17:48 +00:00
Spoike
4fc371c7b4 compiler warning fix.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6255 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-05-28 18:00:30 +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
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
6ceb76233c Move Quake3 support to a plugin. There's still a number of stubs+bugs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6209 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-03-08 05:31:34 +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
5fb58a8990 Trim some redundant stuff from ftemaster.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6174 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-28 10:48:21 +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
310f4d0efc Establish equivelence for some of the vanilla+rerelease maps. Some have notable bmodel/start differences so cannot be considered equivelent.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6158 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-08 10:01:22 +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
c2d3d3a41b Fix up translations stuff with the rereleased version of quake.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6038 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-23 06:37:21 +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
cf31dcccad Add 'schemes' value to fmf files, for games to list (multiple) uri schemes with which to easily start the engine and connect to a specified server. Also add cl_verify_urischeme, a bit like ezquake has.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6021 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-19 06:01:42 +00:00
Spoike
fb239abaf7 Try to fix windows builds.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6009 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-05 16:49:25 +00:00
Spoike
221d4032af FTE_TARGET=msvc now invokes some old version of msvc via wine, old FTE_TARGET=vc removed. Related code tweaks to make it a bit happier.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6001 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-04 21:17:31 +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
0e6a0b789e Misc minor fixups.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5973 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-17 15:11:15 +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
bd72a60c98 Hopefully this change will make the illegible server messages on fortressone's map changes a little bit easier to track down.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5950 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-06 00:11:58 +00:00
Spoike
713c5676ab Add -exec commandline arg (to override every gamedir). Try to fix or diagnose other issues Maverick was having.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5931 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-01 01:16:47 +00:00
Spoike
f0f7002a6f Use some atomics to try to get a tiny loader-thread performance increase.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5929 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-01 01:16:35 +00:00
Spoike
2363b05216 If texture names can have map-specific prefixes, shaders must also.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5912 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-22 14:40:53 +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
a12c453c30 Try to make some semblence of sense from git revisions/tags.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5903 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:46:13 +00:00
Spoike
d4714cab52 Rework tls/dtls stuff into a more formal crypto interface instead of lots of ifdefs all over the place.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5891 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:43:57 +00:00
Spoike
b3c469f106 Fix out-of-bounds read in COM_DefaultExtension
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5887 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:36:24 +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
5ceb4730ad COM_FileBase should strip .ext.gz instead of leaving the .ext there - the .gz is handled by our filesystem so we try to pretend that its not there. This fixes loading textures/foo/bar.png files from inside foo.bsp.gz files.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5882 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-01 17:11:13 +00:00
Spoike
e6c9a979c7 Some obituaries were not getting coloured, others could not be linked. Also underline console links on mouseover to encourage users into realising that they can actually be clicked.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5865 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-20 15:35:26 +00:00
Spoike
c3038db058 Let FTE know about git revision info, for people that refuse to use svn...
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5844 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:01:50 +00:00
Spoike
190070d277 Basic ktx2 support.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5832 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:00:21 +00:00
Spoike
2cf2247b84 Optimize endian routines when we know the endian at compile time.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5830 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:00:00 +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
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
744b9a25db try to fix common-symbol conflicts in windows builds.
attempt to provide some better gettext support for engine strings (especially cvar/command descriptions). still no translations available though.
try to optimise hldml rendering a little.
fix issue with menuqc models rendering as black when fog is active.
use threads to try to reduce stalls from player-skin switches.
add sys_clocktype cvar to linux builds too, with CLOCK_MONOTONIC by default.
enable dtls certificate pinning log stuff.
fix r_viewmodel_fov being used instead of fov cvar.
fix possible segfault when egl driver fails.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5742 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-08-13 08:39:48 +00:00