From DONOTREPLY at icculus.org  Tue Aug  1 07:41:49 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 1 Aug 2006 07:41:49 -0400
Subject: r827 - trunk/code/win32
Message-ID: <20060801114149.1949.qmail@icculus.org>
Author: tma
Date: 2006-08-01 07:41:49 -0400 (Tue, 01 Aug 2006)
New Revision: 827
Modified:
   trunk/code/win32/win_local.h
   trunk/code/win32/win_shared.c
Log:
* Windows home directory support (tjw)
Modified: trunk/code/win32/win_local.h
===================================================================
--- trunk/code/win32/win_local.h	2006-07-31 19:05:14 UTC (rev 826)
+++ trunk/code/win32/win_local.h	2006-08-01 11:41:49 UTC (rev 827)
@@ -37,6 +37,7 @@
 #include 
 #include 
 #include 
+#include 
 
 void	IN_MouseEvent (int mstate);
 
Modified: trunk/code/win32/win_shared.c
===================================================================
--- trunk/code/win32/win_shared.c	2006-07-31 19:05:14 UTC (rev 826)
+++ trunk/code/win32/win_shared.c	2006-08-01 11:41:49 UTC (rev 827)
@@ -285,7 +285,26 @@
 }
 
 char	*Sys_DefaultHomePath(void) {
-	return NULL;
+	TCHAR szPath[MAX_PATH];
+	static char path[MAX_OSPATH];
+
+	if( !SUCCEEDED( SHGetFolderPath( NULL, CSIDL_LOCAL_APPDATA,
+		NULL, 0, szPath ) ) )
+	{
+
+		return NULL;
+	}
+	Q_strncpyz( path, szPath, sizeof(path) );
+	Q_strcat( path, sizeof(path), "\\Quake3" );
+	if( CreateDirectory( path, NULL ) )
+	{
+		if( GetLastError() != ERROR_ALREADY_EXISTS )
+		{
+			Com_Printf("Unable to create directory \"%s\"\n", path);
+			return NULL;
+		}
+	}
+	return path;
 }
 
 char *Sys_DefaultInstallPath(void)
From DONOTREPLY at icculus.org  Tue Aug  1 12:51:14 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 1 Aug 2006 12:51:14 -0400
Subject: r828 - trunk/code/qcommon
Message-ID: <20060801165114.5337.qmail@icculus.org>
Author: tjw
Date: 2006-08-01 12:51:13 -0400 (Tue, 01 Aug 2006)
New Revision: 828
Modified:
   trunk/code/qcommon/cvar.c
Log:
bug 2810 once a latched cvar was changed it could not be reset to its original value
Modified: trunk/code/qcommon/cvar.c
===================================================================
--- trunk/code/qcommon/cvar.c	2006-08-01 11:41:49 UTC (rev 827)
+++ trunk/code/qcommon/cvar.c	2006-08-01 16:51:13 UTC (rev 828)
@@ -331,7 +331,11 @@
 		value = var->resetString;
 	}
 
-	if (!strcmp(value,var->string)) {
+	if((var->flags & CVAR_LATCH) && var->latchedString) {
+		if(!strcmp(value,var->latchedString))
+			return var;
+	}
+	else if (!strcmp(value,var->string)) {
 		return var;
 	}
 	// note what types of cvars have been modified (userinfo, archive, serverinfo, systeminfo)
From DONOTREPLY at icculus.org  Tue Aug  1 13:36:48 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 1 Aug 2006 13:36:48 -0400
Subject: r829 - in trunk: . code/win32
Message-ID: <20060801173648.21016.qmail@icculus.org>
Author: tjw
Date: 2006-08-01 13:36:47 -0400 (Tue, 01 Aug 2006)
New Revision: 829
Modified:
   trunk/Makefile
   trunk/code/win32/win_shared.c
Log:
bug 2813
* fixed bug with new win32 home path detection 
* added SHFolder.lib linking to the mingw build for win98/win95 compat
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2006-08-01 16:51:13 UTC (rev 828)
+++ trunk/Makefile	2006-08-01 17:36:47 UTC (rev 829)
@@ -385,7 +385,7 @@
 
   BINEXT=.exe
 
-  LDFLAGS= -mwindows -lwsock32 -lgdi32 -lwinmm -lole32
+  LDFLAGS= -mwindows -lshfolder -lwsock32 -lgdi32 -lwinmm -lole32
   CLIENT_LDFLAGS=
 
   ifeq ($(USE_CODEC_VORBIS),1)
Modified: trunk/code/win32/win_shared.c
===================================================================
--- trunk/code/win32/win_shared.c	2006-08-01 16:51:13 UTC (rev 828)
+++ trunk/code/win32/win_shared.c	2006-08-01 17:36:47 UTC (rev 829)
@@ -296,7 +296,7 @@
 	}
 	Q_strncpyz( path, szPath, sizeof(path) );
 	Q_strcat( path, sizeof(path), "\\Quake3" );
