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
havoc [Fri, 23 May 2003 06:28:05 +0000 (06:28 +0000)]
cleaned up/simplified Sys_Error, now should never get in a recursive crash loop, but also lost the timeout on dedicated server errors as a result (if engine crashes, the server will leave up a dialog eternally until someone closes it)
havoc [Wed, 21 May 2003 11:24:20 +0000 (11:24 +0000)]
added support for q2 .wal images (not yet tested but suspected as working)
cleaned up multiple format loader hub, now parses a list of formats things to try
cleaned up invalid image size detection (now all format loaders check for >4096 and <=0 in each axis)
havoc [Fri, 16 May 2003 11:10:32 +0000 (11:10 +0000)]
replaced a loop that checked for alpha pixels with a call to Image_HasAlpha
fixed a memory leak on s->maskpixels (due to memory pools this leak was probably not too bad)
new entity protocol has been canceled due to a fatal design flaw only detected today (insufficient data on history of entities)
added explanation of old entity protocol and how it will be revised to use partial entity updates (without breaking compatibility with old clients!)
reverted dynamic allocation of sv.edicts because there are FAR too many broken pointer cases, however shrinking the edict_t to just a couple pointers and dynamically allocating the data they point to, keeps memory usage way down
sv.edicts (and related things) are now dynamically reallocated as more edicts are used
no edict_t *'s exist in any persistent structures anymore, using edict numbers in all such cases (as it turns out the only such structs were client_t in server.h and link_t in progs.h)
edicts are unlinked before reallocation and relinked after reallocation to keep the link_t pointers valid
pk3 is now case insensitive to match quake3 behavior (however pak is still case sensitive)
FS_FileExtension has been basically rewritten, it was taking the first . in the filename (which might even be part of a directory name)
added TEXF_CLAMP flag on model and sprite textures (software quake did not support out of bounds texcoords, so repeat is clearly unnecessary and even undesirable)
thanks to "backslash" for submitting a patch to support Intellimouse Explorer's two extra buttons (side buttons), I expanded the patch to support up to 10 mouse buttons (plus mwheelup/mwheeldown) in both GLX and WGL ports.
Fixed bug in record command (it was running a map command before getting the demo name, which gets replaced by the map command parameter, causing the demo to always be named the same as the map)
split r_shadow_realtime into r_shadow_realtime_world (which requires stencil) and r_shadow_realtime_dlight (which works without stencil)
one bug remains with scissoring dlights without stencil, I'll try to figure out this problem soon
Added support for JPEG screenshots. You can toggle that with the cvar "scr_screenshot_jpeg" or the option menu. Note that you'll need the libjpeg library DLL.
fix for server dying when someone times out
some other cleanups (some Sys_Printf calls turned into Con_Printf, some comments added about DropClient calls)
cleaned up pr_builtins array (now uses NULL instead of PF_fixme) and now reports builtin number if an unknown builtin is called
fixed name of PF_setcolor (was setcolors)
havoc [Mon, 31 Mar 2003 21:46:06 +0000 (21:46 +0000)]
added some commented out code to Image_HeightmapToNormalmap explaining how to do heightmap to normalmap conversion a little bit differently (very insignificant difference, purely code for those who care)
havoc [Mon, 31 Mar 2003 21:43:50 +0000 (21:43 +0000)]
QSG_FILE removed because some mods use the old builtin numbers and think that QSG_FILE would provide them (FRIK_FILE remains, which uses the new numbers already)
havoc [Sun, 30 Mar 2003 19:19:06 +0000 (19:19 +0000)]
dlights now cast shadows in realtime lighting mode again (actually they already did, but it wasn't working for world, because world didn't have the shadow flag set)
havoc [Fri, 28 Mar 2003 15:47:33 +0000 (15:47 +0000)]
UDP_StringToAddr did not work with less than full x.x.x.x:x specifications, now it supports all the stuff PartialIPAddress supported (filling in most significant components with myAddr, etc)
UDP_Read and UDP_Write now log entire packets to console if developer_networking is on
havoc [Fri, 28 Mar 2003 13:27:15 +0000 (13:27 +0000)]
Thanks to faded (of the tenebrae team) for provoking me to recite a lengthy explanation of NAT nightmares, and realize this very simple fix for NQ server support of clients behind NAT routers (send first message from the player socket instead of the accept socket)
havoc [Fri, 28 Mar 2003 13:24:11 +0000 (13:24 +0000)]
changed behavior of SV_DropClient a bit (now calls ClientDisconnect QC function even if crash is true, as it's the client being harshly dropped, not the server dying), and made the final svc_disconnect an unreliable message
havoc [Fri, 28 Mar 2003 13:22:06 +0000 (13:22 +0000)]
refactored NET_SendToAll, it is debatable whether it is more readable or not, but it works the same, and is shorter, and I think it is slightly more understandable than the mess it used to be
havoc [Fri, 28 Mar 2003 10:31:28 +0000 (10:31 +0000)]
net_inetslist (and the corresponding menu as well) now work without being an active server (dfunc.controlSock is now used for all transactions involved, and since there is always one of those...)
havoc [Fri, 28 Mar 2003 10:29:42 +0000 (10:29 +0000)]
MSG_ReadFloat now checks if the message has enough bytes for a float before trying to decode it (why id forgot this I don't know)
added MSG_ReadBigShort, MSG_ReadBigLong, MSG_ReadBigFloat, MSG_ReadBytes
renamed MSG_ReadShort to MSG_ReadLittleShort, MSG_ReadLong to MSG_ReadLittleLong, and MSG_ReadFloat to MSG_ReadLittleFloat
added #defines for MSG_ReadShort, MSG_ReadLong, and MSG_ReadFloat to use their Little versions
optimized/cleaned up MSG_Read functions (some are now significantly shorter)
havoc [Fri, 28 Mar 2003 08:37:13 +0000 (08:37 +0000)]
net_wins.c is gone, winsock support merged into net_udp.c
numerous other cleanups/changes also done to net_udp.c (to try to simplify it, hopefully work better, that kind of stuff)
support for partial IP addresses has been removed (that is you say you can't simply type 'connect 1.123' and have it expand to xxx.xxx.1.123 where xxx.xxx came from your own IP address, however hostnames still work fine)
also the automatic changing of the hostname cvar according to internet hostname has been removed, so servers will be called "UNNAMED" if they don't set it, rather than using their internet hostname