Commit Graph

361 Commits

Author SHA1 Message Date
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
Marco Cawthorne 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
Spoike 6bea300f30 Allow menuqc to access the clipboard. Fix some c++ish warnings. Fix SDL build linker issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5728 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-14 00:48:56 +00:00
Spoike 0bda1b5c38 Add support for writing uhexen2's v7 progs files.
Try to fix issues with newer gcc not merging common symbols any more.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5720 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-01 05:32:21 +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