Fix banfile writing to wrong game directory

This commit is contained in:
Thilo Schulz 2011-02-04 12:34:11 +00:00
parent 3148416c04
commit 0eb5d1720c
3 changed files with 14 additions and 13 deletions

View file

@ -3025,10 +3025,7 @@ static void FS_CheckPak0( void )
} }
} }
if(com_basegame->string[0] && if(!foundPak && !foundTA && Q_stricmp(com_basegame->string, BASEGAME))
Q_stricmp(com_basegame->string, BASEGAME) &&
!foundPak && !foundTA
)
{ {
Cvar_Set("com_standalone", "1"); Cvar_Set("com_standalone", "1");
} }
@ -3660,3 +3657,11 @@ void FS_FilenameCompletion( const char *dir, const char *ext,
} }
FS_FreeFileList( filenames ); FS_FreeFileList( filenames );
} }
const char *FS_GetCurrentGameDir(void)
{
if(fs_gamedirvar->string[0])
return fs_gamedirvar->string;
return com_basegame->string;
}

View file

@ -714,6 +714,8 @@ void FS_HomeRemove( const char *homePath );
void FS_FilenameCompletion( const char *dir, const char *ext, void FS_FilenameCompletion( const char *dir, const char *ext,
qboolean stripExt, void(*callback)(const char *s) ); qboolean stripExt, void(*callback)(const char *s) );
const char *FS_GetCurrentGameDir(void);
/* /*
============================================================== ==============================================================

View file

@ -549,10 +549,7 @@ static void SV_RehashBans_f(void)
if(!sv_banFile->string || !*sv_banFile->string) if(!sv_banFile->string || !*sv_banFile->string)
return; return;
if(!(curpos = Cvar_VariableString("fs_game")) || !*curpos) Com_sprintf(filepath, sizeof(filepath), "%s/%s", FS_GetCurrentGameDir(), sv_banFile->string);
curpos = BASEGAME;
Com_sprintf(filepath, sizeof(filepath), "%s/%s", curpos, sv_banFile->string);
if((filelen = FS_SV_FOpenFileRead(filepath, &readfrom)) >= 0) if((filelen = FS_SV_FOpenFileRead(filepath, &readfrom)) >= 0)
{ {
@ -626,15 +623,12 @@ static void SV_WriteBans(void)
{ {
int index; int index;
fileHandle_t writeto; fileHandle_t writeto;
char *curpos, filepath[MAX_QPATH]; char filepath[MAX_QPATH];
if(!sv_banFile->string || !*sv_banFile->string) if(!sv_banFile->string || !*sv_banFile->string)
return; return;
if(!(curpos = Cvar_VariableString("fs_game")) || !*curpos) Com_sprintf(filepath, sizeof(filepath), "%s/%s", FS_GetCurrentGameDir(), sv_banFile->string);
curpos = BASEGAME;
Com_sprintf(filepath, sizeof(filepath), "%s/%s", curpos, sv_banFile->string);
if((writeto = FS_SV_FOpenFileWrite(filepath))) if((writeto = FS_SV_FOpenFileWrite(filepath)))
{ {