-	if( CreateDirectory( path, NULL ) )
+	if( !CreateDirectory( path, NULL ) )
 	{
 		if( GetLastError() != ERROR_ALREADY_EXISTS )
 		{
From DONOTREPLY at icculus.org  Wed Aug  2 00:02:31 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 2 Aug 2006 00:02:31 -0400
Subject: r830 - in trunk: . code/client code/libs/macosx code/qcommon code/unix
Message-ID: <20060802040231.29353.qmail@icculus.org>
Author: tjw
Date: 2006-08-02 00:01:36 -0400 (Wed, 02 Aug 2006)
New Revision: 830
Added:
   trunk/make-macosx-ub.sh
Modified:
   trunk/Makefile
   trunk/code/client/snd_openal.c
   trunk/code/libs/macosx/libSDL-1.2.0.dylib
   trunk/code/qcommon/files.c
   trunk/code/unix/sdl_glimp.c
   trunk/code/unix/unix_net.c
Log:
bug 2723
* adds a shell script ./make-macosx-ub.sh that builds Mac OS X Universal Binary
* fixes Mac OS X x86 VM crashes (-mstackrealign)
* adds current working directory to the search path on Mac OS X to make
  working with .app bundles easier
* various tweaks to make ioquake3 build against the 10.2 SDK 
* changed default OpenAL .dylib location to the path of the one included with
  the Framework bundled in 10.4 (for USE_OPENAL_DLOPEN)
* updated to a Universal libSDL-1.2.0.dylib 
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/Makefile	2006-08-02 04:01:36 UTC (rev 830)
@@ -262,45 +262,108 @@
 
 ifeq ($(PLATFORM),darwin)
   CC=gcc
-
-  # !!! FIXME: calling conventions are still broken! See Bugzilla #2519
   VM_PPC=vm_ppc_new
+  HAVE_VM_COMPILED=true
+  BASE_CFLAGS=
+  CLIENT_LDFLAGS=
+  LDFLAGS=
+  OPTIMIZE=
+  ifeq ($(BUILD_MACOSX_UB),ppc)
+    CC=gcc-3.3
+    BASE_CFLAGS += -arch ppc -DSMP \
+      -DMAC_OS_X_VERSION_MIN_REQUIRED=1020 -nostdinc \
+      -F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
+      -I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \
+      -isystem /Developer/SDKs/MacOSX10.2.8.sdk/usr/include
+    # when using the 10.2 SDK we are not allowed the two-level namespace so
+    # in order to get the OpenAL dlopen() stuff to work without major
+    # modifications, the controversial -m linker flag must be used.  this
+    # throws a ton of multiply defined errors which cannot be suppressed.
+    LDFLAGS += -arch ppc \
+      -L/Developer/SDKs/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \
+      -F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \
+      -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk,-m 
+    ARCH=ppc
 
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
-  BASE_CFLAGS += -DMACOS_X -fno-common -pipe
+    # OS X 10.2 sdk lacks dlopen() so ded would need libSDL anyway
+    BUILD_SERVER=0
 
+    # because of a problem with linking on 10.2 this will generate multiply
+    # defined symbol errors.  The errors can be turned into warnings with
+    # the -m linker flag, but you can't shut up the warnings 
+    USE_OPENAL_DLOPEN=1
+  else
+  ifeq ($(BUILD_MACOSX_UB),x86)
+    CC=gcc-4.0
+    BASE_CFLAGS += -arch i386 -DSMP \
+      -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
+      -mmacosx-version-min=10.4 \
+      -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 -nostdinc \
+      -F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \
+      -I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include \
+      -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include
+    LDFLAGS = -mmacosx-version-min=10.4 \
+      -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1
+    ARCH=x86
+    BUILD_SERVER=0
+  else
+    # for whatever reason using the headers in the MacOSX SDKs tend to throw 
+    # errors even though they are identical to the system ones which don't
+    # therefore we shut up warning flags when running the universal build
+    # script as much as possible.
+    BASE_CFLAGS += -Wall -Wimplicit -Wstrict-prototypes
+  endif
+  endif
+
+  ifeq ($(ARCH),ppc)
+    OPTIMIZE += -faltivec
+    # Carbon is required on PPC only to make a call to MakeDataExecutable
+    # in the PPC vm (should be a better non-Carbon way).
+    LDFLAGS += -framework Carbon
+  endif
+  ifeq ($(ARCH),x86)
+    OPTIMIZE += -msse2
+    # x86 vm will crash without -mstackrealign since MMX instructions will be
+    # used no matter what and they corrupt the frame pointer in VM calls
+    BASE_CFLAGS += -mstackrealign
+  endif
+
+  BASE_CFLAGS += -fno-strict-aliasing -DMACOS_X -fno-common -pipe
+
   # Always include debug symbols...you can strip the binary later...
   BASE_CFLAGS += -gfull
 
   ifeq ($(USE_OPENAL),1)
     BASE_CFLAGS += -DUSE_OPENAL=1
-    ifeq ($(USE_OPENAL_DLOPEN),1)
+    ifneq ($(USE_OPENAL_DLOPEN),1)
+      CLIENT_LDFLAGS += -framework OpenAL
+    else
       BASE_CFLAGS += -DUSE_OPENAL_DLOPEN=1
     endif
   endif
 
   ifeq ($(USE_CODEC_VORBIS),1)
     BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
+    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
   endif
 
   ifeq ($(USE_SDL),1)
-    BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 -D_THREAD_SAFE=1 -I$(SDLHDIR)/include
+    BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 -D_THREAD_SAFE=1 \
+      -I$(SDLHDIR)/include
     GL_CFLAGS =
+    # We copy sdlmain before ranlib'ing it so that subversion doesn't think
+    #  the file has been modified by each build.
+    LIBSDLMAIN=$(B)/libSDLmain.a
+    LIBSDLMAINSRC=$(LIBSDIR)/macosx/libSDLmain.a
+    CLIENT_LDFLAGS += -framework Cocoa -framework OpenGL \
+      $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
+  else
+    # !!! FIXME: frameworks: OpenGL, Carbon, etc...
+    #CLIENT_LDFLAGS += -L/usr/X11R6/$(LIB) -lX11 -lXext -lXxf86dga -lXxf86vm
   endif
 
-  OPTIMIZE = -O3 -ffast-math -falign-loops=16
+  OPTIMIZE += -O3 -ffast-math -falign-loops=16
 
-  ifeq ($(ARCH),ppc)
-  BASE_CFLAGS += -faltivec
-    ifneq ($(VM_PPC),)
-      HAVE_VM_COMPILED=true
-    endif
-  endif
-
-  ifeq ($(ARCH),i386)
-    # !!! FIXME: x86-specific flags here...
-  endif
-
   ifneq ($(HAVE_VM_COMPILED),true)
     BASE_CFLAGS += -DNO_VM_COMPILED
   endif
@@ -315,34 +378,6 @@
 
   NOTSHLIBCFLAGS=-mdynamic-no-pic
 
-  #THREAD_LDFLAGS=-lpthread
-  #LDFLAGS=-ldl -lm
-  LDFLAGS += -framework Carbon
-
-  ifeq ($(USE_SDL),1)
-    # We copy sdlmain before ranlib'ing it so that subversion doesn't think
-    #  the file has been modified by each build.
-    LIBSDLMAIN=$(B)/libSDLmain.a
-    LIBSDLMAINSRC=$(LIBSDIR)/macosx/libSDLmain.a
-    CLIENT_LDFLAGS=-framework Cocoa -framework OpenGL $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
-  else
-    # !!! FIXME: frameworks: OpenGL, Carbon, etc...
-    #CLIENT_LDFLAGS=-L/usr/X11R6/$(LIB) -lX11 -lXext -lXxf86dga -lXxf86vm
-  endif
-
-  # -framework OpenAL requires 10.4 or later...for builds shipping to the
-  #  public, you'll want to use USE_OPENAL_DLOPEN and ship your own OpenAL
-  #  library (http://openal.org/ or http://icculus.org/al_osx/)
-  ifeq ($(USE_OPENAL),1)
-    ifneq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LDFLAGS += -framework OpenAL
-    endif
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
-  endif
-
 else # ifeq darwin
 
 
@@ -1261,6 +1296,12 @@
       $(B)/ded/snapvectora.o \
       $(B)/ded/matha.o
 endif
+ifeq ($(ARCH),x86)
+  Q3DOBJ += \
+      $(B)/ded/ftola.o \
+      $(B)/ded/snapvectora.o \
+      $(B)/ded/matha.o
+endif
 
 ifeq ($(HAVE_VM_COMPILED),true)
   ifeq ($(ARCH),i386)
Modified: trunk/code/client/snd_openal.c
===================================================================
--- trunk/code/client/snd_openal.c	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/code/client/snd_openal.c	2006-08-02 04:01:36 UTC (rev 830)
@@ -1524,6 +1524,8 @@
 
 #ifdef _WIN32
 #define ALDRIVER_DEFAULT "OpenAL32.dll"
+#elif defined(MACOS_X)
+#define ALDRIVER_DEFAULT "/System/Library/Frameworks/OpenAL.framework/OpenAL"
 #else
 #define ALDRIVER_DEFAULT "libopenal.so.0"
 #endif
Modified: trunk/code/libs/macosx/libSDL-1.2.0.dylib
===================================================================
(Binary files differ)
Modified: trunk/code/qcommon/files.c
===================================================================
--- trunk/code/qcommon/files.c	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/code/qcommon/files.c	2006-08-02 04:01:36 UTC (rev 830)
@@ -2829,6 +2829,10 @@
 	if (fs_basepath->string[0]) {
 		FS_AddGameDirectory( fs_basepath->string, gameName );
 	}
+#ifdef MACOS_X
+	// allow .app bundles to be placed along side base dir
+	FS_AddGameDirectory( ".", gameName );
+#endif
   // fs_homepath is somewhat particular to *nix systems, only add if relevant
   // NOTE: same filtering below for mods and basegame
 	if (fs_basepath->string[0] && Q_stricmp(fs_homepath->string,fs_basepath->string)) {
Modified: trunk/code/unix/sdl_glimp.c
===================================================================
--- trunk/code/unix/sdl_glimp.c	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/code/unix/sdl_glimp.c	2006-08-02 04:01:36 UTC (rev 830)
@@ -67,7 +67,12 @@
 #include 
 #include 
 #include 
+#if USE_SDL_VIDEO
+#include "SDL.h"
+#include "SDL_loadso.h"
+#else
 #include 
+#endif
 
 #include "../renderer/tr_local.h"
 #include "../client/client.h"
@@ -832,7 +837,7 @@
   if ( strstr( glConfig.extensions_string, "GL_EXT_texture_filter_anisotropic" ) )
   {
     if ( r_ext_texture_filter_anisotropic->integer ) {
-      qglGetIntegerv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxAnisotropy );
+      qglGetIntegerv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, (GLint *)&maxAnisotropy );
       if ( maxAnisotropy <= 0 ) {
         ri.Printf( PRINT_ALL, "...GL_EXT_texture_filter_anisotropic not properly supported!\n" );
         maxAnisotropy = 0;
Modified: trunk/code/unix/unix_net.c
===================================================================
--- trunk/code/unix/unix_net.c	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/code/unix/unix_net.c	2006-08-02 04:01:36 UTC (rev 830)
@@ -25,6 +25,10 @@
 #include "../qcommon/qcommon.h"
 
 #include 
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  // needed for socket_t on OSX 10.2
+  #define _BSD_SOCKLEN_T_
+#endif
 #include 
 #include 
 #include 
Added: trunk/make-macosx-ub.sh
===================================================================
--- trunk/make-macosx-ub.sh	2006-08-01 17:36:47 UTC (rev 829)
+++ trunk/make-macosx-ub.sh	2006-08-02 04:01:36 UTC (rev 830)
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+DESTDIR=build/release-darwin-ub
+BASEDIR=baseq3
+MPACKDIR=missionpack
+
+BIN_OBJ="
+	build/release-darwin-ppc/ioquake3.ppc
+	build/release-darwin-x86/ioquake3.x86
+"
+BASE_OBJ="
+	build/release-darwin-ppc/$BASEDIR/cgameppc.dylib
+	build/release-darwin-x86/$BASEDIR/cgamex86.dylib
+	build/release-darwin-ppc/$BASEDIR/uippc.dylib
+	build/release-darwin-x86/$BASEDIR/uix86.dylib
+	build/release-darwin-ppc/$BASEDIR/qagameppc.dylib
+	build/release-darwin-x86/$BASEDIR/qagamex86.dylib
+"
+MPACK_OBJ="
+	build/release-darwin-ppc/$MPACKDIR/cgameppc.dylib
+	build/release-darwin-x86/$MPACKDIR/cgamex86.dylib
+	build/release-darwin-ppc/$MPACKDIR/uippc.dylib
+	build/release-darwin-x86/$MPACKDIR/uix86.dylib
+	build/release-darwin-ppc/$MPACKDIR/qagameppc.dylib
+	build/release-darwin-x86/$MPACKDIR/qagamex86.dylib
+"
+if [ ! -f Makefile ]; then
+	echo "This script must be run from the ioquake3 build directory";
+fi
+
+if [ ! -d /Developer/SDKs/MacOSX10.2.8.sdk ]; then
+	echo "
+/Developer/SDKs/MacOSX10.2.8.sdk/ is missing.
+The installer for this SDK is included with XCode 2.2 or newer"
+	exit 1;
+fi
+
+if [ ! -d /Developer/SDKs/MacOSX10.4u.sdk ]; then
+	echo "
+/Developer/SDKs/MacOSX10.4u.sdk/ is missing.   
+The installer for this SDK is included with XCode 2.2 or newer"
+	exit 1;
+fi
+
+(BUILD_MACOSX_UB=ppc make && BUILD_MACOSX_UB=x86 make) || exit 1;
+
+if [ ! -d $DESTDIR ]; then 
+	mkdir $DESTDIR || exit 1;
+fi
+if [ ! -d $DESTDIR/$BASEDIR ]; then
+	mkdir $DESTDIR/$BASEDIR || exit 1;
+fi
+if [ ! -d $DESTDIR/$MPACKDIR ]; then
+	mkdir $DESTDIR/$MPACKDIR || exit 1;
+fi
+
+echo "Installing Universal Binaries in $DESTDIR"
+lipo -create -o $DESTDIR/ioquake3.ub $BIN_OBJ
+cp $BASE_OBJ $DESTDIR/$BASEDIR/
+cp $MPACK_OBJ $DESTDIR/$MPACKDIR/
+cp code/libs/macosx/*.dylib $DESTDIR/
+
Property changes on: trunk/make-macosx-ub.sh
___________________________________________________________________
Name: svn:executable
   + *
From DONOTREPLY at icculus.org  Wed Aug  2 01:12:20 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 2 Aug 2006 01:12:20 -0400
Subject: r831 - trunk
Message-ID: <20060802051220.17210.qmail@icculus.org>
Author: tjw
Date: 2006-08-02 01:12:20 -0400 (Wed, 02 Aug 2006)
New Revision: 831
Modified:
   trunk/Makefile
   trunk/make-macosx-ub.sh
Log:
bug 2723
* ARCH should be i386 instead of x86 for Mac OS X too
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2006-08-02 04:01:36 UTC (rev 830)
+++ trunk/Makefile	2006-08-02 05:12:20 UTC (rev 831)
@@ -293,7 +293,7 @@
     # the -m linker flag, but you can't shut up the warnings 
     USE_OPENAL_DLOPEN=1
   else
-  ifeq ($(BUILD_MACOSX_UB),x86)
+  ifeq ($(BUILD_MACOSX_UB),i386)
     CC=gcc-4.0
     BASE_CFLAGS += -arch i386 -DSMP \
       -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
@@ -304,7 +304,7 @@
       -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include
     LDFLAGS = -mmacosx-version-min=10.4 \
       -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1
-    ARCH=x86
+    ARCH=i386
     BUILD_SERVER=0
   else
     # for whatever reason using the headers in the MacOSX SDKs tend to throw 
@@ -321,7 +321,7 @@
     # in the PPC vm (should be a better non-Carbon way).
     LDFLAGS += -framework Carbon
   endif
-  ifeq ($(ARCH),x86)
+  ifeq ($(ARCH),i386)
     OPTIMIZE += -msse2
     # x86 vm will crash without -mstackrealign since MMX instructions will be
     # used no matter what and they corrupt the frame pointer in VM calls
Modified: trunk/make-macosx-ub.sh
===================================================================
--- trunk/make-macosx-ub.sh	2006-08-02 04:01:36 UTC (rev 830)
+++ trunk/make-macosx-ub.sh	2006-08-02 05:12:20 UTC (rev 831)
@@ -6,23 +6,23 @@
 
 BIN_OBJ="
 	build/release-darwin-ppc/ioquake3.ppc
-	build/release-darwin-x86/ioquake3.x86
+	build/release-darwin-i386/ioquake3.i386
 "
 BASE_OBJ="
 	build/release-darwin-ppc/$BASEDIR/cgameppc.dylib
-	build/release-darwin-x86/$BASEDIR/cgamex86.dylib
+	build/release-darwin-i386/$BASEDIR/cgamei386.dylib
 	build/release-darwin-ppc/$BASEDIR/uippc.dylib
-	build/release-darwin-x86/$BASEDIR/uix86.dylib
+	build/release-darwin-i386/$BASEDIR/uii386.dylib
 	build/release-darwin-ppc/$BASEDIR/qagameppc.dylib
-	build/release-darwin-x86/$BASEDIR/qagamex86.dylib
+	build/release-darwin-i386/$BASEDIR/qagamei386.dylib
 "
 MPACK_OBJ="
 	build/release-darwin-ppc/$MPACKDIR/cgameppc.dylib
-	build/release-darwin-x86/$MPACKDIR/cgamex86.dylib
+	build/release-darwin-i386/$MPACKDIR/cgamei386.dylib
 	build/release-darwin-ppc/$MPACKDIR/uippc.dylib
-	build/release-darwin-x86/$MPACKDIR/uix86.dylib
+	build/release-darwin-i386/$MPACKDIR/uii386.dylib
 	build/release-darwin-ppc/$MPACKDIR/qagameppc.dylib
-	build/release-darwin-x86/$MPACKDIR/qagamex86.dylib
+	build/release-darwin-i386/$MPACKDIR/qagamei386.dylib
 "
 if [ ! -f Makefile ]; then
 	echo "This script must be run from the ioquake3 build directory";
@@ -42,7 +42,7 @@
 	exit 1;
 fi
 
-(BUILD_MACOSX_UB=ppc make && BUILD_MACOSX_UB=x86 make) || exit 1;
+(BUILD_MACOSX_UB=ppc make && BUILD_MACOSX_UB=i386 make) || exit 1;
 
 if [ ! -d $DESTDIR ]; then 
 	mkdir $DESTDIR || exit 1;
From DONOTREPLY at icculus.org  Wed Aug  2 22:29:47 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 2 Aug 2006 22:29:47 -0400
Subject: r832 - trunk/code/client
Message-ID: <20060803022947.19907.qmail@icculus.org>
Author: tjw
Date: 2006-08-02 22:29:47 -0400 (Wed, 02 Aug 2006)
New Revision: 832
Modified:
   trunk/code/client/snd_openal.c
Log:
bug 2747
* open music stream in S_AL_StartBackgroundTrack() instead of relying 
  on  S_AL_MusicProcess() to open it.  This allows S_AL_MusicProcess() to 
  return early when called whenever there is no open music stream to prevent
  a segfault.
Modified: trunk/code/client/snd_openal.c
===================================================================
--- trunk/code/client/snd_openal.c	2006-08-02 05:12:20 UTC (rev 831)
+++ trunk/code/client/snd_openal.c	2006-08-03 02:29:47 UTC (rev 832)
@@ -1369,6 +1369,9 @@
 	int l;
 	ALuint format;
 
+	if(!mus_stream)
+		return;
+
 	l = S_CodecReadStream(mus_stream, MUSIC_BUFFER_SIZE, decode_buffer);
 
 	// Run out data to read, start at the beginning again
@@ -1443,6 +1446,13 @@
 	if(musicSourceHandle == -1)
 		return;
 
+	mus_stream = S_CodecOpenStream(s_backgroundLoop);
+	if(!mus_stream)
+	{
+		S_AL_MusicSourceFree();
+		return;
+	}
+
 	// Generate the musicBuffers
 	qalGenBuffers(NUM_MUSIC_BUFFERS, musicBuffers);
 	
@@ -1450,19 +1460,6 @@
 	for(i = 0; i < NUM_MUSIC_BUFFERS; i++)
 	{
 		S_AL_MusicProcess(musicBuffers[i]);
-
-		// check whether our stream still exists.
-		if(!mus_stream)
-		{
-			// there was an error in reading which resulted in a
-			// closed stream. We must bail out or we'll crash.
-
-			// deallocate everything we allocated so far:
-			qalDeleteBuffers(NUM_MUSIC_BUFFERS, musicBuffers);
-			S_AL_MusicSourceFree();
-
-			return;
-		}
 	}
 
 	qalSourceQueueBuffers(musicSource, NUM_MUSIC_BUFFERS, musicBuffers);
From DONOTREPLY at icculus.org  Wed Aug  2 23:15:24 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 2 Aug 2006 23:15:24 -0400
Subject: r833 - trunk/code/client
Message-ID: <20060803031524.1541.qmail@icculus.org>
Author: tjw
Date: 2006-08-02 23:15:24 -0400 (Wed, 02 Aug 2006)
New Revision: 833
Modified:
   trunk/code/client/snd_openal.c
Log:
bug 2747
* it turns out Apple's OpenAL only allows for 64 alSource's by default
  http://opensource.creative.com/pipermail/openal/2005-October/008893.html
  This was the main cause of the Mac OS X OpenAL probem since we were using
  128 as MAX_SRC
Modified: trunk/code/client/snd_openal.c
===================================================================
--- trunk/code/client/snd_openal.c	2006-08-03 02:29:47 UTC (rev 832)
+++ trunk/code/client/snd_openal.c	2006-08-03 03:15:24 UTC (rev 833)
@@ -465,7 +465,11 @@
 	qboolean				local;			// Is this local (relative to the cam)
 } src_t;
 
-#define MAX_SRC 128
+#ifdef MACOS_X
+  #define MAX_SRC 64
+#else
+  #define MAX_SRC 128
+#endif
 static src_t srcList[MAX_SRC];
 static int srcCount = 0;
 static qboolean alSourcesInitialised = qfalse;
From DONOTREPLY at icculus.org  Tue Aug  8 19:57:20 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 8 Aug 2006 19:57:20 -0400
Subject: r834 - trunk
Message-ID: <20060808235720.22615.qmail@icculus.org>
Author: zakk
Date: 2006-08-08 19:57:20 -0400 (Tue, 08 Aug 2006)
New Revision: 834
Modified:
   trunk/.svnignore
Log:
Makefile.local gets ignored for great justice!
Modified: trunk/.svnignore
===================================================================
--- trunk/.svnignore	2006-08-03 03:15:24 UTC (rev 833)
+++ trunk/.svnignore	2006-08-08 23:57:20 UTC (rev 834)
@@ -1 +1,2 @@
 build
+Makefile.local
From DONOTREPLY at icculus.org  Wed Aug  9 17:03:11 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 9 Aug 2006 17:03:11 -0400
Subject: r835 - webspace/include
Message-ID: <20060809210311.7019.qmail@icculus.org>
Author: tjw
Date: 2006-08-09 17:03:11 -0400 (Wed, 09 Aug 2006)
New Revision: 835
Modified:
   webspace/include/downloads.php
Log:
updated Mac OS X download info
Modified: webspace/include/downloads.php
===================================================================
--- webspace/include/downloads.php	2006-08-08 23:57:20 UTC (rev 834)
+++ webspace/include/downloads.php	2006-08-09 21:03:11 UTC (rev 835)
@@ -54,18 +54,19 @@
 				Nussel.
 				
',
 
- "apple"		=>	'Mac OS X (PowerPC)
-				You must download patch data seperately
-				with this dmg. When the installation is complete,
-				you need to copy your pak0.pk3 from your legal CD-ROM. 
-				Further instruction is in the ReadMe.rtf included in 
-				the dmg. Intel binaries will be coming shortly.
+ "apple"		=>	'Mac OS X (Universal Binary)
+ 				Provides latest patch pk3 data from id. You only need to copy
+				the pak0.pk3 file from your legal Quake 3 CD-ROM to complete
+				the installation process.
+				
+				Installation instructions are in the ReadMe.rtf included in 
+				the dmg.
 				
- 				Download for OS X (PowerPC), 5.5MB.		
- 				MD5: f9fc08c9bcc68ee5c1a8462533c66bf4
+ 				Download for OS X (Universal Binary), 35.7MB.		
+ 				MD5: 6adeae5048e4f0049ab7cf5f54beea1e
 				Built from Subversion
-				revision 653.
-				
Thanks to Vincent Mor?nas.
 '
+				revision 834.
+				Thanks to Tony J. White.
 '
 );
 
 uksort($downloads, "oscompare");
From DONOTREPLY at icculus.org  Sat Aug 12 01:05:56 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 12 Aug 2006 01:05:56 -0400
Subject: r836 - webspace/include
Message-ID: <20060812050556.17924.qmail@icculus.org>
Author: zakk
Date: 2006-08-12 01:05:55 -0400 (Sat, 12 Aug 2006)
New Revision: 836
Modified:
   webspace/include/home.php
Log:
Server stuff
Modified: webspace/include/home.php
===================================================================
--- webspace/include/home.php	2006-08-09 21:03:11 UTC (rev 835)
+++ webspace/include/home.php	2006-08-12 05:05:55 UTC (rev 836)
@@ -9,7 +9,8 @@
 permanent goal is to create the open source Quake 3 distribution upon
 which people base their games and projects. We also seek to have the perfect version of the engine for playing Quake 3: Arena, Team Arena, and all popular mods. This distribution of the engine has
 been ported to many new platforms and has had a slew
-of  new features added, along with massive bug extermination.
+of  new features added, along with massive bug extermination. While we don't have PunkBuster (and never will), we do have 
+more security for servers.
 Check out some screenshots!
 
 Download Now
From DONOTREPLY at icculus.org  Sat Aug 12 14:48:30 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 12 Aug 2006 14:48:30 -0400
Subject: r837 - webspace/include
Message-ID: <20060812184830.7846.qmail@icculus.org>
Author: zakk
Date: 2006-08-12 14:48:30 -0400 (Sat, 12 Aug 2006)
New Revision: 837
Modified:
   webspace/include/home.php
Log:
Minor edit
Modified: webspace/include/home.php
===================================================================
--- webspace/include/home.php	2006-08-12 05:05:55 UTC (rev 836)
+++ webspace/include/home.php	2006-08-12 18:48:30 UTC (rev 837)
@@ -10,7 +10,7 @@
 which people base their games and projects. We also seek to have the perfect version of the engine for playing Quake 3: Arena, Team Arena, and all popular mods. This distribution of the engine has
 been ported to many new platforms and has had a slew
 of  new features added, along with massive bug extermination. While we don't have PunkBuster (and never will), we do have 
-more security for servers.
+more security for servers and clients from various bugfixes which aren't in id's client.
 Check out some screenshots!
 
 Download Now
From DONOTREPLY at icculus.org  Sun Aug 13 13:09:06 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 13 Aug 2006 13:09:06 -0400
Subject: r838 - in trunk: . code/client code/renderer code/server
Message-ID: <20060813170906.13101.qmail@icculus.org>
Author: tma
Date: 2006-08-13 13:09:05 -0400 (Sun, 13 Aug 2006)
New Revision: 838
Modified:
   trunk/Makefile
   trunk/code/client/cl_input.c
   trunk/code/client/cl_main.c
   trunk/code/client/client.h
   trunk/code/renderer/tr_image.c
   trunk/code/renderer/tr_init.c
   trunk/code/server/sv_snapshot.c
Log:
* qvm files no longer installed by "make copyfiles"
* Loopback clients only get snapshots at the server frame rate now
  (Anonymous )
* JPEG chroma subsampling disabled if the quality value is >= 85
  (Anonymous )
* cl_lanForcePackets. When set to 0 (default is 1) the cl_maxpackets setting
  will be ignored if on a LAN. (Anonymous )
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/Makefile	2006-08-13 17:09:05 UTC (rev 838)
@@ -1760,17 +1760,6 @@
 					$(COPYDIR)/missionpack/.
 endif
 
-ifneq ($(BUILD_GAME_QVM),0)
-	-$(MKDIR) -p -m 0755 $(COPYDIR)/baseq3/vm
-	$(INSTALL) -m 0755 $(BR)/baseq3/vm/qagame.qvm $(COPYDIR)/baseq3/vm/qagame.qvm
-	$(INSTALL) -m 0755 $(BR)/baseq3/vm/cgame.qvm $(COPYDIR)/baseq3/vm/cgame.qvm
-	$(INSTALL) -m 0755 $(BR)/baseq3/vm/ui.qvm $(COPYDIR)/baseq3/vm/ui.qvm
-	-$(MKDIR) -p -m 0755 $(COPYDIR)/missionpack/vm
-	$(INSTALL) -m 0755 $(BR)/missionpack/vm/qagame.qvm $(COPYDIR)/missionpack/vm/qagame.qvm
-	$(INSTALL) -m 0755 $(BR)/missionpack/vm/cgame.qvm $(COPYDIR)/missionpack/vm/cgame.qvm
-	$(INSTALL) -m 0755 $(BR)/missionpack/vm/ui.qvm $(COPYDIR)/missionpack/vm/ui.qvm
-endif
-
 clean: clean-debug clean-release
 	$(MAKE) -C $(LOKISETUPDIR) clean
 
Modified: trunk/code/client/cl_input.c
===================================================================
--- trunk/code/client/cl_input.c	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/client/cl_input.c	2006-08-13 17:09:05 UTC (rev 838)
@@ -645,7 +645,7 @@
 	}
 
 	// send every frame for LAN
-	if ( Sys_IsLANAddress( clc.netchan.remoteAddress ) ) {
+	if ( cl_lanForcePackets->integer && Sys_IsLANAddress( clc.netchan.remoteAddress ) ) {
 		return qtrue;
 	}
 
Modified: trunk/code/client/cl_main.c
===================================================================
--- trunk/code/client/cl_main.c	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/client/cl_main.c	2006-08-13 17:09:05 UTC (rev 838)
@@ -72,6 +72,8 @@
 cvar_t	*cl_serverStatusResendTime;
 cvar_t	*cl_trn;
 
+cvar_t	*cl_lanForcePackets;
+
 clientActive_t		cl;
 clientConnection_t	clc;
 clientStatic_t		cls;
@@ -2484,6 +2486,7 @@
 
 	Cvar_Get( "cl_maxPing", "800", CVAR_ARCHIVE );
 
+	cl_lanForcePackets = Cvar_Get ("cl_lanForcePackets", "1", CVAR_ARCHIVE);
 
 	// userinfo
 	Cvar_Get ("name", "UnnamedPlayer", CVAR_USERINFO | CVAR_ARCHIVE );
Modified: trunk/code/client/client.h
===================================================================
--- trunk/code/client/client.h	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/client/client.h	2006-08-13 17:09:05 UTC (rev 838)
@@ -355,6 +355,8 @@
 extern	cvar_t	*cl_conXOffset;
 extern	cvar_t	*cl_inGameVideo;
 
+extern	cvar_t	*cl_lanForcePackets;
+
 //=================================================
 
 //
Modified: trunk/code/renderer/tr_image.c
===================================================================
--- trunk/code/renderer/tr_image.c	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/renderer/tr_image.c	2006-08-13 17:09:05 UTC (rev 838)
@@ -1816,6 +1816,11 @@
    * Here we just illustrate the use of quality (quantization table) scaling:
    */
   jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */);
+  /* If quality is set high, disable chroma subsampling */
+  if (quality >= 85) {
+    cinfo.comp_info[0].h_samp_factor = 1;
+    cinfo.comp_info[0].v_samp_factor = 1;
+  }
 
   /* Step 4: Start compressor */
 
@@ -1890,6 +1895,11 @@
 
   jpeg_set_defaults(&cinfo);
   jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */);
+  /* If quality is set high, disable chroma subsampling */
+  if (quality >= 85) {
+    cinfo.comp_info[0].h_samp_factor = 1;
+    cinfo.comp_info[0].v_samp_factor = 1;
+  }
 
   /* Step 4: Start compressor */
   jpeg_start_compress(&cinfo, TRUE);
Modified: trunk/code/renderer/tr_init.c
===================================================================
--- trunk/code/renderer/tr_init.c	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/renderer/tr_init.c	2006-08-13 17:09:05 UTC (rev 838)
@@ -423,7 +423,7 @@
 	}
 
 	ri.FS_WriteFile( fileName, buffer, 1 );		// create path
-	SaveJPG( fileName, 95, glConfig.vidWidth, glConfig.vidHeight, buffer);
+	SaveJPG( fileName, 90, glConfig.vidWidth, glConfig.vidHeight, buffer);
 
 	ri.Hunk_FreeTempMemory( buffer );
 }
