knghtbrd [Wed, 31 Dec 2003 18:03:49 +0000 (18:03 +0000)]
More MacOS X stuff. The correct test for MacOS X in preprocessor seems to
be defined(__APPLE__) && defined(__MACH__). MacOS X has strl functions,
so don't bother compiling them. Also, the correct name and location of
libGL for X11 on a Mac is /usr/X11R6/lib/libGL.1.dylib. Compiles with one
warning caused by use of dlfcn.h (an emulation of the dynamic ELF object
loader which complains that you really should be using the Mach-O dylib
API instead.)
Compiled with gcc 3.1 (use gcc_select) on MacOS X 10.3 with X11 and the
Xcode Tools installed. Makefile changes were: null sound/cd, removal of
-lxf86dga from the GLX build, and replacing -ggdb in both places with
plain old -g (someone at Apple needs a LARTing for this...) SHOULD work
with 10.2 provided that you have developer tools, X11 with devel stuff,
and the dlfcn emulation package from fink. I can't promise meaningful
support for anything but Panther, sorry.
molivier [Tue, 30 Dec 2003 13:00:48 +0000 (13:00 +0000)]
Factorized the file searching algorithm in the FS code. Sorted packaged files list at load time to allow the use of a binary search. Overall, I think you can expect a file search time divided by a factor between 1.5 to 3 depending on your mod and packages layout. Time lost in the file search code on my P233MMX: vanilla Quake (4121 searches while loading the 1st demo): 2.7 sec -> 1.6 sec, Transfusion mod (9752 searches while loading BB1): 18.0 sec -> 7.6 sec
havoc [Sun, 28 Dec 2003 01:05:40 +0000 (01:05 +0000)]
fixed fiends jumping through player bug, huge thanks to Tomaz for days of help tracking down this longstanding bug! (it supported rotated collisions with bbox entities - not good!)
refined the COLLISIONPARANOID checks (now centralized in SV_Move)
molivier [Sat, 27 Dec 2003 21:15:16 +0000 (21:15 +0000)]
Simple Ogg Vorbis support (no streaming: the file is fully decompressed in memory, you just save disk space). DP will try to load the VorbisFile library at startup and will enable Ogg Vorbis support if it succeeds, so you need the Ogg Vorbis official DLLs. Win32 binaries works, but the Linux binaries are still untested for the moment - they compile successfully though.
havoc [Wed, 24 Dec 2003 21:07:41 +0000 (21:07 +0000)]
added a bunch more COLLISIONPARANOID code trying to track down a physics bug with fiends jumping through players, this defaults off (see end of collision.h)
black [Tue, 23 Dec 2003 12:12:03 +0000 (12:12 +0000)]
Fast commit before Im off for 10 days. Please correct/undo my commit if it breaks something, I havent had time to test everything perfectly but Im hoping that everything works. Merry Christmas everybody !
havoc [Tue, 16 Dec 2003 15:26:28 +0000 (15:26 +0000)]
rewrote FS_Search, hopefully it will work better now, and it now matches directories inside paks (in other words: listing sound/* will tell you about sound/plats and sound/whatever.wav, this is mainly to be consistent with filesystem directories), it is also no longer two-pass (although simple the two-pass approach was dangerous if the two listings came out different), and it now sorts the listing
rewrote much of matchpattern, now handles path separators specially, and uses a much better approach to handling the * wildcard (no longer looks for the following character, simply tries multiple matchpattern calls until it hits a path separator or gets a match)
molivier [Mon, 15 Dec 2003 07:48:43 +0000 (07:48 +0000)]
Audio CD support for NetBSD; it also compiles on OpenBSD, but I can't test it for now. Plus some diff noise reduction and a minor bug fix in cd_linux.c (the case when the user changes track without using the "cd" command should now be handled correctly)
havoc [Tue, 9 Dec 2003 13:17:46 +0000 (13:17 +0000)]
fixed the wall slide stuttering bug (the one that has been annoying me for months), it turned out to be a float precision issue with cliphull selection, and this also fixed the movetogoal bug (monsters not noticing they hit a wall) and also the scrags-flying-through-wall/ceilings bug
black [Sun, 7 Dec 2003 18:55:56 +0000 (18:55 +0000)]
Added qc fs search functions, so the qcs can easily verify directories contents, etc. -> useful for dynamic content loading.
Changed some 'bool's into read-only cvars to make them accessible for the menu qc.
havoc [Sun, 7 Dec 2003 11:40:03 +0000 (11:40 +0000)]
todo item done: now ignores modelflags on view entities and tag attached entities, so there aren't spinning view models and such anymore in Zerstorer and Malice
havoc [Sun, 7 Dec 2003 10:57:29 +0000 (10:57 +0000)]
todo item done: added cl_particles_blood_bloodhack cvar so now id1 blood particles use the blood effect, and added this to effects options menu as Force New Blood Effect
havoc [Sun, 7 Dec 2003 08:21:54 +0000 (08:21 +0000)]
fixed behavior of vid_activewindow and vid_allowhwgamma in x11 event code, now behaves more like the windows version (gamma is now based on whether the window is the focus, not related to mouse entering/leaving anymore)
havoc [Sun, 7 Dec 2003 08:01:01 +0000 (08:01 +0000)]
added CSHIFT_VCSHIFT blend so v_cshift now affects underwater blending (as well as other liquids) for more consistent behavior, and disabled powerup blends in transfusion (at their request)
havoc [Thu, 4 Dec 2003 11:13:57 +0000 (11:13 +0000)]
eradicated SZ_Print, thanks to Fuh for pointing out the sheer evil of this function found in nq, qw and q2... SZ_Print is a strcat onto a sizebuf - note that it could OVERWRITE THE SIZEBUF STRUCT if it is empty (but it was never empty where quake used it).
havoc [Thu, 4 Dec 2003 09:47:38 +0000 (09:47 +0000)]
console parsing now behaves like qwcl, thanks to Fuh for pointing out the problems with the winquake COM_ParseToken (it treated : as a single character keyword, thus breaking connect commands involving a port, for example), so I added COM_ParseTokenConsole for the console parsing
havoc [Wed, 3 Dec 2003 02:00:15 +0000 (02:00 +0000)]
fix a severe bug with 16bit modes (VID_InitMode in vid_glx.c was taking a stencil parameter which does not exist, and thus stencil was in general always on even in 16bit)
havoc [Mon, 1 Dec 2003 00:17:32 +0000 (00:17 +0000)]
added a note about the Creative Technology Ltd patent (US Patent #6384822) on the Carmack's Reverse approach to stencil shadow volume rendering, and changed the rendering algorithm to further distance it from Creative's patent.
havoc [Sun, 30 Nov 2003 06:33:33 +0000 (06:33 +0000)]
now uses q3bsp surfaceflags when possible instead of shaders (but the trans flag still exists only in shader surfaceparms so they are still read for that)
havoc [Sun, 30 Nov 2003 01:14:47 +0000 (01:14 +0000)]
now parses q3 shaders for surfaceparms (this mainly fixes up the many falsely transparent walls in shader tricks, and also detects nodraw shaders properly)
havoc [Sat, 29 Nov 2003 05:32:06 +0000 (05:32 +0000)]
added dir and ls console commands (yes they are different), these search paks (although not very good at pattern matching), and FS_Search and FS_FreeSearch functions
havoc [Wed, 19 Nov 2003 10:07:39 +0000 (10:07 +0000)]
fixed oriented sprite problems (no longer uses entity angles for them) by rewriting the whole R_SpriteSetup function, it is now VERY optimized and more readable
molivier [Wed, 19 Nov 2003 07:50:53 +0000 (07:50 +0000)]
ClearAllStates cleared the key states twice in vid_wgl.c, and vid_glx.c didn't do that when he closes its window (which caused missed key strokes with vid_restart and the video options menu)
havoc [Fri, 14 Nov 2003 14:02:56 +0000 (14:02 +0000)]
r_refdef.vieworg and r_refdef.viewangles replaced by r_refdef.viewentitymatrix
fixed intermission camera bug (now the right place and angles by copying the entity matrix directly to r_refdef)
fixed intermission listener bug (now the right place by copying the entity matrix to listener variables)
fixed envmap command saving (now reads the correct part of the screen according to GL's bottom to top coordinates, so this works again)
fixed envmap command rendering (it was not hiding view and exterior models)
fixed timerefresh command rendering (it was not properly setting up the view)
merged chase.c into view.c because it really didn't have any good reasons to be separate
renamed listener_forward to listener_viewforward, listener_up to listener_viewup, listener_origin to listener_vieworigin, and converted listener_right to listener_viewleft
renamed vpn to r_viewforward, vup to r_viewup, vright to r_viewright (deprecated, trying to use just r_viewleft but haven't finished converting things over to it yet), r_origin to r_vieworigin