havoc [Wed, 1 Dec 2004 05:39:03 +0000 (05:39 +0000)]
implemented PRYDON_CLIENTCURSOR extension (clientside mouse pointer that feeds back information to the QuakeC)
added DP_BUTTONUSE extension (+use/-use button)
added DP_BUTTONCHAT extension (true while input is not focused on the game)
reimplemented DP_ENT_COLORMOD extension due to popular request, and changed its definition to allow colors above '1 1 1' for brightening effects
implemented PROTOCOL_DARKPLACES6 protocol, featuring delta compression of ammo counts and other properties (using generic svc_updatestat and svc_updatestatubyte messages), precaching models and sounds during the game (svc_precache).
removed cmd parameter from a lot of input code (now uses cl.cmd. instead of cmd->)
added sv_gameplayfix_setmodelrealbox to allow disabling of the setmodel real model bounding box on alias models (may improve mod compatibility if set to 0, thus performing a setsize (self, '-16 -16 -16', '16 16 16') instead of the real alias model box).
added SV_ModelIndex and SV_SoundIndex functions to clean up the server's precaching and model lookup processes (code reduction/maintenance reduction).
changed sv.model_precache and sv.sound_precache to be real char arrays rather than pointers, so precache names no longer need to be constants as they're now copied.
added some modelindex bounds checks to a few pieces of code.
the dpfields array is now sorted and matches the supported fields list (added the missing ones).
client now acknowledges the last 3 frames in each input packet to reduce packet loss issues.
renamed clc_ackentities to clc_ackframe as it is now used for compressing stats as well as entities in PROTOCOL_DARKPLACES6, this also means it always produces a packet for every frame even if there's no changed entities (or room under the rate limit for that matter)
PROTOCOL_DARKPLACES5 and 6 now perform a non-harmful serverside packetlog reset (marking all packets as lost) if the packetlog fills up, this should eliminate choked-to-death cases where the client lost everything for a few seconds.
MAX_CL_STATS expanded from 32 to 256 (just incase more stats are added, this prevents protocol breakage on too many unknown extra stats)
fixed a bug with the worst case rtlight rendering (the color array was disabled, oops).
some cl.* fields converted to cl.stats elements (STAT_ITEMS for instance) to accomodate the PROTOCOL_DARKPLACES6 stats updates
black [Mon, 29 Nov 2004 20:43:28 +0000 (20:43 +0000)]
-Fixed an old qc bug that's already been existing in the original quake
(- hopefully it is a bug): ParseEpair was accessing the globals arrays
instead of writing an offset directly into the value.
-Removed the VM_CheckEmptyString from VM_drawstring.
black [Sun, 28 Nov 2004 13:10:38 +0000 (13:10 +0000)]
-Removed the NG Menu part, since it isnt used anymore (the old layout
works generally better)
-Fixed a bug in VM_max - it used one of the old VM's macro.
-Added a memory leak output of the "strzone" zone when the menu is shutdown
(only displayed if developer >= 2)
havoc [Fri, 26 Nov 2004 00:57:30 +0000 (00:57 +0000)]
redesigned drawing of loading plaque, it's now a separate refresh function which draws over the previous frame, rather than invoking a new render, which should fix crashes with level changes with rtlights on (trying to render an rtlight while the map the rtlight was for has already been unloaded tends to cause a crash)
havoc [Thu, 25 Nov 2004 20:38:37 +0000 (20:38 +0000)]
removed Sys_Sleep call from CL_KeepaliveMessage, as it's probably better to load as fast as possible than to yield cpu time during loading
removed an unnecessary CL_KeepaliveMessage call in model purging
havoc [Thu, 25 Nov 2004 16:19:56 +0000 (16:19 +0000)]
changed lhrandom to use the full RAND_MAX limit (more random, after all the low bits are the most predictable), and made the random() qc builtin use lhrandom
havoc [Thu, 25 Nov 2004 16:13:42 +0000 (16:13 +0000)]
redesigned Host_ServerFrame timing again, it now never runs more than 5 serverframes per host frame as a sanity limit (to remain playable in an overloaded game), and is just cleaner
molivier [Thu, 25 Nov 2004 09:04:37 +0000 (09:04 +0000)]
Fixed ambient sound volume (it was reset each frame, and cannot change by more than the value of the "ambient_fade" cvar each frame... you do the math). Thanks to Tomaz and Urre for the bug report
havoc [Wed, 24 Nov 2004 13:39:38 +0000 (13:39 +0000)]
fixed a critical bug with Vile and other midnight mods (dlights were being controlled by style 0, this meant they didn't appear in these mods, added style -1 as a special case)
molivier [Mon, 22 Nov 2004 14:38:33 +0000 (14:38 +0000)]
Several changes to the SFX lock code in the sound engine, mainly to make sure SFXs are automatically freed only at level change
Moved call to CL_InitTEnts after S_Startup so the tent sounds get properly precached
Added a developer warning when trying to play a non-precached SFX
Made the soundlist command more verbose
Added the ssize_t type for Win32 systems
Some comments and dead code removal
havoc [Sat, 20 Nov 2004 18:05:23 +0000 (18:05 +0000)]
fixed bug with engine sounds (for TE_ effects) and local sounds (menu, etc) being unloaded on level change (they are supposed to stay indefinitely)
keep play/play2/playvol sounds around until level change (so they're not being constantly unloaded and reloaded when used repeatedly)
havoc [Sat, 20 Nov 2004 11:49:41 +0000 (11:49 +0000)]
changed S_StartSound to start a sound even if it has no fetcher, as the fetcher isn't set until it is loaded... and it isn't loaded until it is played if it was not precached... and it's being unprecached by the S_ServerSounds function even if it's an engine sound...
havoc [Sat, 20 Nov 2004 09:25:49 +0000 (09:25 +0000)]
fix the unintentional framegroup timing reset that happened when the .frame field changed after more than 100ms since the previous change (this was causing corpses to suddenly stand up and then fall down quickly in Nexuiz)
havoc [Wed, 17 Nov 2004 16:33:38 +0000 (16:33 +0000)]
FS now uses open/read/write/lseek/close instead of fopen/fread/fwrite/fseek/fclose to get a little more performance from less unnecessary buffering (helps video recording keep up a steady rate)
havoc [Tue, 16 Nov 2004 12:18:58 +0000 (12:18 +0000)]
now unloads all stale submodels and the old world model before loading the new one (this relies on the world model being the first precache to trigger this code at the appropriate time)
havoc [Sun, 14 Nov 2004 23:31:36 +0000 (23:31 +0000)]
upgraded rtlights format to have separate ambient, diffuse, and specular intensity scales, and also coronasize, this also allows corona-only lights by setting all scales to 0, and added normalmode/realtimemode flags so that lights can appear in normal mode, not just realtime mode (primarily useful for adding corona effects to a normal level)
added ambient light support to RenderLighting (non-bumpmapped diffuse)
some dlights now use ambientscale (this has not been exposed as a qc extension yet, qc lights remain the same)
havoc [Sat, 13 Nov 2004 11:14:31 +0000 (11:14 +0000)]
replaced all uses of sv_player with host_client->edict (because sv_player was often invalid after a level change)
fixed a number of botclient crashes relating to invalid client->edict pointers after a level change
now sets client->spawned = true on botclients when freshly spawned (they were already being set correctly on level change)
DP_SV_BOTCLIENT now works properly
havoc [Sat, 13 Nov 2004 11:11:15 +0000 (11:11 +0000)]
no longer warns about q3bsp surfaces with lightmapindex -3 (or any other negative values below -1), as q3map2 seems to use these values intentionally it's rather pointless to warn about them
now warns about missing textures in q3bsp texture loading
havoc [Fri, 12 Nov 2004 22:42:20 +0000 (22:42 +0000)]
more preparation for DP_SV_BOTCLIENT, removed a number of unneeded netconnection checks and changed some others to check active, and made player info queries reply "botclient" for clients with no netconnection
havoc [Wed, 10 Nov 2004 02:32:00 +0000 (02:32 +0000)]
VorteX has fixed gettaginfo to work as advertised (properly handling of attached entities) and cleaned up gettagindex by splitting it into two functions
havoc [Wed, 3 Nov 2004 17:13:37 +0000 (17:13 +0000)]
internal cleanup: split up CL_SparkShower into CL_SparkShower, CL_Smoke, and CL_BulletMark so the effects parser can be a little cleaner, also added gravityscale to CL_SparkShower
havoc [Sat, 30 Oct 2004 13:46:22 +0000 (13:46 +0000)]
added DP_SV_PING, DP_SV_PUNCHVECTOR, DP_SND_FAKETRACKS, and DP_FS_SEARCH extensions
corrected builtin table comments for DP_FS_SEARCH functions
removed DP_SV_EXTERIORMODELTOCLIENT extension (no such thing, the extension is named DP_ENT_EXTERIORMODELTOCLIENT)
havoc [Wed, 27 Oct 2004 18:29:51 +0000 (18:29 +0000)]
changed net_masterextra1 and 2 back to IP addresses (but kept their DNS names as comments), the DNS resolving takes too long, and caching it is non-trivial
havoc [Wed, 27 Oct 2004 18:11:36 +0000 (18:11 +0000)]
greatly improved video capture speed by generating the files much more directly (less processing)
added a raw video .rgb output mode (making only one file instead of thousands, for a slight speed gain, assuming you have tools that can read it)
video capture now maintains sound sync by duplicating frames to keep up a consistent video output speed (warning: do not attempt higher speeds than your machine is capable of, it WILL fall behind and get progressively slower very fast)
rewrote much of Host_FilterTime to improve video capture and simplify timing in general
removed host_minfps (now uses sys_ticrate instead)
renamed host_maxfps to cl_maxfps (as it only ever affected the client anyway)
now runs multiple server frames if host is falling behind, based on sys_ticrate (mainly useful to avoid slowing down when client is rendering really slow)
molivier [Wed, 27 Oct 2004 15:50:47 +0000 (15:50 +0000)]
Pure cleaning commit: removed "crc.[ch]" and "gl_warp_sin.h", removed dead functions and dead variables, and moved several header includes out of "quakedef.h"
molivier [Tue, 26 Oct 2004 14:48:43 +0000 (14:48 +0000)]
Updated Win32 sound module: the wave output code was partially rewritten since the old version was obviously pretty tied to Quake original output format; removed a few useless variables here and there; and a lot of whitespaces and comment changes, as usual
havoc [Tue, 26 Oct 2004 07:37:19 +0000 (07:37 +0000)]
S_LoadSound now automatically tries both with and without sound/ when loading sounds, which allows quake3 maps to work better, since their target_speaker entities include sound/ in the filenames, this also got rid of the stdpath parameter in the S_PrecacheSound/S_FindName/S_LocalSound calls)
havoc [Sat, 23 Oct 2004 10:00:38 +0000 (10:00 +0000)]
removed number field from client_t struct as it seemed to be behaving unreliably in SV_DropClient (resulting in changes to the scoreboard entry for client 0, regardless of which client was dropped)
black [Sat, 23 Oct 2004 00:36:48 +0000 (00:36 +0000)]
-Added the constant MAXTRACKS which is set to 256.
(remap has the type qbyte[256] now)
-CD_Play now also searches for fake tracks with 3 digits.
(the old 2 digit search is kept for compatibility)