lordhavoc [Mon, 29 Oct 2001 07:23:10 +0000 (07:23 +0000)]
got rid of leafnums array in edict structure for pvs checking, pvs is now checked based on predicted locations of entities, and some reorganizational optimizations of WriteEntitiestoClient
changed an SV_Move call to use the proper MOVE_ define (no behavior change, only cleanup)
lordhavoc [Mon, 29 Oct 2001 07:16:35 +0000 (07:16 +0000)]
moved Sys_Printf and related code/data to sys_shared.c (new), removed all uses of isDedicated (replaced with cls.state == ca_dedicated), timestamps should work on all targets now, and made some minor whitespace changes
lordhavoc [Mon, 29 Oct 2001 06:43:57 +0000 (06:43 +0000)]
fixed input reading code bug in dedicated servers (clients are not kicked off immediately on connecting now... clearly an important fix)
minor whitespace changes
and changed a SV_Move call to use MOVE_NOMONSTERS instead of 1, no effect on code behavior
lordhavoc [Mon, 29 Oct 2001 06:37:10 +0000 (06:37 +0000)]
changed SV_Move calls to always use the correct MOVE_ defines in the type parameter (true or false were often passed, due to a legacy of it being simply 'nomonsters', apparently during quake's development), no code change, just cleanup
lordhavoc [Mon, 29 Oct 2001 06:30:27 +0000 (06:30 +0000)]
moved ixtable definition and initialization code to mathlib (and added Mathlib_Init call to common.c), fixes bugs in dedicated server (previously ixtable was being initialized in the renderer)
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