lordhavoc [Wed, 22 May 2002 09:57:49 +0000 (09:57 +0000)]
added RecursiveHullCheckPoint for quicker tracing of a single point (that is to say: start == end)
rewrote RecursiveHullCheck a few times trying to improve it and gave up (epsilons are finicky), mostly reverted, however the mid point calculation is more accurate
(this fixes the 'can't move' bug)
lordhavoc [Wed, 22 May 2002 03:17:50 +0000 (03:17 +0000)]
fix a bunch of pointer type warnings introduced by the change to const parameters in R_ConcatRotations and R_ConcatTransforms (now take float * instead of two dimensional array)
lordhavoc [Tue, 21 May 2002 10:47:23 +0000 (10:47 +0000)]
split out RecursiveHullCheck and related code into collision.c (shared by client and server, doesn't care what an entity is), and cl_collision.c (CL_TraceLine and related code), this cleans up a lot of messy RecursiveHullCheck calls, replacing them with Collision_ClipTrace calls
also removed some commented out code
and fixed an epsilon glitch in RecursiveHullCheck which was mostly visible when shooting a gun along a wall at angles nearly parallel with the wall
lordhavoc [Thu, 16 May 2002 06:54:20 +0000 (06:54 +0000)]
now fetchs wgl functions
now works with all drivers I would hope (tries both wglGetProcAddress and GetProcAddress to get a function's address)
now detects both glDrawRangeElements (1.2 function) and GL_EXT_draw_range_elements (1.1 and above extension)
now tunes gl_mesh_maxtriangles based on DrawRangeElements limitations reported by driver (if available)
lordhavoc [Wed, 15 May 2002 08:56:45 +0000 (08:56 +0000)]
muzzleflash fades out
changed .lights file format very slightly to add customizable distance bias (softness)
now splits surface meshs bigger than 1000 tris into multiple smaller ones automatically while loading
lordhavoc [Wed, 15 May 2002 02:30:05 +0000 (02:30 +0000)]
sv_stepheight cvar, SV_Init now calls SV_Phys_Init, and another unsuccessful attempt to make items float in air if spawned on soon-deleted platforms (mapper trick for floating items)
lordhavoc [Tue, 14 May 2002 10:43:25 +0000 (10:43 +0000)]
search for GL functions using GetProcAddress on win32 instead of wglGetProcAddress (which only lists extensions, apparently), fixes inability to find GL 1.1.0 functions in 3dfx driver (maybe NVIDIA and others, only tested 3dfx)
lordhavoc [Tue, 14 May 2002 10:40:35 +0000 (10:40 +0000)]
independent control of gl_mesh_maxtriangles and gl_mesh_transtriangles (that is to say you can have more transparent triangles than normal ones, they get rendered in batchs anyway)
also a check for meshs too big for 3DFX drivers, which might fix problems for some people, I dunno, I was unable to reproduce the problem on my voodoo2 this time (has occurred in the past, maybe something else is broken in the gl_backend preventing it from overflowing the vertex buffers of the driver)
lordhavoc [Sat, 4 May 2002 12:08:45 +0000 (12:08 +0000)]
cleaned up and fixed collisions with brush models (example: you can now ramp jump and hit the light fixture in e4m1 in dp mod), now uses 3 different bounding boxes for the trace (hullmins/hullmaxs for collisions with brush models, mins/maxs for collisions with normal entities, mins2/maxs2 for collisions with monsters), and the movebounds use the largest of the bounding boxes to ensure proper collisions
items suspended in the air on a func_door (or similar) entity which is then killed by a trigger, should now continue floating in the air (this is a gross hack, to make suspended items in various maps stay in the air)
fix for savegames containing newlines inside strings (now they are converted to escape codes, which COM_Parse will happily dismantle again when loading)
removed silly uses of 'long' (now int, or qbyte *, depending on the way it was used), and changed memheader sentinels to work on processors which can not handle unaligned memory access (Sparc for example)
lordhavoc [Sat, 30 Mar 2002 05:04:54 +0000 (05:04 +0000)]
added cl_avidemo cvar (saves a series of tga images named gamedir/dpavi000000.tga and so on, the parameter to it is the framerate to save, locks framerate to this while saving, set back to 0 to stop - note there is sound saving code but it is commented out because it's always desynchronized to the video because quake has such a lousy sound engine)
lordhavoc [Wed, 27 Mar 2002 03:44:35 +0000 (03:44 +0000)]
reorganized shader rendering calls to process the whole surface chain multiple times in the shader function (pretty fast), rather than calling the shader function multiple times per surface (slow!)
lordhavoc [Wed, 27 Mar 2002 00:34:02 +0000 (00:34 +0000)]
added some (not yet used) key config menu code, part of a redesign for loading the key config menu layout from configs (more specifically default.cfg in DP mod and any others that use it)
lordhavoc [Wed, 20 Mar 2002 17:31:29 +0000 (17:31 +0000)]
fix for CreatePath creating a directory of the drive's letter in windows (d:\quake created a d directory, then d: (ignored), then d:\quake, now creates d: (ignored), then d:\quake) (thanks Elric)
lordhavoc [Sun, 17 Mar 2002 16:32:02 +0000 (16:32 +0000)]
added EF_STARDUST effect (showering golden sparks, and the entity glows)
reduced rocket glow a little
made blood stains brighter again (so you can at least see the floor)
EF_STARDUST and EF_FLAME now create a fixed size effect rather than attempting to use the model bounding box (which is too big usually)
lordhavoc [Sat, 16 Mar 2002 15:00:15 +0000 (15:00 +0000)]
changed protocol back to using float coordinates, unless the mod specifies EF_LOWPRECISION on an entity, then it is sent using shorts (if it is within the short range, otherwise it uses floats), this loses some bandwidth but makes everything look nice (lifts aren't jerky, etc)
lordhavoc [Thu, 14 Mar 2002 19:52:06 +0000 (19:52 +0000)]
randomized blood and smoke color a bit (darker/brighter randomly), got rid of smoke texture color (so now it fogs for free, no state thrash), looks a bit worse on blood, but oh well
lordhavoc [Thu, 14 Mar 2002 00:02:34 +0000 (00:02 +0000)]
skip bbox check on bmodels because it is fast enough to trace against their hull and has less problem cases
commented out no longer useful clip.trace.allsolid check in SV_Move
lordhavoc [Wed, 13 Mar 2002 13:58:20 +0000 (13:58 +0000)]
fix for fall-through-floor-when-embedded-in-another-entity situation (now the entity only falls through entities it is embedded in, and blocks on all others), and another fix for grenade bounce sound, also some cleanup of the toss physics code, and corpses no longer block against eachother
lordhavoc [Wed, 13 Mar 2002 12:23:18 +0000 (12:23 +0000)]
fixed grenades to behave more like quake again (60 normal-dot-velocity tolerance for stopping), fixed continuous bounce sound (repeated touch when sitting on floor), you can now walk on SOLID_SLIDEBOX/SOLID_BBOX objects (like in Q2/Q3), if two objects are stacked and the bottom one moves out from under, the top one will fall (always wished quake would do that)
lordhavoc [Tue, 12 Mar 2002 16:57:26 +0000 (16:57 +0000)]
added cl_particles_blood_size_min, cl_particles_blood_size_max, and cl_particles_blood_alpha cvars
changed trails back to quake-style (spawn over distance, not over time)
pt_fade now takes a fade rate (in p->time2)
many tweaks to particle effets
loading screens work correctly now
cleaned up backend code a bit, now does not freak out if a texture upload occurs during rendering
added r_quickmodels (default: on) which makes single-pass models (the vast majority of models) store vertex data directly into the backend arrays (using R_Mesh_Draw_GetBuffer)
model vertex transforms are now applied *after* lighting, this avoids transforming the normals, and prepares for someday adding transforms to the backend
fixed view blend in gl_rmain.c to work correctly with fov values above 90
moved image resampling and mipmapping from gl_textures.c to image.c
now updates screen twice while connecting to a server (so it displays the 'trying...' messages)
improved directional shading of explosions
disabled r_lightmodelhardness since the default was nearly 1.0 anyway, 1.0 is a special quick case
R_LightModel now tints the model and can accept vertices/normals in either model or world coordinates (previously required world coordinates)