One more fix to game.c

git-svn-id: http://svn.code.sf.net/p/xqf/code/trunk@32 d2ac09be-c843-0410-8b1f-f8a84130e0ec
This commit is contained in:
Bill Adams 2001-01-08 05:04:49 +00:00 committed by evilbill
parent a5fc3a3a7a
commit f94fa9df8d

View File

@ -1529,7 +1529,7 @@ static int q3_exec (const struct condef *con, int forkit) {
struct game *g = &games[con->s->type]; struct game *g = &games[con->s->type];
int retval; int retval;
int is_so_mod = 0;
cmd = strdup_strip (g->cmd); cmd = strdup_strip (g->cmd);
/* /*
@ -1606,9 +1606,14 @@ static int q3_exec (const struct condef *con, int forkit) {
put fs_game on the command line so that the mod is loaded when put fs_game on the command line so that the mod is loaded when
we connect. */ we connect. */
if( fs_game = find_server_setting_for_key ("fs_game", con->s->info)){ if( fs_game = find_server_setting_for_key ("fs_game", con->s->info)){
/* This will rarely (never?) be called. */
argv[argi++] = "+set fs_game"; argv[argi++] = "+set fs_game";
argv[argi++] = fs_game; argv[argi++] = fs_game;
if (strcmp( fs_game, "arena")) is_so_mod = 1;
} else if( fs_game = find_server_setting_for_key ("gamename", con->s->info)){ } else if( fs_game = find_server_setting_for_key ("gamename", con->s->info)){
if (strcmp( fs_game, "arena")) is_so_mod = 1;
argv[argi++] = "+set fs_game"; argv[argi++] = "+set fs_game";
argv[argi++] = fs_game; argv[argi++] = fs_game;
} }
@ -1617,13 +1622,10 @@ static int q3_exec (const struct condef *con, int forkit) {
BAD! special case for rocket arena 3 aka "arena", it needs sv_pure 0 BAD! special case for rocket arena 3 aka "arena", it needs sv_pure 0
to run properly. This is for at least 1.27g. to run properly. This is for at least 1.27g.
*/ */
if (
(strcmp( find_server_setting_for_key ("gamename", con->s->info), "arena" ) == 0) || if (is_so_mod){
(strcmp( find_server_setting_for_key ("fs_game", con->s->info), "arena" ) == 0)
){
argv[argi++] = "+set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0"; argv[argi++] = "+set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0";
} }
argv[argi] = NULL; argv[argi] = NULL;