Commit Graph

329 Commits

Author SHA1 Message Date
Spoike 578d12f254 Fix some updater issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6168 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-19 08:27:42 +00:00
Spoike 2ed9c6a968 Proper support for lit sprites.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-17 09:13:05 +00:00
Spoike 0dbb8919be Make the ent lighting distance match QS by default - increasing the distance from vanilla's 2048 to 8192.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6151 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-08 09:59:54 +00:00
Eukara f612b97fc9 Animate surfaces at twice the speed when rendering HLBSP.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6147 fc73d0e0-1445-4013-8a0c-d673dee63da5
2022-01-03 01:57:23 +00:00
Spoike cfaef2bf11 Refuse to load maps exceeding the bsp29 clipnode limit. This avoids possible infinite loops or other weirdness in favour of a clear error. The QBSP really ought to be doing this too.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6146 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-12-20 10:08:01 +00:00
Spoike cfb1814be3 Migrate oldviewcluster stuff into the individual bmodel state. This allows us to clean things up a little.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6144 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-12-20 10:07:46 +00:00
Spoike cfff8f49f5 Improve robustness in the face of buggy QBSP versions.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6124 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-14 00:35:13 +00:00
Spoike 6a2c21f14d Fix up d3d builds a smidge.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6108 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-04 22:33:00 +00:00
Spoike 8212ead238 More toys for map-loading plugins.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6106 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-03 20:31:52 +00:00
Spoike 022e42c6c7 Move model loaders over to variable-length file-magics.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6104 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-11-03 20:31:32 +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 8267939edb Misc tweaks, including a corrupt-bsp crash fix.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6070 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-10-05 05:05:43 +00:00
Spoike e244436641 Fix a couple of silly bugs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6050 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-28 07:10:03 +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
TimeServ 904fa4ce64 pass integer key reference instead of pointer reference to particle systems, remove switch fallthrough on q64 bsp switch
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6041 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-23 22:14:34 +00:00
Spoike d0d2c31f38 Fix other stuff after quake64 bsp support.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6033 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-23 06:36:32 +00:00
TimeServ ee1a93d01b preliminary quake 64 remastered bsp support (mipmaps currently busted), reduce missing anims in bsp to warning (needed for q64)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6031 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-21 18:16:13 +00:00
Spoike cbec2d0660 Two minor fixes.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6024 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-19 06:02:10 +00:00
Spoike 6f86bf0118 Strip .crh support. Noone ever used it, and -wrbrushes is superior anyway and actually has toolchain support.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6018 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-14 04:04:01 +00:00
Spoike b76d139a58 Show relight times, cos why not. Fix hdr pre-relight levels.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6014 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-08-09 23:06:23 +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 e2b88fafc8 Fix stupid bug.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5991 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-23 19:11:38 +00:00
Spoike 90aae69db3 Try to make things a little more stable.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5983 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-19 22:47:29 +00:00
Spoike 139b916e46 Make scenecache less... flickery.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5953 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-06 00:12:20 +00:00
Spoike 93253a026a My realignment logic wasn't actually realigning the bsp data...
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5936 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-01 15:43:18 +00:00
Spoike 2338e5b505 Add a cvar to restore buggy dlight range behaviours, requested by Orl.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5928 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-07-01 01:16:29 +00:00
Spoike 5c585b0e6e Prod r_temporalscenecache a bit to make it more tolerant of those inefficient shaders.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5918 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-25 18:50:53 +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 27831f7265 Fix some misc issues that noone else is likely to notice.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5911 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 19:13:33 +00:00
Spoike b34618507a Try to reduce memory usage.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5902 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:46:06 +00:00
Spoike aa4cfe91b9 Fix oriented sprites - quake draws them backwards.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5893 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-21 13:44:14 +00:00
Eukara 9194f5cddf Fix rendering of turb surfaces on HLBSP
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5886 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-18 20:37:57 +00:00
Spoike d85cdd4c50 my map package tweak was defective. whoops. try again.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5880 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-06-01 10:56:08 +00:00
Spoike 1979150076 Preliminary attempt at loading zips concatenated onto the end of bsp files, instead of having servers load 5000+ different pk3s up front.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5876 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-28 07:07:48 +00:00
Spoike fb54cc140b Lit sprites should not be additive. Make gl_blendsprites 2 replicate that tenebrae behaviour instead. Allow colormod to oversaturate sprites.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5868 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-27 11:33:48 +00:00
Spoike 2538e37e28 Add a preview for 2d array textures. Bind gl textures according to texture type rather than hardcoded assumptions, making it more consistent with the other rendering APIs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5839 fc73d0e0-1445-4013-8a0c-d673dee63da5
2021-05-09 13:01:15 +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
Eukara 42d810b320 Support for HL SPR's INDEXALPHA blend type.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5754 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-09-05 18:58:12 +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 b005d9fdcd Try to fix missing impulses bug.
Fix skybox fog glsl compile error.
Implement DP_QC_FS_SEARCH_PACKFILE, search_getpackagename, and search_fopen.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5737 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-07-21 07:58:54 +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 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 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
Eukara b8a81d1868 Permission to kill the glass-shader hack.
It would have been cvar'd, but we figured it'd be a waste of LOC.
Handle this in the game-logic instead.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5663 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-29 18:37:10 +00:00
Spoike 11e41f1e7d Fix some Q2 issues.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5659 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-28 01:46:25 +00:00
Spoike b63dc8b880 prepare for proper binary auth instead of depending upon tls certs (using sha2(512) to ensure no modification). probably buggy on windows so not fully enabled yet.
allow for binary updates on linux as on windows (-allowupdate for modified/nonsvn builds).
dlightmask is now size_t, because we might as well allow that on 64bit cpus, this allows for 64 lightmaphack lights instead of 32.
fix potential openal issue with source=0.
added q3bsp_ignorestyles cvar to ignore rbsp styles (and reduce needed batch counts), should only be used on maps with subtle lighting changes (ones that are properly lit without toggling any lightswitches).
add support for directly loading foo.bsp.gz
Added prints to clarify why servers might be listed under the 'UNKNOWN' category in the master server. Attempt to show hostnames anyway, to make it a little more obvious who's responsible for those badly configured servers.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5656 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-25 21:29:30 +00:00
Spoike 4beaf0e0c8 Fix miptex crash.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5647 fc73d0e0-1445-4013-8a0c-d673dee63da5
2020-03-08 18:10:50 +00:00