Commit graph

143 commits

Author SHA1 Message Date
Spoike
402aa52362 misc fixes, tweaks, and hacks.
qc rt target api now uses names instead of numbers. shaders can name such rendertargets in advance.
added timing info to qc profiling, instead of just opcodes executed.
added sv_showconnectionlessmessages, to show all messages that don't relate to a client, so omc can see if he's getting DDOSed easily.
try to show proper error messages with the xmpp plugin, at least for certain things.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4714 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-08-03 14:47:47 +00:00
Spoike
4d7cc67ebe fix recent prediction issue.
added current bandwidth info to the status command. added cl_status command for similar things for client stuff.
minping delays now using floats instead of milliseconds.
fix waterjump bug with qc player physics.
fix flymode friction.
fixed illegible server message with ezquake going through portals. rendering is still ugly, but at least it can be used.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4708 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-07-02 03:20:40 +00:00
Spoike
b026bbacfe add support for ipv6 scope ids (so you can use the correct link-local addresses).
fix portal rendering with non-identity model matricies. add portal csg behaviour (with nq physics at least).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4686 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-06-16 16:21:28 +00:00
Spoike
d143045118 fix !!ver so it actually works, allowing later glsl version (for stuff like 'flat')
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4683 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-06-08 09:36:15 +00:00
Spoike
c415ead7d8 Attempt to improve areaportal support. now networked (so visible clientside), but will probably break anyway, if doors open before players join. should also block some rtlights, although perhaps not completely.
disable the use of quakespy stuff, using a dynamic port and no stuffcmds from random ip addresses and no mutex.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4676 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-06-02 16:50:40 +00:00
Spoike
025f95238e try to compensate for id's bugs/warnings, for ease of use.
fix a couple of bugs/spam.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4662 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-05-18 23:02:04 +00:00
Spoike
e693c6956b hopefully that won't break anything too much...
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4656 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-05-14 01:08:36 +00:00
Spoike
faeb62f4ee misc hexen2 compat fixes. added/improved most missing particle effects in some form.
hopefully this won't break quake too much.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4638 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-04-12 03:31:59 +00:00
Spoike
2e1a70e319 rewrote ban code, merging bans+nonbans+cuffs+mute+cripple+deaf+lagged+vip. added timeouts. new penalties have no dedicated command. use the addip command for it.
maplist command now generates links.
implemented skin objects for q3. added a csqc builtin for it. also supports compositing skins.
playing demos inside zips/pk3s/paks should now work.
bumped default rate cvar.
added cl_transfer to attempt to connect to a new server without disconnecting first.
rewrote fog command. alpha and mindist arguments are now supported. fog change also happens over a short time period.
added new args to the showpic console command. can now create clickable items for touchscreen/absmouse users.
fixed menus to properly support right-aligned text. this finally fixes variable-width fonts.
rewrote console tab completion suggestions display. now clickable links.
strings obtained from qc are now marked as const. this has required quite a few added consts all over the place.
probably crappy attempt at adding joypad support to the sdl port. no idea if it works.
changed key bind event code. buttons now track which event they should trigger when released, instead of being the same one the whole time. this allows +forward etc clickable buttons on screen. Also simplified modifier keys - they no longer trigger random events when pressing the modifier key itself.
Right modifiers can now be bound separately from left modifiers. Right will use left's binding if not otherwise bound. Bind assumes left if there's no prefix.
multiplayer->setup->network menu no longer crashes. added rgb colours to the translation view (but not to the colour-changing keys).
added modelviewer command to view models.
added menu_mods menu to switch mods in a more friendly way. will be shown by default if multiple manifests exist in the binarydir.
clamped classic tracer density. scrag particles no longer look quite so buggy.
added ifdefs to facilitate a potential winrt port. the engine should now have no extra dependencies, but still needs system code+audio drivers to be written.
if it can't set a renderer, it'll now try to use *every* renderer until it finds one that works.
added experimental mapcluster server mode (that console command). New maps will be started up as required.
rewrote skeletal blending code a bit.
added cylinder geomtypes.
fix cfg_save writing to the wrong path bug.
VFS_CLOSE now returns a boolean. false means there was some sort of fatal error (either crc when reading was bad, or the write got corrupted or something). Typically ignorable, depends how robust you want to be.
win32 tls code now supports running as a server. added connect tls://address support, as well as equivalent sv_addport support.
exposed basic model loading api to plugins.
d3d11 backend now optionally supports tessellation hlsl. no suitable hlsl provided by default. !!tess to enable.
attempted to add gamma ramp support for d3d11.
added support for shader blobs to speed up load times. r_shaderblobs 1 to enable. almost vital for d3d11.
added vid_srgb cvar.
shadowless lights are no longer disabled if shadows are not supported.
attempt to add support for touchscreens in win7/8.
Wrote gimmicky lua support, using lua instead of ssqc. define VM_LUA to enable.
updated saved game code. can again load saved games from vanilla-like engines.
changed scale clamping. 0.0001 should no longer appear as 1.
changed default mintic from 0.03 to 0.013 to match vanilla qw. I don't know why it was at 0.03. probably a typo.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4623 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-03-30 08:55:06 +00:00
Spoike
c604c0c17f Fix a bug that mushi got stuck on.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4619 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-02-22 00:28:22 +00:00
Spoike
fd70ec0c62 fix misc warnings.
add support for q3's shader remapping feature.
don't mask sky depth on q3bsp. apparently it causes problems.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4609 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-02-13 23:54:57 +00:00
Spoike
db77a84453 try that again. I hate platform-specific code.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4598 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-02-07 09:39:18 +00:00
Spoike
9140cccb9f Fix a couple of bugs that I didn't catch.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4597 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-02-07 09:36:04 +00:00
Spoike
1bb752b582 sdl2 support.
hacky rendertarget stuff. not polished. don't use except for testing. feedback desired.
switched file system to use a qofs_t type instead. define FS_64BIT to make it 64bit (standard on 64bit cpus).
rewrote zip support, ditching unzip.c. this provided zip64 support, and unicode in zips.
changed local address enumeration to not be so stupid.
updated ode support a little to match some dp features.
changed fs_cache scheme, to not rebuild needlessly.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4596 fc73d0e0-1445-4013-8a0c-d673dee63da5
2014-02-07 08:38:40 +00:00
Spoike
e2081b565f webquake-compatible websocket support. yuck.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4563 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-12-09 01:18:27 +00:00
Spoike
483403dc9a misc bugfixes for things reported by 1path0gen1.
and a few added bugs for fun.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4562 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-12-08 20:06:55 +00:00
Spoike
87564c9d79 stripped out my ancient form of in-engine translation. Implemented gettext style translation instead. Automatically determine language from environment settings.
try to imitate cyrillic chars if the charset doesn't support them using koi8 mappings, so russian-speaking users don't get so easily pissed about not knowing how to select a font that actually contains chars for their language.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4544 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-11-29 14:36:47 +00:00
Spoike
ad8d634916 misc tweaks to support:
opening (qtv) urls with android browser. mvds should stream using the same mechanism, if they have the right mime type.
arbitrary unicode basedirs in windows should work, and commandlines. not sure what else still doesn't work.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4539 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-11-28 00:45:22 +00:00
Spoike
ad2ee5ddd1 (too lazy to boot linux to test this before committing)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4536 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-11-24 16:49:56 +00:00
Spoike
494d794f95 git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4535 fc73d0e0-1445-4013-8a0c-d673dee63da5 2013-11-24 16:47:17 +00:00
Spoike
70ac2fa5a3 git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4533 fc73d0e0-1445-4013-8a0c-d673dee63da5 2013-11-24 16:38:57 +00:00
Spoike
c9bc1e135a nacl tweaks.
attempt to list local ips properly on linux (needed for ICE).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4532 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-11-24 16:35:52 +00:00
Spoike
f08489f141 .po support for qc.
rewrote messagemode to support utf8 properly, as well as left-arrow etc keys.
support for mouse-over images on console links and stuff.
added r_lerpmuzzlehack for certain viewmodels.
use libtool's dlopen stuff on cygwin to try to cover some cygwin path differences.
try to support utf-8 in filenames even in windows (only in nt, 9x is still ascii only).
added certificate validation for gnutls. gnutls now enabled by default in linux.
d3d11 tweaks. shadowmapping works.
tweaks for updated terrain format, to try to fix some inefficiencies/limitations.
xmpp plugin can now display avatars (xmpp /set avatars 1)
xmpp file transfers supported by default, but capability is disabled by default (can be enabled by hacking config).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4523 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-11-21 23:02:28 +00:00
Spoike
fb86222fc7 made max_clients more dynamic on the server to attempt to reduce bss usage. hopefully this will help the webgl port without resulting in extra crashes.
tweaked shadowmaps. now seems faster than stencil shadows. cubemap orientation should now match other engines.
tweaked terrain. rtlights work. added pvs tests for embedded terrain. sections are now saved in chunks instead, which should mean windows doesn't have a panic attack at 16 million files in a single directory. hurrah.
first pass at realigning menu options to cope with variable-width fonts. still need to do pure-text items.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4514 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-10-29 17:38:22 +00:00
Spoike
763cef2441 added mic input device option.
reworked prediction code, now more generic.
added cl_lerp_smooth, cl_predict_extrapolate, cl_predict_timenudge cvars to allow tweaking player prediction/smoothness in a few different ways. cl_lerp_smooth's default changed to not smooth out live games in order to avoid unnecessary lag (was effectively set to 1, and would be 0 in vanilla).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4471 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-09-06 22:57:44 +00:00
Spoike
2fcd837d57 misc compile fixes.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4466 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-08-21 08:06:35 +00:00
Spoike
e0aab1c134 try to fix shader vertex lighting issue.
fix issue where ftenq protocol positions were sticking.
fixed manifest file windowless infinite wait.
Added support for ^[\img\foo^] images on the console if they are at the start of the line.
Console objects may now be drawn by csqc. Key input is blocked for now, lest csqc get access to things its not allowed to access. Will add provisions later.
fixed sound menu crash.
added ultrawide speex codec.
clamp micamp levels to try to boost audio quality/audiability.
rtp control plugins are now allowed to use opus, speex support is correctly queried instead of assumed.
WriteFloat now works properly, and not just for ents.
no longer sending prespawn/precaches/signon commands to clients that do not expect them.
fix sql column header queries.
more verbose about active nq protocol verions.
-condebug overrides config.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4461 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-08-21 07:14:39 +00:00
Spoike
3b51dae2c9 misc fixes/tweaks/stuff intended to get the emscripten port working better.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4456 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-08-07 14:20:24 +00:00
Spoike
a343d8d843 Reduce webgl dependancies (no more q2/q3/plugins which wouldn't work anyway). Use websockets via our own javascript thunk to avoid issues/weirdness with emscripten's bsdsockets emulation.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4444 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-07-31 00:20:16 +00:00
Spoike
b2f5ae8f1c removed userinfobasic, things should be kept in sync more easily now.
xmpp got some major tweaks. more sasl methods etc. multiple accounts.
misc other tweaks.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4418 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-07-13 12:14:32 +00:00
Spoike
8db6963fc4 fix terrain issues.
xmpp: add support for /poke and /slap.
lame notify hack. need to work out what I'm doing with that stuff.
xmpp: easier targeting of friends (engine finds it easier too... yay less bugs).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4414 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-06-29 21:08:09 +00:00
Spoike
0823eb0968 xmpp NAT holepunching (ICE) is now implemented. it doesn't know how to do relays.
xmpp voip support (speex only). just because.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4413 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-06-29 16:01:07 +00:00
Spoike
2ff17aed07 Reworked the gnutls code. Now more consistant with windows, and more generic. Still does not validate the server's certificate, so disabled by default.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4402 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-06-24 09:04:00 +00:00
Spoike
b6252d940c fixed a few warnings and errors
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4399 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-06-23 03:59:48 +00:00
Spoike
fa9252cefa splitscreen cleaned up more.
demo menu can now leave quake dir.
scissor+line rendering abstracted from csqc.
added a rain particle effect to the 'high' particle set.
added support for parsing ezquake's koi stuff. Still only generates utf-8.
implemented some string-buffer builtins from dp that have been stubs for quite some time.
http code now supports/uses gzipped downloads properly.
added support for non-blocking tcp connects.
#pragma optimize makes more sense with the gui version now.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4397 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-06-23 02:17:02 +00:00
Spoike
9dbf5b5837 changed to not load gamecode from quake paths, to avoid issues with buggy quakeworld clients that will freely download stuff from anywhere (not sure what to do about ktx, but it can be reenabled with a cvar).
image_width is now only set by a single function.
tweaked scancode inputs slightly. added support for printscreen binds.
changed the way gamma works. glsl gamma now used when running windows, or hardware gamma is not available. removed gl_contrast+gl_brightness.
q2 gamecode support no longer has a system componant. this means that ports only need the generic stuff.
misc tweaks to the d3d11 renderer.
added brief descriptions to many builtins. need to add comments to constants, globals, and fields too, somehow.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4355 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-05-11 14:02:55 +00:00
Spoike
873f0a8134 Fix various warnings.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4353 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-05-11 05:03:07 +00:00
Spoike
675c34777c allow cross-origin websocket connections.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4351 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-05-09 03:01:29 +00:00
Spoike
b82dc4f068 git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4348 fc73d0e0-1445-4013-8a0c-d673dee63da5 2013-05-07 22:25:00 +00:00
Spoike
ec03a4ed95 git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4347 fc73d0e0-1445-4013-8a0c-d673dee63da5 2013-05-07 22:23:28 +00:00
Spoike
5330c9b124 fix nacl
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4338 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-05-07 19:36:42 +00:00
Spoike
ffc2a08589 pass network addresses around as a pointer rather than as a struct. They've grown quite a bit from vanilla code and can now be quite large. this should give more efficient network filtering+matching.
Added version+time+date to segfault lots.
try to use vbo+vao as needed.
added a manifest file in order to disable uac emulation and its virtual store lies.
particles now support a sort of namespace. eg: an effect called "cfg.effect" will load up the 'cfg' particle config and use its 'effect' effect (but not replace any explicit effects). You can still create particle effects called 'cfg.effect' with no issue.
Added support for fsarchive plugins.
Added a sys_register_file_associations command. .bsp not yet handled, but demo playback should work fine.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4324 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-05-03 04:28:08 +00:00
Spoike
c0167628f2 fix a mutex deadlock due to my dsound change.
allow the webgl port to directly accept an ip, making up the tcp:// and port part automagically.
fix sdl dependencies slightly.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4305 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-04-08 11:27:39 +00:00
Spoike
bae63427a5 Desperate attempt to boost framerates with webgl.
Models now use static vbos, because we ought to. Yeah yeah, extra memory usage etc.
Reduced size of streamed ebo by reallocating on each mesh. Hopefully the browser won't scan so much memory now.
Reordered attribute indicies in an attempt to comply with possible absurd gl behaviour that emscripten warns about.
Fixed an issue with if statements in shaders.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4289 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-04-06 03:36:00 +00:00
Spoike
49197218bc Slow progress. Most of what I am fighting is emscripten's javascript-based libc. Its networking is laughable at best, trust me you don't want to see it. Whereas its GL emulation seems to break things rather than anything else so for now I'm just disabling everything that isn't vbo+es2 and I still get warnings about emulation being enabled. No idea how to get rid of those. Still, bsp objects should now render correctly, but not models+particles+2d+text stuff.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4283 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-04-04 08:08:49 +00:00
Spoike
1e9af3f441 Early hack at emscripten compat.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4278 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-04-02 05:18:17 +00:00
Spoike
6a831e2f99 qwsvdef.h is no more. Many files changed because of this.
enabled ssl support in windows for plugins.
updated jabber plugin.
tweaked downloading logic in an effort to end the madness.
Updated sql code to support sleeping the qc thread until query completion, as a more readable alternative to callbacks.
Client updates should be more explicit now, removing a potential bug.
networked terrain editing should now be in a better state.
updated the dir command to show paths too (so when the same file is listed twice, the pak its in will at least be different). Many files changed because of this.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4273 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-31 04:21:08 +00:00
Spoike
c1a80e5ba8 ------------------------------------------------------------------------
r4256 | acceptthis | 2013-03-12 21:07:07 +0000 (Tue, 12 Mar 2013) | 5 lines

Don't mess up/crash when the snap command is used (in multiple ways).
Misc NQ+csqc compat tweaks/hacks/fixes.
Added pointsound.
Don't rely upon fragmentation support with downloads. its a bad idea.
Fixed up the text editor to be able to debug properly again.
------------------------------------------------------------------------


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4252 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 23:24:15 +00:00
Spoike
2e009e1d26 ------------------------------------------------------------------------
r4227 | acceptthis | 2013-02-26 16:29:38 +0000 (Tue, 26 Feb 2013) | 2 lines

numerous small fixes and tweaks for the nacl+npfte ports.
support for q3bsp tangent-space deluxemaps.
------------------------------------------------------------------------


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4223 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 23:09:25 +00:00
Spoike
91a23d8c96 ------------------------------------------------------------------------
r4218 | acceptthis | 2013-02-20 09:28:20 +0000 (Wed, 20 Feb 2013) | 1 line

misc improvements for the npfte port
------------------------------------------------------------------------


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4215 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 23:03:04 +00:00