got rid of frags per hour and time connected in scoreboard (both full size and mini) because both depended on scoreboard_t->entertime (which has been removed as it was not accurate)
server no longer responds to any netquake control packets (must use netchan-style commands to connect)
connection process now uses getchallenge-connect approach to prevent join floods (who knows maybe I fixed NAT by doing this too, somehow)
improved some of the command packet handling
added a tip to runaway loop error (suggesting use of the profile command)
made all possible exit paths of the execution update profile counts properly before exiting
fixed a lot of problems with filling out client edicts properly (or rather, not filling them out properly) which mostly appeared when doing changelevel or restart
fixed nameless player joins/exits (finally!)
code cleanups
other little things stomped
took another stab at fixing bogus entities being linked into areagrid (presumably caused by SV_IncreaseEdicts), hopefully fixing it this time (as if that wasn't the hope with all the previous attempts)
some enhancements to timeout handling inspired by ProQuake fixes - net_connecttimeout cvar (a short timeout until first packet in connection), net_messagerejointimeout cvar (only kicks off old client matching peeraddress if the client has reached this message timeout)
fixed model shadows going through walls (by making everything use a constant project distance - clearly there are other solutions to the problem of a model using too low a project distance, but this works...)
some code shuffling (mostly to match up with a previous version I was comparing against)
sounds now follow their owner (so riding a lift doesn't leave the sound at the start position, for example)
static sounds now automatically loop even if they have no cue list
added support for GAME_GOODVSBAD2
moved Hostname option from Player Setup to server setup menu, and renamed it "Server name"
added snd_staticvolume cvar to control volume of static sounds
redesigned how the renderer handles much of it's state (R_Mesh_State turned into R_Mesh_State_Textures - no longer handles blendfunc and depthmask and depthtest and vertex pointers and so on)
batching is gone
VAR support is gone (but may make a return someday)
dynamic shadow volumes are now more optimized (removal of unused verts)
added a glossary of terminology to the start of r_shadow.c
added gl_mesh_testarrayelement and gl_mesh_testmanualfeeding cvars for testing/debugging purposes in the backend (incase vertex array state is a mess)
added gl_paranoid cvar (enables CHECKGLERROR and verifies geometry before rendering it)
added gl_printcheckerror cvar (prints location of every CHECKGLERROR statement as it executes, for tracking code flow)
havoc [Sun, 22 Jun 2003 10:07:16 +0000 (10:07 +0000)]
Forgot to include lhnet in the previous commit and tried to abort the commit but apparently it was nearly done (which messed up netconn.[ch] such that I could not add or delete netconn.[ch], so I deleted that from cvs and added it again)
havoc [Sun, 22 Jun 2003 09:58:55 +0000 (09:58 +0000)]
This is the network rewrite I've been working on for over a week; multiplayer should work through NAT routers now.
A few other commits (a new clientcolors extension for example) have snuck their way into this commit because they were waiting while the cvs was down.
havoc [Wed, 28 May 2003 13:57:47 +0000 (13:57 +0000)]
got rid of my attempts to delay sending the ServerInfo packet until the first message from the client, because the ServerInfo packet is already handled by the quake reliable message system and thus will be re-sent multiple times... back to the drawing board on my attempts to fix quake through NAT routers
havoc [Mon, 26 May 2003 18:20:52 +0000 (18:20 +0000)]
removed directional shading on explosions because it was a nuisance to maintain (and strangely they seem to look better now)
explosion rendering now supports gl_mesh_copyarrays 0
havoc [Mon, 26 May 2003 16:35:14 +0000 (16:35 +0000)]
added R_ScrollTexCoord2f (copies while texture coordinates with an offset)
added multitexture path to skysphere rendering (10% speed gain) and modified combine setup in gl_backend to support GL_INTERPOLATE_ARB behaving like GL_DECAL
added support for gl_mesh_copyarrays 0 mode in skysphere rendering (1% speed gain)
havoc [Mon, 26 May 2003 13:25:59 +0000 (13:25 +0000)]
fixed realtime lighting bugs with gl_mesh_batching 1 (... by not using batching while rendering realtime lighting - I was unable to figure out what was causing the problem)
some cleanups to realtime lighting code (mostly fixing some bugs with incorrect counting of meshes/triangles (for r_speeds reports), and optimized out unnecessary vertex copying in the final lighting application pass)
havoc [Sun, 25 May 2003 22:46:31 +0000 (22:46 +0000)]
some cleanups to hostcache (got rid of driver/address stuff and expanded the strings, also increased number of cache slots)
connecting to a server is now much more direct (does not use hostcache)
now ignores the address string received in server info packets because it's often bogus in dp (sorry... but not really avoidable)
slist reports now include the address of the server (useful!!) and are much wider (79 characters) to give more room for info
the NOROUTINGFIX option has been kind of merged away, whether the server uses it or not is still optional (search for routing fix)
havoc [Sun, 25 May 2003 15:48:00 +0000 (15:48 +0000)]
darkplaces-dedicated.exe now builds
sys_linux.c (needs new name badly!) modified to support windows for purposes of darkplaces-dedicated.exe
Sys_Printf probably no longer works properly with darkplaces.exe (but we'll see)
darkplaces.exe should now be a proper windows app again (how I got --mwindows in there I don't know), so -dedicated may work
havoc [Sun, 25 May 2003 11:44:31 +0000 (11:44 +0000)]
fixed a severe bug with pointer_color state tracking (no longer checks .colorarray, so you don't have to do the GL_Color/GL_UseColorArray call before R_Mesh_State anymore), this fixes explosion coloring when using pointer_color for other stuff rendered immediately before it
fixed a crash when entire sequentialchain is emptied while trying to get space for a new cache item (this happened! I can't guess why though)
havoc [Sat, 24 May 2003 14:53:30 +0000 (14:53 +0000)]
alias model (q1/q2/q3) rendering now supports gl_mesh_copyarrays 0 (even caches lighting!) for a speed boost (enough to compensate for the current loss on world rendering), note that only normal rendering uses this so far (more rendering functions to upgrade)
havoc [Sat, 24 May 2003 14:47:32 +0000 (14:47 +0000)]
disabled various testing code in R_Mesh_CacheArray
fixed a bug with pointer_color if gl_mesh_floatcolors is false (it was incorrectly comparing p to varray_buf_color4f, it should have compared it to NULL)
havoc [Fri, 23 May 2003 18:38:34 +0000 (18:38 +0000)]
aliasvertex_t no longer exists, models are now stored as arrays of vertex3f, svector3f, tvector3f, normal3f
cleaned up loaders somewhat (they're still nasty as always)
now validates elements in mdl model files
havoc [Fri, 23 May 2003 18:36:28 +0000 (18:36 +0000)]
added R_Mesh_CacheArray (not yet used by anything, but has been tested with some code in gl_rsurf.c), a generic dynamic data caching system intended for vertex arrays
havoc [Fri, 23 May 2003 07:43:26 +0000 (07:43 +0000)]
added gl_mesh_batching (default on) which merges several meshes in a row to reduce overhead of array locking and drawing
added MESH_VAR and MESH_BATCH defines to allow relevant code to be disabled (MESH_VAR is currently disabled because it's somewhat broken last I checked)
added custom array pointer support in R_Mesh_State (MainState and TextureState), this is experimental but works fine
added gl_mesh_copyarrays (default off) which tells renderer code that it should use custom array pointer support instead of copying (currently testable on surface rendering - not a good use, too many Pointer calls for very little geometry)
some other cleanups