lordhavoc [Mon, 29 Oct 2001 06:27:54 +0000 (06:27 +0000)]
changed way that "entities" (CL_PrintEntities_f) displays entities, and now skips inactive entities (forgot to update it's code a long time ago, apparently)
lordhavoc [Sun, 28 Oct 2001 09:18:01 +0000 (09:18 +0000)]
made the Sorted Edge Rasterizer (hidden surface removal) optional as the r_ser cvar, can be a speed difference
added back the old portal-passage worldnode code (sometimes faster)
recalculate node bounding boxes when loading (based on leaf bounding boxes which are calculated from portal generation)
added untested code for qftol (much faster double to integer conversion on x86, not used yet)
added a couple Hunk_Check calls while loading things (just to be a little more paranoid)
minor whitespace cleanup, some commented out code removed
lordhavoc [Fri, 26 Oct 2001 20:17:33 +0000 (20:17 +0000)]
added CVAR_SAVE and CVAR_NOTIFY flags to cvar_t structure (at the beginning), updated all cvar definitions to match, a lot more cvars are saved now.\nadded server-side portal checking of entity visibility, only entities which really are visible are sent to clients now (some slowdown on server, but reduces network traffic and makes wallhacks useless)\nadded mostly untested mouse and keyboard user interface code (input support not completely finished yet, and no code using the UI yet)\n
lordhavoc [Thu, 18 Oct 2001 00:59:02 +0000 (00:59 +0000)]
probable fix for severe model rendering bugs in 3DFX voodoo4/5 win32 drivers, and G400 win32 drivers (they don't seem to handle a sizeof == 0 case for the array pointer stepping)
very nice command line tab completeion from Shawn Walker
<eviltypeguy@qeradiant.com> with my later modifications so that commands
are completed as much as possible.
lordhavoc [Sun, 10 Jun 2001 20:03:42 +0000 (20:03 +0000)]
added -lz to the non-ALSA compile line, switched to non-ALSA compile by default (to match the sound driver default being non-ALSA)
added a lot of descriptive comments
lordhavoc [Wed, 30 May 2001 04:57:15 +0000 (04:57 +0000)]
rearranged sky rendering code
reenabled sky sphere code
added r_skyquality cvar (0 = no sky, higher values improve quality of quake sky rendering, no change to skybox)
sky sphere uses identical texture calculations as glquake style now
added r_mergesky cvar (speed loss in my testing, but could be useful for very low fillrate cards, albeit a bit jerky)
lordhavoc [Tue, 29 May 2001 16:00:56 +0000 (16:00 +0000)]
split render portion of entity_t struct into entity_render_t
got rid of glowsize and glowtrail fields in entity_render_t (since they were only used inside RelinkEntities anyway)
removed some commented out struct stuff
fixed mouse hide/show code in win32 (could get stuck shown)
lordhavoc [Sat, 26 May 2001 19:44:32 +0000 (19:44 +0000)]
some whitespace changes
rearranged a few cvar definitions to be in more appropriate places
removed remnants of efrags system
added bitprofile command to report popularity of entity update components
fixed a number of baseline bugs and inconsistencies in the server and client (discovered using bitprofile)
general baseline generation code added (protocol.c)
added freelook cvar and menu option
exterior model capability added (so a model could be visible only when you are using chasecam, needed for visible weapon models)
fixed some inconsistencies in frame number sizes (should have been 16bit) in 16bit modelindex messages, and 8bit sound numbers that should have been 16bit
renamed Sys_FloatTime to Sys_DoubleTime
rewrote win32 Sys_DoubleTime code and minor work on UNIX Sys_DoubleTime
removed most of svc_entitiesbegin/svc_entitiesend code (big entity update protocol improvement planned)
hardware gamma/brightness/contrast support
hardware and software gamma/brightness/contrast adjustable in the menu
gl_lightmode (also known as lighthalf) switchable in the menu
can pick a crosshair in the menu
changed renderer references to r_refdef.vieworg to use r_origin instead
stripped out ancient transpoly code that was not being used
renamed qgamma array to texgamma
significant cleanup of mouse hide/show code in win32
improved eprint for better readability (better printing of floats/vectors)
added pr_fields and pr_globals commands to print a list of entity fields and global variables in loaded progs
moved some entity_state_t related stuff to protocol.c and protocol.h
made delta compression optional (sv_deltacompress cvar)
removed a lot of cruft
disabled stair step-up blending (never worked that well anyway)
removed sys_wind.c (I seriously doubt it worked)
lordhavoc [Sat, 12 May 2001 15:31:17 +0000 (15:31 +0000)]
build number 101
all leaf bounding boxes are recalculated based on portals (superior to qbsp's method)
bounding box removed from node structure
vismarkframe stuff removed from node and leaf structures
minor tweaking to some network stuff (trying to track down a bug)
R_BSPWorldmode and R_LeafWorldmode have been removed, related cvars have been removed
R_NoVisWorldnode is only used when in a solid leaf now
have been trying to track down very rare disappearing leaf bug in portal worldnode code (or portal building?), unsuccessfully
redesign of entity dlight code, much cleaner and saner (all dlight effects can be combined at once now as well, no override occurs)
lordhavoc [Fri, 11 May 2001 08:27:05 +0000 (08:27 +0000)]
***map loader generates portals for the map*** (can you tell this is a big deal? :)
increased build number to 100 (it's the truth)
made loadingplaque work correctly
disabled (commented out) loadingplaque
removed efrags
each model is checked against visible leafs (made efrags obsolete)
put .active field into client entity states (more correct than checking modelindex)
disabled all cachedir stuff (#if CACHEENABLE)
removed scr_copytop and other no-longer-relevant variables
removed Con_NotifyBox (wasn't used)
cleaned up visframe stuff
removed a lot of unnecessary fields from mnode_t and a few from mleaf_t
clarified r_visframecount stuff (now referred to as r_vismarkframecount, and similarly visframe field in mnode_t/mleaf_t is now called vismarkframe)
got rid of offsets[] array in texture_t
rewrote r_notexture_mip related code (fixing black default texture)
got rid of skyisvisible variable (check currentskypoly instead)
got rid of gl_texsort
simplified surface rendering process greatly (R_DrawSurfaces)
surface rendering should now be totally sequential (good for caches)
renamed r_newworldnode to r_leafworldnode (will be removed in next commit)
disabled r_oldclip code (will be removed in next commit)
renamed R_WorldNode to R_BSPWorldNode (will be removed in next commit)
renamed R_NewWorldNode to R_LeafWorldNode (will be removed in next commit)
made copy of R_WorldNode that ignores vis data, called R_NoVisWorldNode
added R_PortalWorldNode, 3-80% speed gain depending on situation, improved culling of non-relevant leafs/surfaces
added r_portalworldnode cvar to test new code (this will become the standard worldnode in next commit)
minor optimization to wateralpha code
minor redesign of R_TextureAnimation and animated texture stuff in texture_t
cleaned up timing issues in water (now synced to cl.time, not realtime) and menu code (now synced to realtime, not host_time)
removed host_time
removed SCR_ModalMessage (this got rid of the 'are you sure?' question on newgame)
changed quit messages
got rid of SCR_BringDownConsole
reorganized 2D screen drawing code (now draws console when loading plaque is displayed, etc)
some cleanup on texture loading
redesigned R_Decal to make use of BSP tree in finding nearest surfaces
renamed and redesigned R_DrawDecals to GL_DrawDecals and no longer uses transpoly
particles are now only rendered if inside a visible leaf
sprites are now only rendered if touching a visible leaf
ambient sounds no longer play after disconnecting
fixed severe delta compressed entity bugs in client
sped up MOVETYPE_NONE a bit
lordhavoc [Fri, 4 May 2001 18:52:30 +0000 (18:52 +0000)]
No more busy-waiting when framerate cap is reached (in both Linux and win versions)
MOVETYPE_WALK on non-clients now links the edict like it should (major bugfix)
rearranged client entity_t structure
redesigned entity update system (same protocol)
added support for split entity updates in the future for rate capping
glow trails and view relative entities should work now (untested)
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
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.