havoc [Mon, 19 Feb 2007 10:15:11 +0000 (10:15 +0000)]
reworked packet sending code a bit more, this is mostly just a cleanup, not a change in logic, except that cl_movement 0 now reports the correct ping time to the server, so local players get ping 0 as they used to
havoc [Mon, 19 Feb 2007 07:48:09 +0000 (07:48 +0000)]
changed FL_ONGROUND handling for pushers (lifts for example) so you now ride down lifts, rather than repeatedly falling and hitting the lift
cleaned up FL_ONGROUND handling for items riding pushers, so they now only lose their FL_ONGROUND status if the move is blocked
havoc [Mon, 19 Feb 2007 01:33:38 +0000 (01:33 +0000)]
this patch may break things and needs testing
major cleanup of csqc and ssqc builtin tables
minimized differences between csqc and ssqc builtin tables (everything that can be implemented in both is implemented in both)
added VM_SAFEPARMCOUNTRANGE to allow a function to have, for example, 2-4 parameters (where as VM_SAFEPARMCOUNT requires it to be an exact match)
added VM_SAFEPARMCOUNT or VM_SAFEPARMCOUNTRANGE to ALL builtins, this may break buggy qc (and it's possible that one or more of these checks are wrong)
replaced CL_TraceBox with CL_Move, this is a proper csqc-entity aware version akin to SV_Move, it has a ton of parameters due to support for network entity collisions as well (ideally this needs cleanup somehow but I have no idea how, as non-csqc network entities do not share the prvm_edict_t system and do not have entity numbers in the csqc world)
havoc [Mon, 19 Feb 2007 01:15:58 +0000 (01:15 +0000)]
fixed support of progs.dat files with important global and field names removed, such as omicron bot reporting that OP_STATE is not supported because it removed the field names
havoc [Mon, 19 Feb 2007 00:10:39 +0000 (00:10 +0000)]
removed vm_cl_extensions (now uses vm_sv_extensions)
cleaned up fieldoffsets/globaloffsets/funcoffsets fetching code (including removal of some duplicates) and sorted the contents of the structs to match the new order of the code
havoc [Sun, 18 Feb 2007 12:57:43 +0000 (12:57 +0000)]
added svc_trailparticles and svc_pointparticles, these are written by the trailparticles and pointparticles server builtins (matching the csqc ones), these can utilize any effect defined in effectinfo.txt without using csqc
havoc [Sun, 18 Feb 2007 12:47:17 +0000 (12:47 +0000)]
added generic collision functions Collision_ClipToGenericEntity, Collision_ClipToWorld, and Collision_CombineTraces to allow reduction of similar code in csqc and ssqc
havoc [Sun, 18 Feb 2007 12:45:26 +0000 (12:45 +0000)]
changed fieldoffsets and globaloffsets to be integer array indices instead of byte offsets, this basically means d->ofs is no longer multiplied by 4 in PRVM_ED_FindFieldOffset and PRVM_ED_FindGlobalOffset
havoc [Sun, 18 Feb 2007 12:41:11 +0000 (12:41 +0000)]
a cosmetic change as suggested by div0:
renamed PRVM_GETEDICTFIELDVALUE to PRVM_EDICTFIELDVALUE
renamed PRVM_GETGLOBALFIELDVALUE to PRVM_GLOBALFIELDVALUE
havoc [Sun, 18 Feb 2007 11:53:09 +0000 (11:53 +0000)]
fixed a bug with png loading on x86_64 platforms caused by libpng retardedness (it defines png_uint_32 as unsigned long, which is 64bit on such architectures, AND to make it worse this can be modified in pngconf.h on a per platform basis, so we detect the problem on big endian 64bit architectures and fix it there too)
black [Sat, 17 Feb 2007 11:27:09 +0000 (11:27 +0000)]
Hopefully this fixes a bug introduced with the latest cleanup by LH.
Changed the menu code to always show the old quake menu if forceqmenu is set
(even if it lacks the gfx files).
havoc [Thu, 15 Feb 2007 00:13:49 +0000 (00:13 +0000)]
cleaned up client qc, menu qc, and server qc VM initialization a bit so they have shared field/global/function lookup code,
changed world.c to not be server specific, moved server-specific functions to sv_phys.c
havoc [Wed, 14 Feb 2007 21:22:16 +0000 (21:22 +0000)]
added a check for level changes which blocks prediction for 100ms at the beginning of the new level, and clears ping time and other information
refactored input parsing to buffer moves in sv_readmoves array, this means that it can now always trust the last move in the packet, never ignored like earlier ones (which are clearly repeats of earlier input)
havoc [Mon, 12 Feb 2007 23:38:01 +0000 (23:38 +0000)]
added cl_nettimesyncmode cvar to choose the method of synchronizing cl.time, it defaults to resetting the cl.time to the previous packet's time, but only when it is out of bounds (meaning it increases it if it is falling behind, and snaps it back to the previous packet time if it exceeds this packet's time, which eliminates accumulated error)
havoc [Sun, 11 Feb 2007 17:44:59 +0000 (17:44 +0000)]
modified Mod_LoadSkinFrame to set base = r_texture_notexture on failure, this reduced fallback code elsewhere
reworked Mod_BuildAliasSkinsFromSkinFiles, it no longer tries fallbacks if a skin texture fails to load
fixed a crash on missing meshes in a skin file (which are intentionally nodraw, just like in Quake3)
havoc [Sat, 10 Feb 2007 22:43:41 +0000 (22:43 +0000)]
added r_bloom_brighten modification in graphics options menu, this was already displayed but wasn't working, messing up all options after it
updated graphics options item count from 19 to 20
havoc [Fri, 9 Feb 2007 01:19:05 +0000 (01:19 +0000)]
fix Q3BSP map loader's sky surface detection so that it doesn't assume all submodels have sky if the base model does, this improves rendering performance a bit (by not scanning for sky in submodels that claim to have it but don't)
havoc [Thu, 8 Feb 2007 15:57:21 +0000 (15:57 +0000)]
removed CL_UpdateEntities call in CSQC rendering code
changed r_refdef.lights from dlight_t * to rtlight_t (no longer a pointer)
modified CL_UpdateLights to setup the r_refdef.lights[] entry instead of merely pointing to the rtlight_t in the dlight_t struct
changed csqc dlight handling to comply with the spec (R_ClearScene resets r_refdef.numlights, then VM_R_AddEntities adds all engine-based entities and lights)
moved single-frame dlight spawning for rocket glow and such from CL_UpdateNetworkEntity to CL_LinkNetworkEntity (which is called by VM_R_AddEntities)
replaced all single-frame uses of CL_AllocDLight with R_RTLight_Update(&r_refdef.lights[r_refdef.numlights++], ...) calls, this includes lights such as muzzleflash, rocket glow, .glow_size lights, tenebrae dlights, etc
renamed CL_AllocDlight to CL_AllocLightFlash
renamed CL_DecayLights to CL_DecayLightFlashes
renamed CL_UpdateLights to CL_RelinkLightFlashes
renamed CL_ParticleEffect to CL_ParticleTrail and added spawndlight/spawnparticles boolean parameters, then added a CL_ParticleEffect which calls this with true for both
removed cubemapnum field from dlight_t
havoc [Tue, 6 Feb 2007 08:18:50 +0000 (08:18 +0000)]
no longer sends moves if time is not moving forward, except when paused (this fixes some bugs causing cl_movement 0 to lose impulse/buttons)
no longer repeats old moves if cl_movement is off (because they would serve no purpose)
eliminated cl.movemessages (now uses cl.movesequence for the same purpose)
havoc [Mon, 5 Feb 2007 17:45:59 +0000 (17:45 +0000)]
redesigned input networking code (still same protocol) and did a lot of cleaning, now predicts movement even if server packets are lost
added cl_netinputpacketlosstolerance cvar (default 4, qw used 2, can be up to 16) to repeat old input messages in each packet so that they can only be lost by heavy packet loss
changed sv_clmovement_waitforinput default to 16 to match this capability
reworked a lot of timing code related to input networking
fixed some bugs when frametime is 0 in player physics
havoc [Sat, 3 Feb 2007 12:08:54 +0000 (12:08 +0000)]
made CL_SetInfo check for more forbidden characters (key now refuses any form of whitespace, value now refuses \r and \n) and refactored the checking code to make it a bit cleaner
havoc [Sat, 3 Feb 2007 08:49:02 +0000 (08:49 +0000)]
added r_shadow_frontsidecasting cvar (default 1), this allows switching to back-side casting instead, however this has proven buggy so it is not to be used yet
havoc [Sat, 3 Feb 2007 03:36:26 +0000 (03:36 +0000)]
fixed two bugs that caused a constant state of "player stuck" (one was that it always thought this was a q1bsp/hlbsp map, and the other was that the q1bsp/hlbsp corner checking was checking the wrong locations)
havoc [Sat, 3 Feb 2007 03:08:57 +0000 (03:08 +0000)]
fixed bug in AVI RIFF chunk 1GB size limiting code (it was not accounting for the index buffer size which will be written afterward) which was causing the chunk to often exceed 1GB
havoc [Mon, 29 Jan 2007 09:52:31 +0000 (09:52 +0000)]
fix very stupid bug in svbsp calls that made only the first triangle of an occluding surface polygon be inserted into the svbsp, and some other cleanup/corrections