@@ -727,7 +727,7 @@
 
 	if( cmd->motionJpeg )
 	{
-		frameSize = SaveJPGToBuffer( cmd->encodeBuffer, 95,
+		frameSize = SaveJPGToBuffer( cmd->encodeBuffer, 90,
 				cmd->width, cmd->height, cmd->captureBuffer );
 		ri.CL_WriteAVIVideoFrame( cmd->encodeBuffer, frameSize );
 	}
Modified: trunk/code/server/sv_snapshot.c
===================================================================
--- trunk/code/server/sv_snapshot.c	2006-08-12 18:48:30 UTC (rev 837)
+++ trunk/code/server/sv_snapshot.c	2006-08-13 17:09:05 UTC (rev 838)
@@ -583,11 +583,11 @@
 
 	// set nextSnapshotTime based on rate and requested number of updates
 
-	// local clients get snapshots every frame
+	// local clients get snapshots every server frame
 	// TTimo - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=491
 	// added sv_lanForceRate check
 	if ( client->netchan.remoteAddress.type == NA_LOOPBACK || (sv_lanForceRate->integer && Sys_IsLANAddress (client->netchan.remoteAddress)) ) {
-		client->nextSnapshotTime = svs.time - 1;
+		client->nextSnapshotTime = svs.time + (1000/sv_fps->integer);
 		return;
 	}
 	
From DONOTREPLY at icculus.org  Tue Aug 15 01:32:59 2006
From: DONOTREPLY at icculus.org (DONOTREPLY at icculus.org)
Date: 15 Aug 2006 01:32:59 -0400
Subject: r839 - in webspace: . include
Message-ID: <20060815053259.6162.qmail@icculus.org>
Author: zakk
Date: 2006-08-15 01:32:59 -0400 (Tue, 15 Aug 2006)
New Revision: 839
Modified:
   webspace/include/discuss.php
   webspace/include/get.php
   webspace/include/getdata.php
   webspace/include/media.php
   webspace/include/status.php
   webspace/index.php
Log:
Curse you, illiterate people.
Modified: webspace/include/discuss.php
===================================================================
--- webspace/include/discuss.php	2006-08-13 17:09:05 UTC (rev 838)
+++ webspace/include/discuss.php	2006-08-15 05:32:59 UTC (rev 839)
@@ -1,7 +1,7 @@
 Web Forums
 We provide web forums to facilitate the desire for a place to discuss this project
 and seek help from peers online. Please be courteous!
-Enter the icculus.org/quake3 forums.
+
Enter the ioquake3 forums.
 If you need more technical help, or have a bug to report, please consult the mailing lists
 and Bugzilla.
 
@@ -13,7 +13,7 @@
 		quake3 at icculus.org
 		There is a general discussion mailing list where you can discuss this project,
 		ask for help, announce patches, and anything else that could possibly be talked
-		about with the developers and users of icculus.org/quake3.
+		about with the developers and users of ioquake3.
 		To join the list, send a blank e-mail to
 		quake3-subscribe at icculus.org.
 		
@@ -42,8 +42,8 @@
 
 
IRC
 To join the IRC channel, aim
-your client at 
-#icculus.org/quake3 on irc.freenode.net
+your client at 
+#ioquake3 on irc.freenode.net
 Please make sure that you've read the Help section
 before you start wasting your time bugging people!.
 
Modified: webspace/include/get.php
===================================================================
--- webspace/include/get.php	2006-08-13 17:09:05 UTC (rev 838)
+++ webspace/include/get.php	2006-08-15 05:32:59 UTC (rev 839)
@@ -1,6 +1,6 @@
 The Quake 3 engine is open source, this does not
 mean that Quake III: Arena the game is free. You must purchase the game to use the data!
-Get icculus.org/quake3
+Get ioquake3
 There are three methods of installation. The preffered way is to use an official
 installer. Note that just as before, you can use a Quake 3: Arena CD-ROM from any version of Quake 3 (Windows, Linux, Gold, etc) to get the needed pak0.pk3.
 
@@ -15,7 +15,7 @@
 
 $official ="
 Sanctioned Installers
-We have provided installers for the most popular platforms icculus.org/quake3
+
We have provided installers for the most popular platforms ioquake3
 supports. These have been tested, and if they do not work you can report bugs to us
 about them.
 
@@ -83,7 +83,7 @@
 	
 	- Read the README
 	file. Really. Do it.
 
-	- Compile and install icculus.org/quake3:
+	
 - Compile and install ioquake3:
 		
 			Linux and friends
 			We all can compile it ourselves:
Modified: webspace/include/getdata.php
===================================================================
--- webspace/include/getdata.php	2006-08-13 17:09:05 UTC (rev 838)
+++ webspace/include/getdata.php	2006-08-15 05:32:59 UTC (rev 839)
@@ -18,7 +18,7 @@
 			$eula = file_get_contents("include/id_patch_pk3s_Q3A_EULA.txt");
 			$html =
 "Newer pk3 files from id point release patches
-are required to play Quake III: Arena on icculus.org/quake3.
+are required to play Quake III: Arena on ioquake3.
 EULA
 In order for us to distribute the updated pk3 files from id
 Software, you need to agree to their EULA. Read through it, then click Agree if
Modified: webspace/include/media.php
===================================================================
--- webspace/include/media.php	2006-08-13 17:09:05 UTC (rev 838)
+++ webspace/include/media.php	2006-08-15 05:32:59 UTC (rev 839)
@@ -1,5 +1,5 @@
 
Screenshots
-Here be some screenshots of icculus.org/quake3 and its children in action on
+
Here be some screenshots of ioquake3 and its children in action on
 different platforms.