diff -x .svn -ru ioq3_rev1108/Makefile legacy_client/Makefile --- ioq3_rev1108/Makefile 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/Makefile 2008-10-10 15:40:04.000000000 +0200 @@ -26,11 +26,11 @@ endif endif -BUILD_CLIENT = -BUILD_CLIENT_SMP = -BUILD_SERVER = -BUILD_GAME_SO = -BUILD_GAME_QVM = +BUILD_CLIENT =1 +BUILD_CLIENT_SMP =0 +BUILD_SERVER =0 +BUILD_GAME_SO =0 +BUILD_GAME_QVM =0 ############################################################################# # Only in legacy_client: Makefile~ Only in legacy_client: build diff -x .svn -ru ioq3_rev1108/code/client/cl_main.c legacy_client/code/client/cl_main.c --- ioq3_rev1108/code/client/cl_main.c 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/cl_main.c 2008-10-10 14:59:55.000000000 +0200 @@ -2789,7 +2789,8 @@ server->netType = atoi(Info_ValueForKey(info, "nettype")); server->minPing = atoi(Info_ValueForKey(info, "minping")); server->maxPing = atoi(Info_ValueForKey(info, "maxping")); - server->punkbuster = atoi(Info_ValueForKey(info, "punkbuster")); + server->g_humanplayers = atoi(Info_ValueForKey(info, "g_humanplayers")); + server->g_needpass = atoi(Info_ValueForKey(info, "g_needpass")); } server->ping = ping; } @@ -2920,7 +2921,6 @@ cls.localServers[i].game[0] = '\0'; cls.localServers[i].gameType = 0; cls.localServers[i].netType = from.type; - cls.localServers[i].punkbuster = 0; Q_strncpyz( info, MSG_ReadString( msg ), MAX_INFO_STRING ); if (strlen(info)) { @@ -3582,62 +3582,7 @@ ================= */ qboolean CL_CDKeyValidate( const char *key, const char *checksum ) { - char ch; - byte sum; - char chs[3]; - int i, len; - - len = strlen(key); - if( len != CDKEY_LEN ) { - return qfalse; - } - - if( checksum && strlen( checksum ) != CDCHKSUM_LEN ) { - return qfalse; - } - - sum = 0; - // for loop gets rid of conditional assignment warning - for (i = 0; i < len; i++) { - ch = *key++; - if (ch>='a' && ch<='z') { - ch -= 32; - } - switch( ch ) { - case '2': - case '3': - case '7': - case 'A': - case 'B': - case 'C': - case 'D': - case 'G': - case 'H': - case 'J': - case 'L': - case 'P': - case 'R': - case 'S': - case 'T': - case 'W': - sum += ch; - continue; - default: - return qfalse; - } - } - - sprintf(chs, "%02x", sum); - - if (checksum && !Q_stricmp(chs, checksum)) { - return qtrue; - } - - if (!checksum) { - return qtrue; - } - - return qfalse; + return qtrue; } Only in legacy_client/code/client: cl_main.c~ diff -x .svn -ru ioq3_rev1108/code/client/cl_ui.c legacy_client/code/client/cl_ui.c --- ioq3_rev1108/code/client/cl_ui.c 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/cl_ui.c 2008-10-10 15:00:19.000000000 +0200 @@ -321,7 +321,8 @@ Info_SetValueForKey( info, "gametype", va("%i",server->gameType)); Info_SetValueForKey( info, "nettype", va("%i",server->netType)); Info_SetValueForKey( info, "addr", NET_AdrToString(server->adr)); - Info_SetValueForKey( info, "punkbuster", va("%i", server->punkbuster)); + Info_SetValueForKey( info, "g_needpass", va("%i",server->g_needpass)); + Info_SetValueForKey( info, "g_humanplayers", va("%i",server->g_humanplayers)); Q_strncpyz(buf, info, buflen); } else { if (buf) { Only in legacy_client/code/client: cl_ui.c~ diff -x .svn -ru ioq3_rev1108/code/client/client.h legacy_client/code/client/client.h --- ioq3_rev1108/code/client/client.h 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/client.h 2008-10-10 15:08:12.000000000 +0200 @@ -255,7 +255,8 @@ int maxPing; int ping; qboolean visible; - int punkbuster; + int g_humanplayers; + int g_needpass; } serverInfo_t; typedef struct { Only in legacy_client/code/client: client.h~ diff -x .svn -ru ioq3_rev1108/code/client/snd_codec.c legacy_client/code/client/snd_codec.c --- ioq3_rev1108/code/client/snd_codec.c 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/snd_codec.c 2008-10-10 15:02:28.000000000 +0200 @@ -128,6 +128,69 @@ codecs = codec; } + +// STOLEN FROM IOSTVOY by thilo!!!! HA HA HA but it works :( +qboolean S_TheCheckExtension(char *filename) +{ + fileHandle_t hnd; + char fn[MAX_QPATH]; + int stringlen = strlen(filename); + char *extptr; + + strncpy(fn, filename, stringlen+1); + extptr = strrchr(fn, '.'); + + if(!extptr) + { + extptr = &fn[stringlen]; + + extptr[0] = '.'; + extptr[1] = 'w'; + extptr[2] = 'a'; + extptr[3] = 'v'; + extptr[4] = '\0'; + + stringlen += 4; + } + + FS_FOpenFileRead(fn, &hnd, qtrue); + + if(!hnd) + { + if(!strcmp(++extptr, "wav")) + { + extptr[0] = 'o'; + extptr[1] = 'g'; + extptr[2] = 'g'; + + FS_FOpenFileRead(fn, &hnd, qtrue); + + if(!hnd) + return qfalse; + } + else + return qfalse; + } + + FS_FCloseFile(hnd); + strcpy(filename, fn); + + return qtrue; +} + +qboolean S_TheGetFileName(char *filename) +{ + char fn[MAX_QPATH]; +// qboolean dschoermen = qfalse; + + strncpy(fn, filename, sizeof(fn) - 10); + + if(S_TheCheckExtension(filename)) + return qtrue; + + return qfalse; +} + /* ================= S_CodecLoad @@ -138,16 +201,18 @@ snd_codec_t *codec; char fn[MAX_QPATH]; - codec = S_FindCodecForFile(filename); - if(!codec) - { - Com_Printf("Unknown extension for %s\n", filename); - return NULL; - } - - strncpy(fn, filename, sizeof(fn)); - COM_DefaultExtension(fn, sizeof(fn), codec->ext); - + // GO LOAD IT + strncpy(fn, filename, sizeof(fn)); + if(!S_TheGetFileName(fn)) + return NULL; + codec = S_FindCodecForFile(fn); + // codec = S_FindCodecForFile(filename); + if(!codec) + { + Com_Printf("Unknown extension for %s\n", filename); + return NULL; + } + return codec->load(fn, info); } Only in legacy_client/code/client: snd_codec.c~ diff -x .svn -ru ioq3_rev1108/code/client/snd_dma.c legacy_client/code/client/snd_dma.c --- ioq3_rev1108/code/client/snd_dma.c 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/snd_dma.c 2008-10-10 14:58:31.000000000 +0200 @@ -364,7 +364,7 @@ Com_Memset( s_knownSfx, 0, sizeof( s_knownSfx ) ); Com_Memset(sfxHash, 0, sizeof(sfx_t *)*LOOP_HASH); - S_Base_RegisterSound("sound/feedback/hit.wav", qfalse); // changed to a sound in baseq3 + S_Base_RegisterSound("sound/misc/silence.wav", qfalse); // changed to a sound in baseq3 } } Only in legacy_client/code/client: snd_dma.c~ diff -x .svn -ru ioq3_rev1108/code/client/snd_openal.c legacy_client/code/client/snd_openal.c --- ioq3_rev1108/code/client/snd_openal.c 2008-10-22 12:33:55.000000000 +0200 +++ legacy_client/code/client/snd_openal.c 2008-10-10 14:58:56.000000000 +0200 @@ -384,7 +384,7 @@ numSfx = 0; // Load the default sound, and lock it - default_sfx = S_AL_BufferFind("sound/feedback/hit.wav"); + default_sfx = S_AL_BufferFind("sound/misc/silence.wav"); S_AL_BufferUse(default_sfx); knownSfx[default_sfx].isLocked = qtrue; Only in legacy_client/code/client: snd_openal.c~ diff -x .svn -ru ioq3_rev1108/code/q3_ui/ui_mods.c legacy_client/code/q3_ui/ui_mods.c --- ioq3_rev1108/code/q3_ui/ui_mods.c 2008-10-22 12:33:49.000000000 +0200 +++ legacy_client/code/q3_ui/ui_mods.c 2008-10-10 14:53:57.000000000 +0200 @@ -161,7 +161,7 @@ // always start off with baseq3 s_mods.list.numitems = 1; - s_mods.list.itemnames[0] = s_mods.descriptionList[0] = "Quake III Arena"; + s_mods.list.itemnames[0] = s_mods.descriptionList[0] = "OpenArena"; s_mods.fs_gameList[0] = ""; numdirs = trap_FS_GetFileList( "$modlist", "", dirlist, sizeof(dirlist) ); diff -x .svn -ru ioq3_rev1108/code/qcommon/common.c legacy_client/code/qcommon/common.c --- ioq3_rev1108/code/qcommon/common.c 2008-10-22 12:33:53.000000000 +0200 +++ legacy_client/code/qcommon/common.c 2008-10-22 12:31:47.000000000 +0200 @@ -32,13 +32,13 @@ #endif int demo_protocols[] = -{ 66, 67, 68, 0 }; +{ 66, 67, 68, 69, 70, 71, 0 }; #define MAX_NUM_ARGVS 50 #define MIN_DEDICATED_COMHUNKMEGS 1 #define MIN_COMHUNKMEGS 56 -#define DEF_COMHUNKMEGS 64 +#define DEF_COMHUNKMEGS 128 #define DEF_COMZONEMEGS 24 #define XSTRING(x) STRING(x) #define STRING(x) #x Only in legacy_client/code/qcommon: common.c~ diff -x .svn -ru ioq3_rev1108/code/qcommon/files.c legacy_client/code/qcommon/files.c --- ioq3_rev1108/code/qcommon/files.c 2008-10-22 12:33:53.000000000 +0200 +++ legacy_client/code/qcommon/files.c 2008-10-10 14:55:54.000000000 +0200 @@ -2900,6 +2900,7 @@ */ static void FS_CheckPak0( void ) { +/* searchpath_t *path; qboolean founddemo = qfalse; unsigned foundPak = 0; @@ -2972,6 +2973,7 @@ || !Q_stricmp( fs_gamedirvar->string, "missionpack" )) Com_Error(ERR_FATAL, "\n*** you need to install Quake III Arena in order to play ***"); } +*/ } /* @@ -3347,7 +3349,7 @@ // try to start up normally FS_Startup( BASEGAME ); - FS_CheckPak0( ); +// FS_CheckPak0( ); // if we can't find default.cfg, assume that the paths are // busted and error out now, rather than getting an unreadable Only in legacy_client/code/qcommon: files.c~ diff -x .svn -ru ioq3_rev1108/code/qcommon/q_shared.h legacy_client/code/qcommon/q_shared.h --- ioq3_rev1108/code/qcommon/q_shared.h 2008-10-22 12:33:53.000000000 +0200 +++ legacy_client/code/qcommon/q_shared.h 2008-10-10 15:44:01.000000000 +0200 @@ -26,17 +26,17 @@ // q_shared.h -- included first by ALL program modules. // A user mod should never modify this file -#define Q3_VERSION "ioQ3 1.33" +#define Q3_VERSION "ioQ3 1.33+oa" #ifndef SVN_VERSION #define SVN_VERSION Q3_VERSION #endif -#define CLIENT_WINDOW_TITLE "ioquake3" -#define CLIENT_WINDOW_ICON "ioq3" -#define CONSOLE_WINDOW_TITLE "ioquake3 console" -#define CONSOLE_WINDOW_ICON "ioq3 console" +#define CLIENT_WINDOW_TITLE "OpenArena" +#define CLIENT_WINDOW_ICON "OpenArena" +#define CONSOLE_WINDOW_TITLE "OpenArena console" +#define CONSOLE_WINDOW_ICON "OpenArena console" // 1.32 released 7-10-2002 - -#define BASEGAME "baseq3" + +#define BASEGAME "baseoa" #define MAX_TEAMNAME 32 Only in legacy_client/code/qcommon: q_shared.h~ diff -x .svn -ru ioq3_rev1108/code/qcommon/qcommon.h legacy_client/code/qcommon/qcommon.h --- ioq3_rev1108/code/qcommon/qcommon.h 2008-10-22 12:33:53.000000000 +0200 +++ legacy_client/code/qcommon/qcommon.h 2008-10-21 15:53:44.000000000 +0200 @@ -226,20 +226,20 @@ ============================================================== */ -#define PROTOCOL_VERSION 68 +#define PROTOCOL_VERSION 71 // 1.31 - 67 // maintain a list of compatible protocols for demo playing // NOTE: that stuff only works with two digits protocols extern int demo_protocols[]; -#define UPDATE_SERVER_NAME "update.quake3arena.com" +#define UPDATE_SERVER_NAME "" // override on command line, config files etc. #ifndef MASTER_SERVER_NAME -#define MASTER_SERVER_NAME "master.quake3arena.com" +#define MASTER_SERVER_NAME "dpmaster.deathmask.net" #endif #ifndef AUTHORIZE_SERVER_NAME -#define AUTHORIZE_SERVER_NAME "authorize.quake3arena.com" +#define AUTHORIZE_SERVER_NAME "" #endif #define PORT_MASTER 27950 Only in legacy_client/code/qcommon: qcommon.h~ diff -x .svn -ru ioq3_rev1108/code/server/sv_ccmds.c legacy_client/code/server/sv_ccmds.c --- ioq3_rev1108/code/server/sv_ccmds.c 2008-10-22 12:33:52.000000000 +0200 +++ legacy_client/code/server/sv_ccmds.c 2008-10-10 14:53:57.000000000 +0200 @@ -430,6 +430,12 @@ return; } + if(strlen(AUTHORIZE_SERVER_NAME) < 1) + { + Com_Printf("Ban function disabled due to lack of authorizing server.\n"); + return; + } + // look up the authorize server's IP if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); @@ -484,6 +490,12 @@ return; } + if(strlen(AUTHORIZE_SERVER_NAME) < 1) + { + Com_Printf("Ban function disabled due to lack of authorizing server.\n"); + return; + } + // look up the authorize server's IP if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); diff -x .svn -ru ioq3_rev1108/code/server/sv_client.c legacy_client/code/server/sv_client.c --- ioq3_rev1108/code/server/sv_client.c 2008-10-22 12:33:52.000000000 +0200 +++ legacy_client/code/server/sv_client.c 2008-10-10 14:53:57.000000000 +0200 @@ -88,6 +88,15 @@ return; } + // if there's no authorize server defined, just let them in + if(strlen(AUTHORIZE_SERVER_NAME) < 1) + { + Com_Printf("Not authorizing client due to lack of auth server\n"); + challenge->pingTime = svs.time; + NET_OutOfBandPrint( NS_SERVER, from, "challengeResponse %i", challenge->challenge ); + return; + } + // look up the authorize server's IP if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); Only in legacy_client/code/tools/asm: q3asm Only in legacy_client/code/tools/lcc: build-linux-i386 Only in legacy_client/code/tools: q3asm Only in legacy_client/code/tools: q3cpp Only in legacy_client/code/tools: q3lcc Only in legacy_client/code/tools: q3rcc diff -x .svn -ru ioq3_rev1108/code/ui/ui_main.c legacy_client/code/ui/ui_main.c --- ioq3_rev1108/code/ui/ui_main.c 2008-10-22 12:33:54.000000000 +0200 +++ legacy_client/code/ui/ui_main.c 2008-10-10 14:57:37.000000000 +0200 @@ -64,7 +64,7 @@ static const serverFilter_t serverFilters[] = { {"All", "" }, - {"Quake 3 Arena", "" }, + {"OpenArena", "" }, {"Team Arena", "missionpack" }, {"Rocket Arena", "arena" }, {"Alliance", "alliance20" }, Only in legacy_client/code/ui: ui_main.c~ diff -x .svn -ru ioq3_rev1108/code/unix/unix_shared.c legacy_client/code/unix/unix_shared.c --- ioq3_rev1108/code/unix/unix_shared.c 2008-10-22 12:33:50.000000000 +0200 +++ legacy_client/code/unix/unix_shared.c 2008-10-10 14:53:57.000000000 +0200 @@ -407,9 +407,9 @@ if ((p = getenv("HOME")) != NULL) { Q_strncpyz(homePath, p, sizeof(homePath)); #ifdef MACOS_X - Q_strcat(homePath, sizeof(homePath), "/Library/Application Support/Quake3"); + Q_strcat(homePath, sizeof(homePath), "/Library/Application Support/OpenArena"); #else - Q_strcat(homePath, sizeof(homePath), "/.q3a"); + Q_strcat(homePath, sizeof(homePath), "/.openarena"); #endif if (mkdir(homePath, 0777)) { if (errno != EEXIST) diff -x .svn -ru ioq3_rev1108/code/win32/win_shared.c legacy_client/code/win32/win_shared.c --- ioq3_rev1108/code/win32/win_shared.c 2008-10-22 12:33:51.000000000 +0200 +++ legacy_client/code/win32/win_shared.c 2008-10-10 14:53:57.000000000 +0200 @@ -330,7 +330,7 @@ return NULL; } Q_strncpyz( path, szPath, sizeof(path) ); - Q_strcat( path, sizeof(path), "\\Quake3" ); + Q_strcat( path, sizeof(path), "\\OpenArena" ); FreeLibrary(shfolder); if( !CreateDirectory( path, NULL ) ) {