divverent [Mon, 28 Jan 2008 09:40:11 +0000 (09:40 +0000)]
add a DEMOMSG_CLIENT_TO_SERVER flag to demos (0x80000000) in the size field; packets with this flag will be ignored by playback. sv_autodemo_perclient 2 will record these packages for debugging purposes (like, recording a speedhacker's or other protocol exploiter's packets, and analyzing them with the data in the demo file manually)
havoc [Mon, 28 Jan 2008 03:36:03 +0000 (03:36 +0000)]
added r_glsl_postprocess cvar to apply a postprocessing pass over the
screen (currently only implements r_glsl_contrastboost)
this path is also activated if bloom or hdr is active with r_glsl 1
black [Mon, 28 Jan 2008 01:02:56 +0000 (01:02 +0000)]
Make fgets always return the null string on error.
Add code to FS_Open to fix bad paths (replaces \ with /). The code is nasty and #ifdefed out - #define FS_FIX_PATHS to use it.
black [Sun, 27 Jan 2008 18:49:34 +0000 (18:49 +0000)]
R_SetView now supports VF_CLEARSCREEN which decides whether to clear the screen or not when rendering the view (this is of particular interest for rendering view in views or for the menu).
black [Sun, 27 Jan 2008 17:23:08 +0000 (17:23 +0000)]
Pass the name of the instance to Gecko_Query, too.
Add setattachment, gettaginfo and gettagindex to menu builtin list, too.
Add DP_GECKO_SUPPORT and DP_QC_GETSURFACEPOINTATTRIB to dpextensions.qc.
havoc [Sun, 27 Jan 2008 08:39:42 +0000 (08:39 +0000)]
some surface rendering code cleanup
eliminated several redundant state calls
eliminated RSurf_CleanUp function
eliminated special gl_lightmaps rendering path
moved all but the basic material rendering from R_DrawTextureSurfaceList
to R_ProcessTextureSurfaceList, this simplifies the transparent callback
and allowed me to move the transparent queuing into this function
havoc [Sun, 27 Jan 2008 06:28:54 +0000 (06:28 +0000)]
implemented r_glsl_usegeneric cvar, this causes generic GLSL shaders to
be used in place of ALL conventional fixedfunction rendering, seems to
give about a 3% fps increase on NVIDIA drivers
this should fix zfighting issues involving r_depthfirst or shadows,
particularly on Mac OSX (may also fix the OSX rotating/scrolling hud)
black [Sun, 27 Jan 2008 02:18:54 +0000 (02:18 +0000)]
Add R_SelectScene and R_GetScenePointer that encapsulate access to an array of r_refdef_scene_t that is swapped into r_refdef on need.
Change the menu to use it and fix a bug that was caused because of the menu's use of the stack for backing up the client's scene.
havoc [Sun, 27 Jan 2008 00:55:22 +0000 (00:55 +0000)]
rewrote most of the VM_Polygon/DebugPolygon code, it should perform much
better now and has no upper limit on polygons, and only a 64 point limit
per polygon, and has transparent sorting again
havoc [Fri, 25 Jan 2008 23:31:06 +0000 (23:31 +0000)]
disabled size throttling of packets if csqc is used (because it was very
easy to end up with >128 byte entity updates which can in some cases
never be sent at all due to the size throttling)
havoc [Fri, 25 Jan 2008 19:47:02 +0000 (19:47 +0000)]
vary r_drawparticles_drawdistance and r_drawdecals_drawdistance for
quality limiting according to FPS, instead of skipping particles, this
looks much better (but doesn't help FPS as much)
havoc [Fri, 25 Jan 2008 08:48:57 +0000 (08:48 +0000)]
implemented framerate-dependent particle quality reduction to try to
smooth out fps swings in Ruiner in Nexuiz
added r_drawparticles_drawdistance (and one for decals)
particles and decals arrays now grow dynamically and have smaller
defaults than before
fixed bug with rain particles that made them live for about 4 minutes if
they fell out of the map
havoc [Tue, 22 Jan 2008 20:05:42 +0000 (20:05 +0000)]
merged CL_MoveParticles, CL_MoveDecals, and R_MoveExplosions into their
respective Draw functions, this gave a small fps gain (due to better
cache behavior)
redesigned input packet timing (now based on cl.time instead of
realtime, which required compensating for slowmo), this takes advantage
of the time synchronization features of the cl.time code
replaced cls.movesequence with cls.netcon->outgoing_unreliable_sequence
havoc [Tue, 22 Jan 2008 19:56:33 +0000 (19:56 +0000)]
fixed sprites rendering incorrectly in reflections (the view vectors no
longer match the actual rendering matrix in the reflection case, fixing
such problems)
divverent [Sun, 20 Jan 2008 19:45:25 +0000 (19:45 +0000)]
For some reason, cl_netinputpacketsperserverpacket > 1 causes choppiness when cl_movement is active and fps are high.
As workaround, disable the "replying to server frames" code for cl_netinputpacketsperserverpacket > 1, and make it ONLY respond to server frames (or after 0.1s when no server frame came) when set to 0. 0 MAY be a bit more smooth than 1, but something tells me it is LESS smooth when packet loss is involved.
divverent [Sat, 19 Jan 2008 01:46:58 +0000 (01:46 +0000)]
Fix bug in stringbuffers with bufstr_set not updating num_strings; add a new builtin for QC called float hash(float caseinsensitive, string str) that returns the CRC of the string (possibly after lowercasing). Using this, a persistent database can be implemented quite efficiently (for a 1MB database file, it takes about 0.1 seconds to load and 0.3 seconds to save, which is quite acceptable). From QC, I use a string buffer of 16384 strings, indexed by hash of the key, containing an info string at each index to solve the collision issue. Possibly add hash() to the stringbuffer DP extension, or make a new extension for it?
havoc [Thu, 17 Jan 2008 13:19:11 +0000 (13:19 +0000)]
rewrote most of the DP_QC_STRINGBUFFERS implementation
string buffers are now associated with their parent progs (and no longer
leak when the progs is freed)
removed almost all limits on string buffers (there is a sanity limit of
a million strings per buffer)
divverent [Sun, 13 Jan 2008 10:12:30 +0000 (10:12 +0000)]
always look for spawnfunc_%s first when spawning an entity by classname (for Q3A map compatibility - ammo_rockets is used as classname in Q3A and as field in Q1)
divverent [Wed, 9 Jan 2008 11:28:22 +0000 (11:28 +0000)]
remove prvm_boundscheck cvar (security hole) and force bounds check on unless DP is compiled with -DPRVM_BOUNDSCHECK_CVAR (for those who REALLY want to be able to turn it off)
divverent [Tue, 8 Jan 2008 19:37:10 +0000 (19:37 +0000)]
remove -appdata option... make -mygames option instead (easier to find for users). As before, only use that path if explicitly specified or if there is no other way.
black [Mon, 7 Jan 2008 14:28:25 +0000 (14:28 +0000)]
Move a part of r_refdef_t into a new r_refdef_scene_t struct and refactor the code to use it.
The menu now only uses its own scene. This fixes all issues I know of, but this is only the first step -
a bigger clean-up is still needed.
divverent [Sun, 6 Jan 2008 22:00:17 +0000 (22:00 +0000)]
add rcon_restricted_password and rcon_restricted_commands - this allows to give out a "lesser" rcon password that can only be used to execute commands in a small list, instead of full console access