Commit Graph

415 Commits

Author SHA1 Message Date
Spoike 0fee3a4aea Add ortho lights (still has serious issues that make them unusable on regular maps).
First real attempt at lit water.
Parsing rtlights is now aware of spotlights.
Default cl_yieldcpu to 1, to save cpu for anyone who sets cl_maxfps lower. Added to menus.
presets now include view angle clamping - maps made for quakespasm REQUIRE full pitch angles despite it otherwise being considered a cheat or glitchy (on servers that try to block the cheat).
fix r_fullbrightSkins>=1 issue.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5274 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-07-22 11:49:37 +00:00
Spoike d1d0d86fea Rewrote infostrings. Now using infobuffers, which allows for the use of arbitrary blobs, except not using the protocol extension yet in case it needs to be fixed.
Fix sound source issues in Q3.
Fix q2 air acceleration/prediction omission.
Don't change console completion while typing (while that option is still possible).
Shift+tab now cycles completion backwards (now ctrl+shift for cycle subconsoles).
Allow a few things to ignore sv_pure - including csprogs files (which is useful for all the mods that come with the csprogs.dat distributed separately).
clamp pitch values to the range documented by openal, to hopefully avoid error spam.
add some colour coding to the text editor when shader files are being edited/viewed.
Changed how overbrights are clamped on q3bsp.
Added portalfboscale for explicit texture scales on portal/refract/reflect fbos.
qc decompiler can now at least attempt to decompile qtest's qc.
fteqccgui can now be pointed at a .pak file, and decompile the progs.dat inside.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5269 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-07-05 16:21:44 +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
Spoike 20be3f8161 fix a couple of quake2 issues.
rework the main menu slightly to promote the qi plugin a little more.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5262 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-06-06 09:09:14 +00:00
Spoike ac471dd03e update native-menu things.
attempt to deal with misaligned bsp models.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5258 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-06-02 08:55:57 +00:00
Spoike 5e937bcf48 Eukara wants native-code custom menus. He's weird.
Try to clean up the frametime global.
fix some quirks with r_dynamic -1
Added scr_fov_mode cvar to control whether the fov is defined relative to horizontal, vertical, or guessed.
fix a few fteqcc bugs
tab completion for the gamedir command.
fix the savegame_legacy command. it wasn't entirely compatible.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5254 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-05-21 13:47:53 +00:00
Spoike fdd903e0a3 win: emulate gamepad thumb axis as buttons.
keys: add some extra key names for compat with DP+QS (primarily gamepad buttons).
keys: fix a few keys getting mistranslated between engine and qc scancodes.
engine menus: remove 16bpp from the video options menu on win8+, as win8 no longer supports anything but rgbx8.
pmove: coord size and rounding is now part of the pmove code itself. this fixes truncation issues.
r_clutter_density: fix crash from clutter comprising of boneless iqms.
gl: added cvars to disable immutable buffers or textures. hopefully these might be usable to work around the issue reported on various geforce 1080s
wav: convert ieee wav files to 16bit on load, in case someone tries giving us one of these.
vid_srgb: this cvar now uses -1 for the former gamma-only setting.
r_viewmodel_quake: new cvar (name comes from quakespasm) that can be used to disable the weird movement of the viewmodel when pitching up or down.
nquake: try to block nquake's frogbot's autoexec.cfg, as I keep getting complaints about it fucking over singleplayer games.
fs: added -netquake commandline argument that disables the use of the qw/ gamedir.
fog: disabled fog on aky surfaces, as it was bugging out in The Wastes.
vid: fix some vid_restart/vid_reload issues (which got much worse recently in my attempt to fix a different crash)
routing: first attempt at engine-side routing. feature is currently disabled.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5248 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-04-27 16:40:50 +00:00
Spoike 9f17116412 cancelling messagemode now clears the text.
r_showshaders 1 now shows the filename.
block 16bit rendering on win8+.
be more aggressive at starting a video mode when the system refuses to set a video mode.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5246 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-04-19 17:30:39 +00:00
Spoike e1e3336eaa git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5242 fc73d0e0-1445-4013-8a0c-d673dee63da5 2018-04-15 02:53:14 +00:00
Spoike 8c02fb26b3 removed old scr_chatmode
splitscreen can now properly be configured via build configs, and potentially more than just 4 seats.
fix splitscreen and enemycolour forcing. forcing now works, but only when all seats are on/spectating the same team.
fix demo playback issue with http urls with webgl that don't allow streaming.
srgb fixes for the scoreboard.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5229 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-03-25 09:36:14 +00:00
Spoike 7f2c356133 Fixed some bugs with servers using gnutls.
Attempted to clean up build configs slightly, now ALWAYS using a build config.
Now enabling wayland renderer by default on linux (activates by default only when x11 fails).
Given linux servers the ability to chroot (will be used by default if run as suid-root).
Fixed a couple of vulkan warnings.
Makefile now treats speex like any other library.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5227 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-03-24 04:02:09 +00:00
Spoike 685404250f added cmake file.
reduced input latency.
reworked how internal texture formats work,.
added support for LIGHTING_E5BGR9 bspx lump for HDR lighting.
updated support for srgb, no longer looks quite so weird. works on glx
vid_srgb 3 attempts to use half-float swapchains, where possible.
gl: use glTextureStorage where available.
d3d11: gave up on using dxgi for fullscreen, was just too buggy.
glx: updated gl context creation on linux.
server: fix svc_updatefrags not being passed though (fixes frikbot scores)
fs: spanned pk3s now work (fragmented files/directory will fail to open, so this needs a custom tool to be fully useful).
fixed restart_ents command (restarts the map, but preserving the players as they are)
tw: removed 'QWSKINS' featureset from tw config

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5217 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-03-04 14:41:16 +00:00
Spoike 77360d83e3 try to fix some particle spots.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5214 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-02-11 06:09:49 +00:00
Spoike 9e8bb446f4 implemented pm_stepdown.
attempt to implement 'simple csqc' api.
handle qw+nq gunshot+blood+lightning differently - they do actually have different particle spawn patterns (qw is a single point, so spreads wider).
fix q3ui logo mesh thing. work around q3ui player meshes on d3d.
split video and renderer latching, so vid_reload delatches more stuff.
fix autosprite+autosprite2 in 6 different renderers...
added fog volumes to d3d9 renderer.
using matrix hacks instead of glDepthRange, this should give more consistent behaviour, especially now that we have r_viewmodel_fov.
small cleanup for gl shadowmaps to make the interface more consistent with other renderers.
added patchDef2 parsing to fte's .map loader, doesn't actually use it though.
some fixes for q3's shaders, including to try to get overbright working better.
updated customskin api to give more control.
first attempt at a packager system for fteqccgui. probably useless, but whatever.
menusys changes to try to support QSS's csqc.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5200 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-01-22 19:18:04 +00:00
Spoike 845bb231ca xonotic: fix 'sticky walls' issue when spectating.
xonotic: fix jumppads not working while onground.
attempt to parse meag's protocol changes, in case we get a .qwd from ezquake. does not report them to servers at this time.
added cl_fullpitch cvar. only affects nq servers that lack serverinfo.
support dds/ktx-based cubemaps, including for skyboxes.
recognise multiple new compressed texture formats - bc1-7, etc1+2+eac,.astc. Addeded to supporting drivers/apis.
software decoder for etc2,bc4+bc5 textures, so they can be considered universal (but with fallbacks).
software decoder for bc1-bc3 textures, but disabled due to lingering patent paranoia.
report heartbeats once, by default.
r_viewmodel_fov support for vk+d3d9+d3d11 renderers.
fix depth projection differences with various renderers (min dist is now consistent).
added some code to announce when cl_delay_packets changes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5188 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-12-28 16:24:50 +00:00
Spoike cd4412e807 add scr_showdisk cvar, to show the disk icon for a little time whenever something is accessed from disk.
try to fix the recent network issues, the slightly more sane way.
added a r_viewmodel_fov cvar, to optionally control the viewmodel's fov separately from view fov.
updatesound now auto-starts the sound if it wasn't already playing, but only if a sound name was specified.
small optimisation for xonotic. Delay the actual fopen until the first read. This avoids the worst of the hitches every time a footstep sound is played (no more zlib decompression).
r_lightprepass now respects rtlight modes.
optimised some rtlight pvs bits. should hopefully be slightly more efficient.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5186 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-12-15 06:56:40 +00:00
Spoike 559144cb05 Updated font code for freecs's benefit.
added cl_iDrive cvar.
tried to solve invalid server address errors.
fixed envmap+screenshot_cubemap commands (they write slightly different cubemaps).
rework server favourites a little, to avoid conflicts with other engines.
fix legacy rtlights on certain maps.
added 'rgbgen entitylighting' for lighting with colormod support.
decompiler should cope with more instructions now. pretty much just switch opcodes that are bugged now.
implemented a couple of joint types into the bullet plugin. still useless though.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5180 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-12-09 21:22:46 +00:00
Spoike 65e58c3595 fix serious issue for anyone using r_novis 1
sv_nailhack now defaults to 1. because times have changed (matches mvdsv).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5175 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-12-02 22:11:20 +00:00
Spoike 9cd425e945 rework hlmdl subblends. apparently they're some sort of grid.
fix decals again. clampmap should work properly with them, also removed the extra part.
fix rtlight pvs issue with respect to portals
fix vid_reload causing the d3d9 renderer to use nearest sampling
terrain system should now mostly work with d3d9. still has issues.
fix q3 volumetric fog not applying to models

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5174 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-11-30 17:59:11 +00:00
Spoike 27e8e812a2 fixed crashy race condition when querying master servers.
try to do something about crazy cursor biases in games that are not likely to get the QSG cursor.
fix unvised q3bsp pvs. again.
add cl_delay_packets cvar as a clientside analogue to sv_minping (which is often unchangeable by the actual players).
fix a qcc issue with static locals screwing everything up.
fix dpmaster issues when NQPROT isn't defined.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5168 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-11-15 12:38:20 +00:00
Spoike c7d5695e5e small vulkan perf tweak.
fix capturedemo over vid reloads.
fix playfilm letterboxing issue.
con_printf will now create consoles as needed.
fix .skin compose line.
fix a couple of q3bsp issues
core gl contexts will no longer be given pre-core glsl shaders, is the theory.
qcc now warns about unused fields. use the __used keyword to mark those fields as actually needed. use __unused to allow the qcc to potentially silently strip them.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5166 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-11-14 14:37:04 +00:00
Spoike 1206244ebb rework loading screen for legacy mods that don't have their own.
fix sound issue not reusing distant sounds (fixes massive cut-off sounds in xonotic).
fix crash issue with skeletal objects holding invalid model pointers over vid_restarts.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5163 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-11-05 13:15:08 +00:00
Spoike 8bb999f3ca Rewrote sections of the input code to better deal with multiple mice. Convert deltas to absolutes when absolutes were requested by the mod. Support hardware cursors on x11. Recognise pointer absolute coords / tablets on x11.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5156 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-10-25 08:10:35 +00:00
Spoike 696c7e8260 playdemo should now play older protocol versions.
some more tweaks for xonotic
rcon-over-xmpp, because I can. Server might see your rcon password, so watch out for that.
qcc tweaks.
updated q1qvm api stuff to api version 15.
android port updated. egl now handled by native code, which means we now have proper control over everything and can default to gles2. requires android 2.0+. vulkan-on-android renderer added, but not tested.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5153 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-10-12 12:02:25 +00:00
Spoike 0c8ad17f7c Fix various compiler warnings.
Added sv_guidkey cvar, allowing cross-server guid key generation (although it lacks auth).
Support .ico, because we can.
preliminary support for sdl 2.0.6's vulkan stuff. will wait till its actually released before its properly used.
Fix capturedemo.
videomap should typically use premultiplied alpha, apparently.
Updated sound drivers. No more old drivers. Better cvar registration. More drivers optionally support float output.
Added certificate log for dtls connections.
Rewrote font char cache, now supports full unicode char range, not just ucs-2. Attempt to support FreeType 2.5+ rgba fonts.
XMPP now supports carbons, and shows avatars in conversations. Updated xmpp's scram auth to be more strict, including the plus variation (hopefully), to block evil tls proxies.
ffmpeg plugin now uses the decoupled api for decoding too.
Cef plugin updated to support fte-scheme post data properly, as well as request/response headers (like cross-origin).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5148 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-09-20 11:27:13 +00:00
Spoike 8dfa6ccbe6 Add XRandR support. Disabled by default, for now.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5146 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-09-02 05:13:33 +00:00
Spoike 0f7bbfcf0e Implement an area grid, primarily to avoid mods(read: xonotic) generating 2000 ents all sitting on the root area node.
Add separate cl_movement cvar to enable/disable reporting input sequences to DP servers (which use different pathways). Does not affect other protocols. This is separate from cl_nopred but will usually have the same result in the long run.
Fixed movevalues for DPP7 clients, if they try using prediction they should now (mostly) get the same values that DP normally uses for QW servers.
Reworked sky overrides somewhat. Now uses skyboxes where possible.
Fixed dpcompat_makeshitup a little, for better compat.
Fixed echo $foo$bar not exanding bar.
Try to fix the meanings of vid_hardwaregamma.
Fixes for builtins/features/etc that apparently only xonotic uses.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5143 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-08-29 02:29:06 +00:00
Spoike c4d3497054 some Q2 compat tweaks. moved all q2 temp-ents to particle scripts.
PF_VarString can now shortcircuit, directly returning the first argument (which also bypasses related length limitations). this required const correctness fixes.
r_showshaders cvar reports the wall texture being pointed at.
improve dp compat in a number of areas, should now mostly be able to run xonotic 0.8.2, but will need some more extra cvars/defaults/stuff.
fix q3bsp loader race condition.
fix dpm loader multi-surface issue.
remove limit on stringbuffer count.
don't poll xinput (because its disturbingly slow), instead wait for some window message before re-checking.
fixed splitscreen saved games.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5140 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-08-14 16:38:44 +00:00
Spoike e8c0014b58 fix .gravity on non-players.
try to fix webgl's mouse cursors on misaligned canvases.
fix q2 tent issue.
fix bmp screenshots.
allow disabling packages via renaming, instead of only deleting.
support negative dlights.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5133 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-07-31 17:15:37 +00:00
Spoike db2c378fa0 centerprints with links now show cursors.
q2 temp entity tweaks. still more work to be done.
support sRGB (mostly)properly in gl+vk+d3d9+d3d11.
vulkan tweaks - multisample works under certain conditions. additional other changes to comply... cvars to enable some other device extensions.
removed r_viewleaf. now using clusters for q1 too.
improved compat with quakespasm's sky command.
Added vid_winthread cvar, to handle window messages on a separate thread. When set this allows the game to keep redrawing when the user is resizing the window etc.
Finally added renderers option to menusys.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5130 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-07-28 01:49:25 +00:00
Spoike 776b8f6565 Added .dz playback support.
demo menu now properly lists the contents of archives.
demos played from subdirs/archives can now chain properly.
autodetect nehahra's demos. Add -nehahra argument to register/override cvar defaults (and set the right gamedir+startmap).
fix some q2 download bugs.
lame attempt at proper sRGB support (gl+vk+d3d9+d3d11 renderers).
fix q3bsp wrong-lightmaps bug.
match DP's viewzoom behaviour by not applying it when VF_[A]FOV was explicitly used.
fix d3d9 issue with missing textures screwing up blend modes.
vk: use a staging buffer instead of a staging textures per mip.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5128 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-07-12 08:15:27 +00:00
Spoike 904a701281 command argument completion for a few commands.
fix off-by-one pvs bug.
add another settings preset.
fix classic particles colour issue.
fix d3d9 renderer's scissoring (including splitscreen huds)

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5125 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-07-04 05:07:51 +00:00
Spoike 2bf193001b implement pcma+pcmu codecs for voip for xmpp compat, because they're fairly simple and I can.
remove MAX_MAP_LEAFS limit, although its still checked for sanity (just MUCH higher). You may need 64bit processes on account of the pvs+phs memory required.
integrated my fork of frikdec into fteqccgui. Just associate .dat with fteqccgui and it'll decompile the progs (compiling will then embed the decompiled source into the resulting .dat to avoid repeated decompilation). Be sure to back up first... not tested as a 64bit process.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5114 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-06-21 01:24:25 +00:00
Spoike 1f729f4afd compile fixes
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5099 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-05-10 03:13:18 +00:00
Spoike 484e8bbfc2 playdemo accepts https urls now. will start playing before the file has finished downloading, to avoid unnecessary delays.
reworked network addresses to separate address family and connection type. this should make banning people more reliable, as well as simplifying a whole load of logic (no need to check for ipv4 AND ipv6).
tcpconnect will keep trying to connect even if the connection wasn't instant, instead of giving up instantly.
rewrote tcp connections quite a bit. sv_port_tcp now handles qtv+qizmo+http+ws+rtcbroker+tls equivalents.
qtv_streamport is now a legacy cvar and now acts equivalently to sv_port_tcp (but still separate).
rewrote screenshot and video capture code to use strides. this solves image-is-upside down issues with vulkan.
ignore alt key in browser port. oh no! no more red text! oh no! no more alt-being-wrongly-down-and-being-unable-to-type-anything-without-forcing-alt-released!
reworked audio decoder interface. now has clearly defined success/unavailable/end-of-file results. this should solve a whole load of issues with audio streaming.
fixed various openal audio streaming issues too. openal also got some workarounds for emscripten's poor emulation.
fixed ogg decoder to retain sync properly if seeked.
updated menu_media a bit. now reads vorbis comments/id3v1 tags to get proper track names. also saves the playlist so you don't have to manually repopulate the list so it might actually be usable now (after how many years?)
r_stains now defaults to 0, and is no longer enabled by presets. use decals if you want that sort of thing.
added fs_noreexec cvar, so configs will not be reexeced on gamedir change. this also means defaults won't be reapplied, etc.
added 'nvvk' renderer on windows, using nvidia's vulkan-inside-opengl gl extension. mostly just to see how much slower it is.
fixed up the ftp server quite a lot. more complete, more compliant, and should do ipv6 properly to-boot. file transfers also threaded.
fixed potential crash inside runclientphys.
experimental sv_antilag=3 setting. totally untested. the aim is to avoid missing due to lagged knockbacks. may be expensive for the server.
browser port's websockets support fixed. experimental support for webrtc ('works for me', requires a broker server).
updated avplug(renamed to ffmpeg so people know what it is) to use ffmpeg 3.2.4 properly, with its new encoder api. should be much more robust... also added experimental audio decoder for game music etc (currently doesn't resample, so playback rates are screwed, disabled by cvar).

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5097 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-05-10 02:08:58 +00:00
Spoike 09ec3bf6ea added explicit 'blend rtsmoke' particles that are intended to lit by rtlights without needing to override shaders.
addtrisoup_simple now supports line lists too.
fix a memory leak in the sound code.
fix chunked http download corruption in certain cases.
reworked the networking associated with entity editing. now carries ids instead of indexes (qc isn't aware of them).
'map blarg.map' will now auto-create a dummy map if it does not already exist. this should make it easier to get started with map editing.
fix some issues with banning yourself - loopback can now mute etc themselves, but not ban themselves.
downloads/updates menu now handles plugin detection. user-installed plugins will result in a prompt allowing the user to enable/disable/delete them. This makes using plugins more explicit.
revamped help menu to remove m_state
fix silly ode copypasta bug, added preliminary bullet code in case anyone is interested.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5090 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-04-18 11:12:17 +00:00
Spoike a97007ae5a dpp7: Treat 'dropped' c2s packets as choked when using dpp7 protocols. This is because the protocol provides no way to disambiguate, and I don't like false reports of packetloss (only reliables loss can be detected, and that's not frequent enough to be meaningful). Pings can still be determined with dpp7, for those few packets which are acked.
package manager: reworked to enable/disable plugins when downloaded, which can also be present-but-disabled.
package manager: display a confirmation prompt before applying changes. do not allow other changes to be made while applying. prompt may be skipped with 'pkg apply' in dedicated servers.
sv: downloads are no longer forced to lower case.
sv: added sv_demoAutoCompress cvar. set to 1 to directly record to *.mvd.gz
cl: properly support directly playing .mvd.gz files
menus: reworked to separate mouse and keyboard focus. mouse focus becomes keyboard focus only on mouse clicks. tooltips follow mouse cursors.
menus: cleaned up menu heirachy a little. now simpler.
server browser: changed 'hide *' filters to 'show *' instead. I felt it was more logical.
deluxmapping: changed to disabled, load, generate, like r_loadlit is.
render targets api now supports negative formats to mean nearest filtering, where filtering is part of texture state.
drawrotpic fixed, now batches and interacts with drawpic correctly.
drawline fixed, no interacts with draw* correctly, but still does not batch.
fixed saving games.
provide proper userinfo to nq clients, where supported.
qcc: catch string table overflows safely, giving errors instead of crashes. switch to 32bit statements if some over-sized function requires it.
qtv: some bigcoords support tweaks

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5073 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-03-21 05:27:07 +00:00
Spoike cf0e8fd923 added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
Spoike e7c1f9a490 rework config.h stuff a little, fixing up numerous ifdefs etc. added some more for potentially smaller builds.
make the 'identify' command assume that a single decimal number is not an address (allowing it to be handled as a user id).
qcc: support default initialisers in function calls.
tweak filesystem code to try to flush individual files instead of discarding the entire fs hash.
fix 'snap' stuff.
other tweaks...

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5058 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-19 00:15:42 +00:00
Spoike 3061ed448f fix a silly performance-sapping typo.
implemented identify+iplog stuff for nq users.
r_tessellation forces blinn tessellation on meshes. can also be specified manually.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5055 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-11 16:14:06 +00:00
Spoike 4fcd615308 try to fix null framestates issue causing crashes from pmove/solid_bsp code.
some tweaks to try to make webgl more robust.
added r_max_gpu_bones cvar. defaults to 0 in webgl for now (64 otherwise).
fixed gles2+skeletal issue that was breaking webgl (note r_max_gpu_bones needs to be set to 32 or something for it to actually use glsl bones with webgl).
sound rates now internally use decimals instead of percents. because meh.
allow PEXT2_MAXPLAYERS and angle deltas in nq.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5052 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-01-29 13:10:53 +00:00
Spoike c68cbfec24 implement status command for nq clients that expect something to be printed. IP addresses are withheld.
fix stats issue.
support menuqc-based loading screens.
fixed 2d render-to-texture issues.
(finally) throttle 'connection lost or aborted' messages. report the ip address too, because we can.
begun work on nq-style player ip-logging. ip addresses are collected now, but there's still no actual database code yet.
rewrote engine auto-update. now part of the updates menu instead of system-specific special-case code. Still requires a system function to actually invoke the updated engine however.
added sdl audio capture support (requires sdl 2.0.5).
treat q_version like f_version etc. respond to both.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5046 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-01-24 10:27:39 +00:00
Spoike f546a188c4 fix some bjp3 issues.
add getlightstyle builtins.
fix some compile issues.
fix decals on hlbsp.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5040 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-01-15 13:13:09 +00:00
Spoike c4ded89ad7 fix server crash (on two pk3s with the same pure path)
fix fteqcc issue unintentionally stripping things
added model event support.
added support for a couple of extra twiddles in the iqm format.
modelviewer now highlights meshes (to display hitmesh areas).
modelviewer now shows ragdolls, because I can.
fixed some nq download issues/crashes/fallbacks.
fixed 8bit bmp palette issue.
added capturethrottlesize cvar to throttle recording speed if disk space is getting low (to avoid Maverick's demo encoder getting swamped).
com_protocolname can now list multiple protocol names to list multiple server types. only the first will be reported to other clients however.
can now be compiled without support for q1bsp or q1mdl. not useful, but hey.
increase max_channels, by as much as is necessary.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5038 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-01-13 00:39:50 +00:00
Spoike 151adc38ed move 'not a field' messages to dprints.
try to fix hlbsp palette issues.
fix drawstring showing link infos.
move some annoying cvar defaults over to quake-specific settings, instead of always being on.
fix possible hlmdl crash.
fix __fullspawninfo
fix switching between player/spectator not tracking spawned slot counts properly.
fix a possible crash from runstandardplayerphysics.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5030 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-12-09 09:09:12 +00:00
Spoike 5ded3710b4 networked entity editing now kinda working. still needs much more work before its usable.
try to use microsoft's poor-man's eax stuff with directsound. snd_eax is disabled by default still thankfully.
some hlmdl fixes

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5029 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-12-07 18:45:25 +00:00
Spoike 732a89f7c1 r_softwarebanding is now a bit more generic and can now palettize rgb textures.
fix r_renderscale nearest/linear switching needing a vid_restart.
fix q3 spamming input packets.
fix ^8
prepare for nicer entity editing via eg csaddon.
fix vulkan crash + vulkan overbrights

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5027 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-11-25 08:14:54 +00:00
Spoike 8d09710ed1 lightprepass is functional again. still diffuse lighting only. supports shadowmaps but no other weird light info.
added 'pkg' console command. will still need more tweaking.
r_renderscale < 0 means nearest filtering (may need a vid_restart for that to take effect though).
fteqccgui: added 'make installer' options.
fteqcc: fix framemacro issue that was breaking due to invalid dupes in hipnotic's code
cl_lerp_smooth: by default now enabled for singleplayer as well as just demos. this smooths out platforms etc.
q2 demos: explicitly recognise .dm2 extension, to try to avoid issues.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5024 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-11-20 20:52:41 +00:00
Spoike eefc950400 particles: rework r_effect, such that its possible to project particles forwards
particles: add an emiteffectnum field (and support emiteffect+traileffect psuedo-fields), for reliable emissions that are not framerate dependant (emitted forwards by default...
particles: rewrote 'sky' surface emittance. can now emit from submodels too.
particles: be more verbose about unknown mode keywords, instead of silent.
server: add basic misc_model emulation, for mods that don't implement one.
quake2: better r1q2 compat.
renderer: rework mindist+maxdist, should be more consistent as well as more reliable with orthographic matricies. has actual VF_ enumerations now.
sound: fix CF_FOLLOW to not crash, and work with openal.
client: 'cl_loopbackprotocol nq' now uses appropriate protocol extensions.
fs: try using /usr/share/games/foo by default, if it exists.
server: uncap drate if unspecified, do not fall back on rate.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5021 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-10-22 07:06:51 +00:00
Spoike b749d8356a remove the old SCVAR macro
server: my attempt at mvd recording fixes. there's a couple of other issues, at least with nq mods.
client: properly support recording .dems mid-map for 15+666
client: server browser now queries nq servers for players+rules.
renderer: add support for single-image dual-layer skies that some other engines use.
qcc: add #merge, along with __wrap + __weak keywords. fix a symboldata issue revealed by this.
qcc: added a flag to write the sourcecode into the .dat (zip format compatible with any zip program that can deal with 'self extractors').
qccgui: can be told to open a .dat file instead of .src, showing/using any embedded sourcecode.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5017 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-09-08 19:04:35 +00:00