Commit graph

88 commits

Author SHA1 Message Date
Shpoike
0a7f0cd7d4 Undo the damage from 2e51fb74be 2024-12-28 16:24:00 +00:00
Shpoike
dc010d6ec8 fteqw: add memrealloc builtin.
fteqw: make it a bit clearer when there's no tls drivers compiled/loaded.
fteqcc: fix decompiler code to not crash nor misbehave on 64bit cpus.
fteqcc: add -TDP_20241108 to target dp's most recent additions.
fteqcc: add -Fundefwordsize (autoenabled when targetting dp) to tell the compiler to not make any assumptions about runtime pointer types. this skips some optimisations, blocks sizeof(float), casts between pointer and string,  and a few other sizing things, unsafe operations will become errors.
fteqcc: add -FILP32 - changes 'long' datatype to int32_t, which should match common C assumptions around long/size_t/intptr_t
fteqcc: add -Fpointerrelocs (autoenabled with a recent enough fte target). this finally allows pointer globals to be preinitialised with the addresses of other globals.
fteqcc: add -Fomitinternals. this omits the reflection data in the progs roughly equivelent to visibility=hidden om linux. This WILL break saved games, and probably a few other things too, but will greatly reduce stringtable sizes.
fteqcc: improve compat when compiling C code
qclib: fix op_push
2024-12-28 16:24:00 +00:00
Shpoike
d26b741e4b Update the doom3 map support. Still not enabled on account of severe material issues. 2024-12-12 13:42:05 +00:00
Brad D
2e51fb74be
Enhancement: Build Improvements (Unix + CoD Plugin) (#272) 2024-09-13 11:15:15 -07:00
Shpoike
ff1a2299f4 megacommit.
adds qtv relay support.
lots of other misc tweaks.
2024-07-14 19:58:26 +01:00
Shpoike
5685376732 TURN support (stupidly) requires md5 support. Make it available to a couple of other subsystems too. 2024-07-14 19:58:26 +01:00
Shpoike
1a446879d8 Preliminary CoD formats support. 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
3708dab87a Clean up some zlib references. 2024-07-14 19:58:24 +01:00
Shpoike
d5c711014f Make some cmake deps more optional. Don't bail when zlib is unavailable. 2024-07-14 19:58:24 +01:00
Shpoike
a7a620f690 Potentially support a highly-compressed variety of gltf2 files... but needs third party library so will probably remain permanently disabled at compiletime. 2023-08-12 14:04:01 +01:00
Shpoike
e292e1bbfb Attempt to do a better job at internationaliation. 2023-08-12 13:59:55 +01:00
Shpoike
76cbc3c019 Make use of fontconfig where detected by cmake, to avoid having to make sense of the system's font directory mess. 2023-08-12 13:59:54 +01:00
Shpoike
0509f7c83c Tweaks for the flatpak builds. 2023-08-12 13:59:54 +01:00
Fix
6a45573658 remove NPAPI stuff from build 2023-07-09 20:25:38 +02:00
Shpoike
eaf59671a4 Messing around with flatpak. 2023-04-17 03:58:21 +01:00
Shpoike
cae062b142 Make updates menu searchable, make qi plugin a little more friendly. 2023-04-17 03:58:21 +01:00
Shpoike
527233154c Clients can now request the master to initiate an WebRTC/ICE connection with 'sv_public 1' servers. This is primarily for the browser port. Servers now report their srflx address via the status command (with fp, ready for secure copy+paste). 2023-04-17 03:58:21 +01:00
Shpoike
22533dfab8 Fix up some minor portability issues. 2023-04-17 03:58:20 +01:00
Shpoike
b095266070 Fix cmake-on-mac build errors. 2023-04-17 03:58:20 +01:00
Spoike
407c4eca8b Rework gamepad menu bindings, should be more intuitive now.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6320 fc73d0e0-1445-4013-8a0c-d673dee63da5
2023-01-09 05:12:59 +00:00
Spoike
2383c618ee Fix up some SDL issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6315 fc73d0e0-1445-4013-8a0c-d673dee63da5
2023-01-09 05:12:12 +00:00
Spoike
f8af9b18eb Fix up fteqcc's typedefs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6303 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-08-08 22:45:19 +00:00
Spoike
c45b0e5cf8 Fix up statically linking the ODE plugin into the engine (eukara wanted me to fix this up).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6243 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-05-28 17:58:53 +00:00
Spoike
ba9a852d9d Move the q3 files into the plugins subdir.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6216 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-03-08 05:33:52 +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
Eukara
7569a44237 Merge patch from ticket #106 from illwieckz, allowing more control over what Cmakelists.txt builds
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6205 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-03-06 20:38:57 +00:00
Spoike
dd03b69609 Move our gltf's json parser into the engine-proper, implement QC builtins to make json parsing available to qc. API defined by Joshua Ashton.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6188 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-02-19 20:48:40 +00:00
Spoike
42430d4712 Fix some misc memory leaks and a few other minor issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6176 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-30 05:55:01 +00:00
Spoike
bf44769b4d Add support for 'connect dtls://foo' without needing extra upgrading stuff first. This change allows for QEx to establish a dtls connection to our server, though the reverse still doesn't work.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6156 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-08 10:01:05 +00:00
Spoike
4d00fd72b5 Add hl2-bsp support to our hl2-formats plugin. This is not a final version - there are multiple unresolved issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6115 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-08 08:47:16 +00:00
Spoike
462f3e4a20 Basic vmt support. Requisite GLSL files are still separate.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6114 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-08 08:47:05 +00:00
Spoike
0f8ea71841 Add hl2-mdl support to the hl2 plugin.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6113 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-08 08:46:57 +00:00
Spoike
195fd2b6f3 Add vtf loading to hl2 plugin, too.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6112 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-08 08:46:48 +00:00
Spoike
485f2299c0 Start HL2 formats plugin, currently providing only vpk support.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6111 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-08 08:46:40 +00:00
Spoike
e89cc4dc5a Fix up filesystem plugins slightly. Remove engine references to VPK support.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6100 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-03 20:31:02 +00:00
Spoike
ca999f6eb4 Embed some basic metadata into plugins. Still needs signatures.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6067 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-10-05 05:05:22 +00:00
Spoike
b91273a930 Fix up CEF plugin a little.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6066 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-10-05 05:05:15 +00:00
Spoike
87245a290a Fix up SDL build to enable our multithread stuff.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5996 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-25 22:55:17 +00:00
Spoike
04689373a3 Add disabled-by-default openssl plugin. Try to fix up ffmpeg build rules.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5892 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:44:05 +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
d5fa80a0d4 Tweak the cmake stuff to make it easier to exclude various specific targets for no real reason.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5852 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-13 10:17:21 +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
4c3b6b09b8 Add prefixes to cmake plugin target names.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5828 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-07 06:54:07 +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
22ea0b87d7 Try to fix up some qcc inline logic to no longer result in so many offset_0 values.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5744 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-08-15 04:31:27 +00:00
Spoike
51ef92fa52 Add map selection list to menusys. Some other minor tweaks.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5743 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-08-13 10:09:39 +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
5501fa249d 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@5704 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-06-13 00:05:47 +00:00