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
havoc [Thu, 27 Mar 2003 12:25:32 +0000 (12:25 +0000)]
Fix for win32 dedicated servers (oh it still doesn't compile, other problems remain with sys_win.c, but this one thing has been annoying me long enough)
havoc [Thu, 27 Mar 2003 08:58:07 +0000 (08:58 +0000)]
Elric added BuffBigLong, BuffBigShort, BuffLittleLong, and BuffLittleShort functions intended for reading from misaligned locations in file memory buffers (these read as bytes rather than entire numbers, so memory misalignments are not a problem on Sparc and certain other CPUs)
havoc [Fri, 21 Mar 2003 21:52:04 +0000 (21:52 +0000)]
Thanks to IceDagger for pointing out this important optimization to multipass specular rendering - removes one pass (dropping from 6 to 5 passes on GF2, 5 to 4 passes on GF3/Radeon) by squaring specular even on the first pass
havoc [Fri, 21 Mar 2003 21:47:57 +0000 (21:47 +0000)]
This is a patch from Elric greatly cleaning up the filesystem portions of the engine, and partially prepares the engine for .pk3 support (yay), this also removes support for gzipped files (but that had been disabled for months anyway)
havoc [Sat, 15 Mar 2003 04:54:47 +0000 (04:54 +0000)]
varray_* rewritten to remove padding (varray_vertex3f, varray_texcoord2f, varray_texcoord3f, varray_color4f now exist), this required changes to a huge amount of code (but netted a 30% speed gain typically)
fixed some various bugs
added voodoo1/2 support in realtime lighting engine (well, except for the fact it still requires stencil, which voodoo1/2 don't have, this will be addressed later when world lights and dlights are independently controlled)
changed lightning beams a bit (they're now white) and due to a request I added support for r_lightningbeam_qmbtexture (loads textures/particles/lightning.pcx and knows approximately how to use it, I recommend changing r_lightningbeam_repeatdistance to make it look right)
molivier [Thu, 13 Mar 2003 16:10:51 +0000 (16:10 +0000)]
Makefiles cleanups: r_explosion.o was declared twice in all Makefiles; removed some commented-out commands; diff reduction between makefile and makefile.mingwcross; forgot to call builddate previously; strip was even called on non-release binaries.