Commit graph

332 commits

Author SHA1 Message Date
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
b095410ce6 Make sizeof into an actual operator instead of a mere intrinsic
Char immediates now support a greater range of escapes for parity with string immediates.
Don't misparse triple field parameters as variable args+junk.
Recognise octal immediates, but warn in case it was unintended.
Fix a bug with initialised const locals.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5760 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-09-11 01:18:32 +00:00
Spoike
a5371f0027 Add 'using' keyword (for muting deprecation warnings), eg __using(foo) {codethatuses(foo);};
Make checkbuiltin also mute deprecation warnings for the referenced builtin within the current scope (read: usually entire containing function).
Move crc-based module-type prints to after any warnings about missing symbols.
Fix load-game bug that was causing strings to be forgotten (reported by Orl).
Add (virtual) mod+pow opcode variants that accept int types.
Add compiler flags to dump symbol lists, field lists, autocvar lists, and file lists. This replaces similar functionality from multiple -v args.
Add a little colour to a few more warnings.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5756 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-09-08 04:44:07 +00:00
Spoike
da6b6c3e6c qcc: Avoid crashing from trying to warn about uninlinable inlines.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5747 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-08-16 04:41:11 +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
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
437a3091e4 Fix some recent bugs in fteqcc.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5740 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-08-03 10:34:44 +00:00
Spoike
a3a0e1eae1 Do the _xyz thing for vectors in structs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5736 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-19 22:39:10 +00:00
Spoike
8a20cb3a70 Annonymous union/struct fields were not initialising their symbol data properly for vector types.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5735 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-19 16:00:31 +00:00
Spoike
4d1a45109c Fix msvc compile issue reported by ericw. Tighten some syntax checks.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5734 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-19 01:38:42 +00:00
Spoike
1ff329062f Fix 'enum int {};' syntax.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5732 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-16 19:23:00 +00:00
Spoike
bd29617dce Fix NOT_I instruction emulation.
Fix 'struct{.float a,b;}' type confusion.
Display a more helpful message when too many globals are used.
Fix warnings about qcc commandline (eg when -max_regs is used).


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5731 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-15 23:50:30 +00:00
Spoike
474aaf68a2 Add support for generating DP-style arrays, now that it looks like they might actually be getting support in DP...
Update list of opcodes usable with -Tdp
Fix issue with logic ops resulting in crashes.
Fix enumflags crashes.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5726 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-13 17:48:16 +00:00
Spoike
3129400101 Fix problem with symbol offsets (read: structs) and inline functions.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5725 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-09 12:27:31 +00:00
Spoike
82ecdfbfa8 Try to fix the bugs that Paril found... I wonder if I broke anything new.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5723 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-07 22:01:53 +00:00
Spoike
f2fe6951b6 Fix up issue with \!int ignoring the upper bits.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5721 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-02 16:28:20 +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
Spoike
3c0743f169 Add offset pointer stores to fteqcc, for writable tempbuffers.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5715 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-06-27 19:32:26 +00:00
Spoike
62a4572f23 Fix some -TFTE issues with xonotic.
Implement OP_STOREF_F, but don't generate it just yet (waiting for next 'stable' build).
Just disable fteqcc.log by default. If this affects adversely you then you should probably just be using fteqccgui instead.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5698 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-05-30 12:12:46 +00:00
Spoike
53deb25340 Add __deprecated keyword. Add strlen intrinsic.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5696 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-05-20 02:00:37 +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
402fd12785 Fix uninitialised locals detection (for both -WF302 and -Olo).
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5693 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-05-14 13:43:32 +00:00
Spoike
5016371660 Slightly better decompiler behaviours.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5651 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-15 06:58:03 +00:00
Spoike
22b494f171 Fix fteqcc struct args.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5541 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-09-11 17:35:03 +00:00
Eukara
e9e15b77f6 qclib: register VF_SKYROOM_CAMERA to make the voices in my shell go away
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5516 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-08-17 23:41:25 +00:00
Spoike
7991260cc0 Add BPTC (aka: bc6+bc7) fallback decompression.
Fix some warnings.
Work around ezquake's PEXT_TRANS bug - now properly gets disabled.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5500 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-08-01 02:13:44 +00:00
Spoike
d6d8d4c695 Fix qcc bug with removed continues/breaks editing other statements after removal.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5429 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-03-05 14:39:47 +00:00
Spoike
2b82c8d0a9 fix lshift qcc bug
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5408 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-02-23 11:45:48 +00:00
Spoike
3250de5851 Fix csqc polygon issue (using explicit glsl that doesn't need normals).
Added gl_texture_lodbias cvar for the luls.
Fix some serious-but-situational traceline issues.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5402 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-02-19 06:49:03 +00:00
Spoike
fa0c73d33b Fixed crash from too many csqc entities (reported by shpuld)
Added .psd, .pbm/.pgm/.ppm, .pfm, and .hdr image formats. Extensions NOT added to r_imageextensions.
png (and the above formats) can now be loaded as RGBA16, instead of being truncated to RGBA8 (8bit pngs not affected).
r_imagelist will now show images from memory, instead of potentially loading new/different ones from disk.
Fix serverbrowser bug being too eager to join the server (eg from alt+tab).
Don't send ipv6 packets to qw/q2 masters. They won't be able to report ipv6 addresses anyway, and this reduces warnings when a host STILL has no ipv6 (my ISP sucks). this does not affect q3/dpmasters, for people without ipv4 addresses.
Tried to improve compat with Bloodshot's particle effects.
Fixed a couple of issues with R_AddTrisoup.
Fixed string tokenizing bug where it was using the wrong buffer size values.
Don't show link-local/localhost addresses in eg the status command (unless developer).
qtv-rel is now an easier target, for new qtv releases.
qtv warning fixes.
added a nailtrail effect to 'high' particles.
fixed terrain shaders.
fixed fogged water issue (on one of bal's maps).
first attempt at gltf2 format support



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5400 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-02-16 19:09:07 +00:00
Spoike
2163fb7c77 Early version of fteqccgui-qt
a few other misc tweaks, eg for the debug protocol in linux fteqw.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5387 fc73d0e0-1445-4013-8a0c-d673dee63da5
2019-01-20 01:00:18 +00:00
Spoike
5b4756f3d9 Lazy GLSL loading, for faster load times.
Fixed some xim issues, for proper keyboard input under x11.
Cmake project can now work for cross compiling win32 targets.
Some other fun-but-pointless stuff.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5344 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-11-27 16:48:19 +00:00
Spoike
2ee8387644 Many general cleaups and warning fixes.
Console code no longer makes assumptions about con_main
Screenshots rework, for screenshot_360, but also some other cleanups.
Fixed an issue with beginpolygon (finally).
Added per-rtlight style strings.
Added cvar to control whether ents will be culled by fog.
Added define to disable IPLOG, etc.
Added r_editlights cvar and related commands, for whenever csaddon isn't available.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5338 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-11-19 06:37:25 +00:00
Spoike
2bedc32ff9 Misc tweaks.
Fix potentially serious crash with sprites+csqc tracelines.
Reworked fallback mouse cursor.
Fix decals on q3 bmodels.
Double-click to select a work to copy is now implemented.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5323 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-10-23 07:09:06 +00:00
Spoike
4ae635bc7b Some misc fixes, mostly win32/msvc focused.
Rename sound flags to include their valid scope.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5322 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-10-17 00:43:04 +00:00
Spoike
b68a6218e8 Fix some stringop-truncation warnings. Enable static freetype in config_fteqw.h. Fix wastes build.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5318 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-10-13 06:20:49 +00:00
Spoike
49ae9573b8 reworked clipboard handling to avoid stalls when pasting in linux.
made a load of functions static (just code style stuff).
downloads menu now deselects any autoselected items, to avoid confusion.
csqc traces can now hit networked ents. I probably need to make some more tweaks to this.
arg completion for flocate+dir+modelviewer commands.
fix autosave not cycling saves when using the vanilla save format.
fix patch collisions with q3bsp submodels.
md3 now supports framegroups too.
added some more buttons to make xonotic happy.
gl_polyblend 2 shows the screen flashes at the edge of the screen instead of the middle.
colormod no longer applies to fullbrights (matching DP). this fixes an issue with xonotic.
fix uninitialised local that was causing issues with bones used as tags.
rewrote qc search_* to use a dynamic array instead of a linked list. this should make it faster to read when there's many handles open at a time.
fte's saved games can now save buffers properly.
fix issue with raster freetype fonts (read: coloured emoji).
initial support for struct-based classes (instead of entity-based classes). still has issues.
execing configs in untrusted packages will no longer run out of sync (fixing a number of afterquake issues).
fix stupid bug with the te_gunshot/etc builtins.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5317 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-10-11 10:31:23 +00:00
Spoike
caa5be6267 Fix qcc crash from stray continue/break/case. Fix warnings from logicops. Recolour error/warning text output on linux.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5311 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-09-29 03:40:50 +00:00
Spoike
5159a801ff lerpfrac3 fixes. unix sockets for the luls (disabled). some misc tweaks for xonotic.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5309 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-09-23 19:35:24 +00:00
Spoike
fe885985ec some xonotic fixes.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5308 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-09-19 02:49:08 +00:00
Spoike
fee84965c1 Fix a stupid logic bug that was dropping stores by folding double nots.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5307 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-09-18 04:35:33 +00:00
Spoike
44850dec4e Try to fix some compile errors with xonotic.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5306 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-09-18 02:05:35 +00:00
Spoike
a7b696ef8c Added r_graphics cvar, so that you can finally turn graphics off/on like modern games (yay simplicity)... Doing so results in ascii-style rendering, just because.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5290 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-08-13 06:27:29 +00:00
Spoike
98b71860ed Fix some warnings. Hopefully fix bullet plugin.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5287 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-08-04 19:00:19 +00:00
Spoike
0b2be8f4ba PACKAGEMANAGER is now a compiletime feature in its own right, and can be enabled separately from WEBCLIENT (although won't be able to download without WEBCLIENT).
SAVEDGAMES is now a new compiletime feature. Deathmatch/dedicated servers can freely disable it.
menuqc now makes sure that any fields it needs are actually present.
developer 1 should now report glsl line numbers a bit more reliably.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5284 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-08-04 07:05:20 +00:00
Spoike
d474f48fd1 rework class fields a little - fields now map onto a single underlaying array symbol, which avoids the need for differently sized underlaying arrays per member that were then conflicting between classes.
tweak the decompiler to deal with fte-optimised progs a little better.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5272 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-07-18 13:02:03 +00:00
Spoike
a450035e80 added scoped enum values.
enum[flags] [class] NAME : TYPE {foo = (TYPE)val, bar=(TYPE)er}; NAME sym = NAME::foo; if (sym == sym.bar) etc;
TYPE can be int or float for enumflags, while non-flags enums can be any type that be initialised comfortably (supposedly) including strings and vectors.
If the class keyword is used, then expect errors if you store other values into the enum.
switch statements should give warnings if a value has no equal case.
also fix some compiler warnings.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5271 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-07-14 18:50:20 +00:00
Spoike
b7784f41d9 Fix potentially serious vulkan performance issue.
Stripped obsolete vk_nv_dedicated_allocation extension.
Misc fixes for warnings.
Linux now defaults to using ~/.local/share/fte instead of ~/.fte for greater consistency.
Other misc linux tweaks.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5267 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-06-18 16:44:29 +00:00