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.
havoc [Sun, 9 Mar 2003 20:33:23 +0000 (20:33 +0000)]
Vic informed me of the AGP settings (0-0.25, 0-0.25, 0.25-0.75) and video memory settings (0-0.25, 0-0.25, 0.75-1) for use with GL_NV_vertex_array_range, they seem to have no effect but the defaults have been updated (to 0.2, 0.2, 0.7) to choose AGP
havoc [Sun, 9 Mar 2003 11:39:08 +0000 (11:39 +0000)]
changed R_Mesh_ system (again), now uses R_Mesh_GetSpace to set up varray_* pointers, then fills in the data, then calls R_Mesh_Draw (this can be done repeatedly, but vertex data should *NOT* be modified after the first call)
havoc [Sun, 9 Mar 2003 11:19:57 +0000 (11:19 +0000)]
Mod_FindNonSolidLocation now takes a radius and can output to a different vector than the input (purpose: the sphere is nudged out of any surfaces in the area, this makes realtime lighting look a lot better as the lights aren't too close to the surface)
havoc [Fri, 7 Mar 2003 09:34:15 +0000 (09:34 +0000)]
menu.c - changed M_DrawSlider to take a value and a min/max range, now prints the current value of the cvar as well
menu.c, menu.h, gl_draw.c - added new color control options menu (the gl_draw.c change is merely adding a "ditherpattern" texture)
menu.c - added "Delay refresh (faster)" to options menu (gl_delayfinish cvar)
menu.c - added "Game Speed" to options menu (slowmo cvar)
vid_wgl.c, vid_glx.c, vid_null.c, vid_shared.c, vid.h, palette.c, palette.h, host.c - gamma system redesigned (VID_SetGamma now takes ramps, VID_GetGamma added, other cruft removed), moved VID_UpdateGamma to vid_shared.c, gamma is now turned off when darkplaces is minimized in X11 (unmapped), and when it's window is not active in Windows as well
vid_wgl.c - trailing whitespace fixed
vid_shared.c - added v_color_enable, v_color_black_[rgb], v_color_grey_[rgb], and v_color_white_[rgb] cvars as another way to adjust color settings
gl_draw.c - added support for v_color_* cvars, removed support for darkening screen (not possible to do in color)
vid_glx.c - got rid of unfinished X11 colormap based gamma code (using XF86 VidMode extension instead)
havoc [Fri, 7 Mar 2003 09:30:21 +0000 (09:30 +0000)]
got rid of AreaNode stuff, now only has AreaGrid (had to add sv_areagrid_outside node)
renamed sv_useareanodes to sv_debugmove (inverted behavior)
SV_CreateAreaGrid now has a minimum grid size (sv_areagrid_mingridsize cvar), this greatly improved performance in helm18
SV_ClipToAreaGrid and SV_TouchAreaGrid no longer process any edicts twice (edict_t now has areagridmarknumber for this purpose)
increased AREA_GRID from 16 to 512
added SV_ClipToNode function to get rid of duplicate code in SV_ClipToAreaGrid
havoc [Fri, 7 Mar 2003 09:26:11 +0000 (09:26 +0000)]
added DrawQ_SuperPic, fixed severe bug in DrawQ_Mesh (was not allocating enough room in drawqueue for the texcoords), DrawQ_Pic and DrawQ_Fill now use DrawQ_SuperPic
havoc [Fri, 7 Mar 2003 09:24:59 +0000 (09:24 +0000)]
view.c, cl_parse.c, cl_main.c, gl_rmain.c - trying to remove all uses of origin, angles, or scale fields of entity_render_t
view.c, gl_rmain.c - viewmodel entities are now processed in view.c instead of gl_rmain.c
view.c now uses matrix and inversematrix for view damage kicks
what this means:
the QC feature viewmodelforclient now works
havoc [Sun, 2 Mar 2003 07:20:28 +0000 (07:20 +0000)]
changed gloss behavior, now darkens light intensity (to 25% of normal) instead of assuming gloss texture is dim, this is consistent with tenebrae behavior, inconsistent with doom3 behavior (sigh...), this makes OgrO's model skins look a lot better
no longer spews 'refusing to create light' warnings when loading map light entities that actually aren't lights at all
havoc [Fri, 28 Feb 2003 11:28:10 +0000 (11:28 +0000)]
lights now have an orientation (this isn't editable yet, and is infact not really supported for rotated lights at the moment, their bbox would need to be rotated)
lights now use bbox culling instead of radius (because they aren't round in 2D texture mode)
fixed LOTS of light culling bugs (particularly with surface selection)
fixed scissor to be more efficient (smaller) when easily done (entirely infront of view) and fixed some bugs
got rid of ShadowSphere code in gl_rmain.c (it was not used)
added back RadiusFromBounds (and optimized it) and added RadiusFromBoundsAndOrigin
removed trailing whitespace in mathlib.c
added BoxesOverlap macro to mathlib.h
fixed a portal-flow bug when a light lies directly inside a portal polygon (now checks both leafs involved, very mild search tolerance for leafs around the light)
added back 3d attenuation texture (true spherical lights make a return, r_shadow_texture3d cvar controls this)
fixed light-bleeding in attenuation textures at the edges (fixed a bug in the biasing during texture generation, now the edge is always black as it should be)
realtime lighting texture generation (attenuation/normalizationcubemap) now has some macros for more easily adjusting texture resolutions
reduced resolution of attenuation and normalization textures
added a bunch more rendering paths for diffuse and specular lighting, to reduce number of passes in a few cases (and allow use of 3D attenuation texture)
havoc [Fri, 28 Feb 2003 11:27:10 +0000 (11:27 +0000)]
some added structures in in preparation for another protocol version bump (to add partial entity updates to avoid kicking people off server when packet buffer fills up in a single frame - yes this means rate capping and such will be possible)