BoxOnPlaneSideFunc code - gone, replaced by BoxOnPlaneSide
BOX_ON_PLANE_SIDE macro - gone, no replacement necessary (use BoxOnPlaneSide)
R_CullBox and R_CulledBox macros have been replaced by optimized functions
this gets a minor speed gain overall
optimizing R_DrawSurfaces and WorldNode functions
visframe and pvsframe are now arrays rather than part of the surface struct, resulting in less cache misses
surfaces are now texture sorted rather than shader sorted, OpaqueWall renderers have been reorganized to minimize state checks, which offers a minor speedup
r_vertexsurfacesthreshold is gone, no longer supported...
expanded console buffer from 16k to 128k, and changed scroll amount to be dependent on visible console height (scrolls half the visible area instead of just 2 lines)
svs.clients is now allocated dynamically according to svs.maxclients, and there is now a function for updating svs.maxclients called SV_SetMaxClients
this cuts the memory usage in singleplayer by 17mb
transform matrix is now separate from R_Mesh_State, a new function called R_Mesh_Matrix takes up the task of changing transforms, and is used a lot less frequently in the engine than R_Mesh_State, this gets a nice speed gain in cavetest2
vertex arrays renamed to varray_ and exposed to rest of engine
mesh_maxtris and mesh_maxverts exposed (really only intended for R_Mesh_ResizeCheck #define)
R_Mesh_GetBuffer is gone, R_Mesh_State takes it's place for most of it's functionality
R_Mesh_ResizeCheck (a #define) will expand arrays on the fly if a mesh is too big (note: be sure to use this if you have a mesh that may be more than 1024 triangles, 3072 verts)
R_Mesh_Draw takes the place of R_Mesh_Render and takes two parameters (number of verts and number of triangles)
fixed bug that caused sky to appear through models when sky was onscreen (R_DrawWorld must be called at a specific point in rendering, had forgotten that)
added r_surfaceworldnode and r_cullsurface cvars (it is recommended that these both be on, or both be off)
shuffled around WorldNode, DrawSurfaces, PrepareSurfaces, SurfMarkLights, and other related code a great deal, it is now somewhat cleaner
you can now (try to) play in maps you don't have, and models you don't have are shown as little multicolored things
added CL_BoundingBoxForEntity to clean up the various mins/maxs calculations in the engine
no longer spews clc_nops to server past the first signon stage
the clc_nops sent to the server are now sent using unreliable packets (because queuing them up as reliable made no sense and spewed warnings when developer was on)
failed client to server reliable messages now print a hexdump of the message contents when developer is on
there is now Mod_PointContents (this is different than Mod_PointInLeaf because a lot of calls to Mod_PointInLeaf were just wanting the contents, and it's not convenient to check for NULL (no world model) in the caller
r_speeds no longer reports a "walls" count, as it was often nearly identical to faces and simplified the code to remove it
r_speeds faces count may count bmodels twice if some contain sky polygons (this is less technically correct, but more performance correct - it is processing the faces twice)
DrawQ_Pic won't crash if given a NULL picname now (won't draw it either)
r_cullsurfaces cvar added
r_surfacesworldnode cvar added
surface backface culling moved to PrepareSurfaces
simplified a lot of worldnode related stuff
surf->pvsframe and node->pvsframe and leaf->pvsframe simplified worldnode code, and only needs updating when leaf changes (this is partly how quake did things)
leaf->visframe no longer exists, this meant changing/cleaning a lot of code
leaf->dlightbits and leaf->dlightframe no longer exist, this meant doing TraceLine's to see if dlights should shine on models and such (but only if within radius of them)
console is forced if there's nothing else to look at, this is tracked separately from whether the user wants a console (key_consoleactive is now bits, but most code should just check if it is non-zero)
RecursiveHullCheckPoint has been enabled again, only invoked if trace length is exactly 0
SZ_GetSpace overflow warnings/errors have newlines at the end now
R_VisibleCullBox is gone (it relied on leaf->visframe), uses R_CullBox instead
move around some R_NewMap code into more suitable modules
rearranged R_RenderView code a lot, to group things more appropriately
dlights work correctly on bmodels now
PR_Crash function added, to properly shutdown progs interpreter (reset it's stack) and print out a crash report
PR_RunError went away, it has been replaced by Host_Error (which now calls PR_Crash incase it happend during progs execution)
R_ResetQuakeSky and R_ResetSkyBox added, to clean up some sky related hacks in model loading
various QC builtins added for getting info on surfaces from the engine
you can now open/close the console independently of menu and messagemode
console catchs input before anything else
console appears ontop of anything else
console is no longer forced fullscreen when there is nothing else to show
shuffled around the 2D drawing calls in CL_UpdateScreen
now only console pauses singleplayer, instead of console/menu/messagemode
simplified console singleplayer pausing code a bit
mouse grabbing is now only forced off when console is down, not when menu or messagemode is shown
havoc [Sat, 31 Aug 2002 09:17:29 +0000 (09:17 +0000)]
improved pr_fields command to list how many entities are using each entity field and give more information on how many fields are needed and how much memory they need
havoc [Thu, 29 Aug 2002 14:14:34 +0000 (14:14 +0000)]
fixed viewmodel (it wasn't drawing because it's matrix was empty), fixed a bug with scaling in Matrix4x4_CreateFromQuakeEntity (and Matrix3x4 to match), added some extra code to Matrix4x4_Invert_Simple (and Matrix3x4) to further clarify the scaling inversion
havoc [Wed, 28 Aug 2002 13:35:31 +0000 (13:35 +0000)]
fix various fog bugs, and also fix missing colormap layer bugs (specifically if the base/merged texture is missing, as it is on a lava ball for instance)
havoc [Wed, 28 Aug 2002 11:56:00 +0000 (11:56 +0000)]
most of the framework for hardware accelerated transforms is back, just the actual gl calls need to be put in, but that will be a later commit
gl_backend internal mesh structure now has a matrix stored in it
entity_render_t now has a matrix and a inverse matrix
many additions of const to various functions, this required restructuring some code
transparent mesh sorting is gone, this also means subsorting of triangles by depth is gone (meshqueue should be used for transparent mesh sorting, I have not yet written a new triangle sorter)
rewrote RSurf_ shader functions *yet again*, they are now more compact and share code (by way of using lots of function calls)
lots of changes/bugfixes/additions to matrixlib.c and .h, including an actual working Matrix4x4_Invert_Simple function
added gl_flashblend (brightens and enlarges coronas, turns off all actual lighting)
added r_coronas (can turn off coronas)
havoc [Tue, 27 Aug 2002 11:59:28 +0000 (11:59 +0000)]
liquid now goes through meshqueue sorting
fixed a bunch of minor sorting consistency bugs in the meshqueue code
changed behavior of R_MeshQueue_EndScene and exposed R_MeshQueue_Render and R_MeshQueue_RenderTransparent
cleaned up liquid rendering code a bit
havoc [Tue, 27 Aug 2002 09:42:59 +0000 (09:42 +0000)]
engine mostly converted to use R_MeshQueue functions instead of true transparent meshs, this meant getting rid of currentrenderentity
the rest of the conversion to R_MeshQueue will be in a future commit, just wanted to get this in now
havoc [Sat, 24 Aug 2002 07:14:15 +0000 (07:14 +0000)]
detail texturing added (although with just one generated texture applied to everything)
detail texturing makes use of up to 3 texture units if you have combine
detail texturing added to effects options menu (r_detailtextures cvar)
surfvertex_t now has another set of texcoords, for detail texturing
Mod_BrushStartup and Mod_BrushShutdown functions added to alloc/free the detail texture
r_multitexture cvar renamed to r_textureunits, so you can limit number of texture units enabled for testing, rather than just as a yes/no kind of option
gl_combine is forced to 0 if r_textureunits is less than 2 (this is purely for consistency, not of any importance)
split up the wall rendering into two kinds - vertex lit with optional transparency, and opaque lightmapped with no support for transparency
R_Mesh_Draw_GetBuffer now takes a wantoverbrights parameter, if false it will not use the 4x overbright (even if combine is enabled), this is useful to improve the color precision of anything which does not need overbright
fixed crosshair brightness (it was unintentionally adjusting the alpha using m.colorscale just like the RGB portion of the color)
sprites only use overbright if they are lit (normal unlit sprites are rendered without overbright)
havoc [Fri, 23 Aug 2002 06:12:01 +0000 (06:12 +0000)]
removed check for registered.integer in GAME_NORMAL naming (this means it just says DarkPlaces-Quake whether the game is registered or not)
removed support for games FiendArena (because I have not heard from the author in a long time) and Zymotic (because the game was canceled long ago)
molivier [Fri, 23 Aug 2002 06:04:40 +0000 (06:04 +0000)]
Finally got rid of the last TRANSFUSION define (the key binding menu is determined at runtime now). Also a few maps won't make it for the 1.0 release, so they've been removed from the map list.
havoc [Wed, 21 Aug 2002 09:43:39 +0000 (09:43 +0000)]
this should fix the program name in com_argv[0], so detection of which game to run based on executable name should work now, thanks to Elric for reporting the bug
havoc [Wed, 21 Aug 2002 00:10:30 +0000 (00:10 +0000)]
no more warping meshs of any kind
sky is always of the masked variety if enabled at all
water does not move
R_Mesh_Draw is no longer used by gl_rsurf at all
havoc [Sat, 17 Aug 2002 23:19:47 +0000 (23:19 +0000)]
removed fxmesa support (3dfx svgalib) because no one used it to my knowledge, and it probably did not even work due to poor maintenance
and cleaned up makefile a bit