added newmap function to render modules (so explosions and other things are reset on map load)
CL_AllocDlight redesigned (takes all settings for dlight on parameter line)
dlights now use a pointer to their owner entity instead of a key number
light emitting entities now glow properly (directional lighting disabled on the entity that owns the dlight)
cl_shownet no longer spews empty lines when recieving less updates from server than client framerate
some whitespace cleanup
fixed some missing parentheses on a condition in R_BuildLightmap (mixed &&, &, and ||, eek)
fixed vertex array problems with fog sky
increased MAX_TRANSPOLYS from 8192 to 65536
added a general purpose decal engine, superior to the decal particles (lower CPU use, better lighting)
added bullet hole decals and bullet hole texture generator
added r_speeds2 time reporting for moveexplosions, drawexplosions, and drawdecals
cleaned up dlight logic, all code now relies on radius, which is cleared when the dlight dies, this removed all potential flickering problems and offers a minor speedup
optimized R_ResampleTexture further to improve load times
moved heap size commandline parameter stuff from platform specific startup code to Host_Init, now all platforms understand -mem, -winmem, and -heapsize
WAD3 texture transparency now supported again
r_explosionclip cvar is now saved to config
r_drawexplosions cvar added
r_particles cvar is now saved to config
r_dynamicparticles cvar renamed to r_particles_lighting
r_particles_bloodshowers cvar added to disable blood shower effects
r_particles_blood cvar added to disable blood effects
r_particles_smoke cvar added to disable smoke effects
r_particles_sparks cvar added to disable spark effects
r_particles_bubbles cvar added to disable bubble effects
fixed smoke texture problem (0 alpha-noise portions were not written to texture, leaving portions of previous texture in buffer)
changed nearly every particle effect to look better and use less particles and fillrate, major speed gains resulted
blood particles no longer fade inflight as it made the effects less impressive and resulted in a lot of mostly transparent decals
major particle size bug fixed, all view aligned particles (everything but rain and decals) were 50% larger than they were supposed to be
particles now use transpolyvertub (unsigned byte colors) instead of transpolyvert for a speedup
optimized AngleVectors calls (pass NULL for vectors that should not be generated)
added VectorVectors (takes a forward unit vector, makes right and up vectors)
corrected silly id spelling mistakes 'allready' and 'allways'
most host_frametime references changed to cl.frametime or sv.frametime
fixed movement interpolation in listen games (host client wasn't lerping the framerate capped server's frames)
added EF_FLAME effect, untested
changed svc_showlmp to use shorts, not bytes (except in nehahra compatibility mode)
broke svc_fog for now
removed svc_farclip
removed svc_playerposition
removed svc_skybox
increased maximum number of models and sounds to 1024 each (and added extra svc_ messages and update bits to handle the new limits)
made punchangle use preciseangles (on DP servers), added punchvector (view origin kick, useful for earthquakes?)
redesigned entire animation interpolation system (can lerp between independently playing framegroups)
redesigned animation scene lookup in model and sprite rendering to use a single system
added a simple clientside effect system (meant for playing sprite explosion animations entirely on the client, with very nice interpolation and framerate control)
added te_smallflash
added te_customflash
added te_flamejet (untested)
darkened lightning glow and made it adjustable (r_glowinglightning cvar is now a scaler, not just an option)
increased maximum number of clientside entities
COM_WriteFile will now create a path leading up to the file
removed cpu_*.* files
reorganized fractalnoise code, now behaves more correctly
stripped out qsg_version stuff, replaced by pr_checkextension and extensions have changed completely (extensions are documented in dpextensions.qc in DP mod and release zips)
made skin and sprite mipmapping optional (r_mipskins cvar, r_mipsprites cvar), saves about 32% of texture memory if disabled
rewrote texture management system (again), now uses flags to specify texture attributes (all textures without the PRECACHE flag are uploaded only when first used, conserves huge amounts of memory), and is cleaner code
r_precachetextures cvar controls how PRECACHE texture flag is used (0 = never precache, 1 = use PRECACHE flag, 2 = always precache)
changed way text filtering mode is decided
now requires vertex array support (standard in OpenGL 1.1 so this is not a problem)
takes advantage of GL_EXT_compiled_vertex_array extension (no speed gain for my Geforce2, may help other people)
reverted to GL transforms for models (no speed gain for my Geforce2, may help other people)
gl_transform cvar controls whether to use GL transforms (1) or software transforms (0), could not measure any speed difference in my testing
r_shadows removed due to GL transforms on models
model and sprite interpolation now handle 4 frame interpolation to accomodate new interpolation system
RSurf_Draw* functions greatly optimized
Host_Error will now Sys_Error rather than crash if Host_Frame has not yet been executed
cleaned up viewthing frame reporting code, now uses the new animation system
can now look directly up and down
ByteToNormal and NormalToByte added in mathlib.c, also moved anorms.h table to mathlib.c
added axial cases for BoxOnPlaneSide (BIG improvement)
trivert2 vertex format removed, now uses alias trivertx_t format as-is (33% less model memory usage and possibly quicker loading)
redesigned map texture loading again (particularly HL maps)
water is now lit on both sides
sprites are now cached like models
sprite loading redesigned to use new animation system
increased maximum packet size to accomodate the largest possible
PF_vectoyaw optimized a little
PF_vectoangles optimized a little
PF_findchain added
PF_findchainfloat added
PF_effect added
PF_te_blood added
PF_te_bloodshower added
PF_te_explosionrgb added
PF_te_particlecube added
PF_te_particlerain added
PF_te_particlesnow added
PF_te_spark added
PF_te_gunshotquad added
PF_te_spikequad added
PF_te_superspikequad added
PF_te_explosionquad added
PF_te_smallflash added
PF_te_customflash added
PF_te_gunshot added
PF_te_spike added
PF_te_superspike added
PF_te_explosion added
PF_te_tarexplosion added
PF_te_wizspike added
PF_te_knightspike added
PF_te_lavasplash added
PF_te_teleport added
PF_te_explosion2 added
PF_te_lightning1 added
PF_te_lightning2 added
PF_te_lightning3 added
PF_te_beam added
PF_vectorvectors added
increased maximum file path length
explosions are no longer round
removed LIGHTSCALE settings
removed r_donttransformmodels cvar
a lot of particle effect changes (bouncing sparks, blood sprays from gibs that stick on the walls)
fixed sound combining so it no longer plays past the end of the buffer
fixed sound resampling
while not yet used (I'd forgotten how much side work was involved in getting
zlib support into quake), these will allow dp to use compressed paks :) The
rest will be coming as soon as I get everything working.
lordhavoc [Fri, 2 Mar 2001 10:52:15 +0000 (10:52 +0000)]
Coordinates are now floats in network protocol (bloats it yes, but the accuracy allows unlimited map size, and smoother movement at very high framerates)
prints dump of last 32 svc messages in packet when client encounters unknown svc (corrupt or mis-parsed network stream)
some aesthetic cleanup of tempentity parsing
rewrite of COM_FileBase
default gl_lightmaprgba to 1 (driver speedup (data bloat, but drivers are often more optimized for it), thought I defaulted it to 1 all along, but apparently not)
model names no longer use COM_FileBase (thus they are the full name, like "progs/blah.mdl" rather than "blah", "maps/start.bsp" instead of "start", etc)
fixed bugs in model colormapping, and added external skin texture support (example: progs/blah.mdl_0_normal.tga and progs/blah.mdl_0_glow.tga, pants and shirts are also supported)
support for textures inside HL maps, and the transparent color has been fixed (HL checks for pure blue, not index 255)
default r_dynamicparticles to 1 (light smoke/blood)
improvement in angled corner sticking situations (still get a little bump as you pass through, but not actually stuck)
fixed rotation support in MOVETYPE_FOLLOW, now works perfectly
extended description length in hunk headers (50 characters now)
despair [Wed, 28 Feb 2001 20:41:46 +0000 (20:41 +0000)]
Fix for exit segfault preventing fullscreen cleanup, and for the segfault as well.
Also enables dga mouse support, and adds in_dga_mouseaccel. DGA support needs testing.
lordhavoc [Fri, 23 Feb 2001 23:39:54 +0000 (23:39 +0000)]
improved TraceLine in chase.c to be more generally useful (should move it to another file, though)
error checking in qmalloc/qfree
expanded COM_LoadFile max filename length from 32 to 1024
improved COM_LoadFile error messages
added COM_ToLowerString and COM_ToUpperString
.zym model support (not quite complete, in development)
unfinished transition to hardware model transforms (not used yet)
changed polylists to draw 5+ point polygons as GL_POLYGON instead of GL_TRIANGLE_FAN (I thought I had reverted to GL_POLYGON a long time ago... strange) for a minor speedup
new explosion effect (no particles)
reverted to lightmapped dynamic lighting effects (vertex hybrid still available as r_dlightmaps 0)
extreme speed improvements in which wall polygons are lit
minor optimization to lightmap building (memset to clear blocklights)
added and disabled texture caching to disk (it turned out to be a slowdown and a massive waste of space, but kept in source form incase it is ever useful)
much improved missing QC function errors (most notably think)
partial redesign of the skin colormapping engine (not used yet)
more consistent light falloff on different objects
created and scrapped a new particle explosion effect (way too fillrate intensive), superseded by the new explosion effect
only dynamically lights smoke and blood particles unless r_dynamicparticles is 2
possible fix for alt-tab bug in NVidia drivers (from Dabb)
lordhavoc [Fri, 9 Feb 2001 12:11:11 +0000 (12:11 +0000)]
added back r_speeds2, with masses of information (6 lines high), and made it print to the screen rather than console print
changed fps reading to be integer, no fraction (is this desirable?) and moved it to bottom right corner
changed rendering order yet again
made sky and waterripple speed dependent on cl.time rather than realtime (undecided if this is desirable)
made console scrolling not subject to slowmo time scaling
some whitespace changes/cleanup
moved some registervariable definitions around
optional new worldnode function (r_newworldnode, defaults to off), very different approach, minimal speed differences... sigh
added backface culling on surfaces (r_nobacks, defaults to off), barely a gain
in worldnode, made 'trivial inclusion' case for all children nodes of a completely successful CullBox test, defaults to off because it was no speed gain even on the most complex maps I could find
readability cleanup and minor speedup in lightmap conversion
added host_minfps (if framerate drops below this it will be slowmo, this replaces quake's hardcoded 10fps limit)
added host_maxfps (limit your framerate if desired, defaults to 1000, this does affect timedemo)
improved slowmo behavior
optimized out most vec3_origin uses (created VectorNegate and VectorClear for this reason)
fixed VectorDistance (old definition didn't work correctly, but never got used anyway)
darkened blood trails a bit
split R_DrawParticles into R_MoveParticles and R_DrawParticles (for speed profiling reasons)
fix for extremely rare and probably unnoticable bug in particle compacter
fixed a number of prediction issues, prediction does not occur in local games anymore, prediction also made optional (sv_predict cvar)
lordhavoc [Tue, 6 Feb 2001 17:26:46 +0000 (17:26 +0000)]
better version reports (always mention build number)
minor cleanup of qpic system (loading and drawing)
minor improvement to lighting engine tweakability (LIGHTSCALE2)
minor cleanup to texture tracking (totaltexels now called texeldatasize)
r_texturestats texture size reports are now correct (was showing 4x what it should have)
r_texturestats report rearranged to put size on the left for easy sorting in console logs
cruft removal
lordhavoc [Mon, 29 Jan 2001 11:59:51 +0000 (11:59 +0000)]
got rid of Hunk_Alloc, all allocations now have a proper name (perhaps a bit too descriptive even), improved texture tally to list wasted skin layers (colormapping), made hunk names 24 characters instead of 8.
lordhavoc [Mon, 29 Jan 2001 06:10:57 +0000 (06:10 +0000)]
make screenshots rightside up again (or rather, upside down like TGA wants, which happens to be the output format of glReadPixels, a fact I was unaware of, so the flipping was turning it to rightside up, which is upside down in TGA... follow that logic? good :)
lordhavoc [Mon, 22 Jan 2001 23:58:32 +0000 (23:58 +0000)]
clarifications about the format of svc_fog
precache name overflow checks
gl_screen.c - whitespace changes?
sky name overflow checks
"tell" buffer overflow improvement (not really a fix)
edict parsing buffer increase (not really a fix)
increased number of leafs per entity from 64 to 256 (mem hog... but fixes fall2.bsp note: quake used 16 and did not have a problem with fall2?) and added warning when it runs out
removed rotating pusher hack and added solid checking
non-working MOVETYPE_FOLLOW rotation support (in-progress)
lordhavoc [Fri, 12 Jan 2001 11:36:47 +0000 (11:36 +0000)]
Fix for image replacement in sprites, now the sprite extension is stripped before the frame names are generated (so naming for s_explod.spr is like s_explod_0.tga, s_explod_1.tga, etc) and the extension stripping in the image loader will only strip off .lmp or .pcx or .tga, not other extensions, the sprite extension stripper is similar but for .spr and .spr32.
lordhavoc [Sat, 9 Dec 2000 18:04:45 +0000 (18:04 +0000)]
bmodel rotation physics now work
new vid_glx.c (contributed by zinx)
removed DPNEHAHRA engine titling
fixed some lighthalf, fog, and sky related bugs
removed some 3D card hacks
merged GL_Init code for all targets (note: vid_glx.c and vid_3dfxsvga.c may be broken)
split sprite code out in gl_sprites.c
rearranged palette management code
removed all traces of 8bit upload support for now (may be added back)
halved memory usage (although this prevents renderer restarting for the moment)
implemented r_texturestats command
removed old texture upload code
rewrote use of host_parms
rewrote some code relating to host_basepal
bigendian support in pcx loading
changed external texture character equivilant for * from + to # to avoid conflicts with animating textures
removed cruft here and there
force all textures to lowercase to mask potentially silly wad lump names in maps
new crosshairs
more stuff is extern in includes
some general cleanup of the MOVETYPE_PUSH code
rewrote portions of vid_wgl.c
V_UpdatePalette renamed to V_UpdateBlends
removed starting dialog code in wgl
made SV_RecursiveHullCheck accessable in world.h
lordhavoc [Sat, 18 Nov 2000 09:53:29 +0000 (09:53 +0000)]
implemented r_render and r_upload cvar options for CPU profiling (not hardware bound), note: defining NORENDER will disable both (useful for making profile builds)