|
|
|
@@ -128,12 +128,12 @@ static void G_LoadArenasFromFile( char *filename ) {
|
|
|
|
|
|
|
|
|
|
len = trap_FS_FOpenFile( filename, &f, FS_READ );
|
|
|
|
|
if ( !f ) {
|
|
|
|
|
trap_Printf( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
|
|
|
trap_Print( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if ( len >= MAX_ARENAS_TEXT ) {
|
|
|
|
|
trap_Printf( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i\n", filename, len, MAX_ARENAS_TEXT ) );
|
|
|
|
|
trap_FS_FCloseFile( f );
|
|
|
|
|
trap_Print( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i\n", filename, len, MAX_ARENAS_TEXT ) );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -177,7 +177,7 @@ static void G_LoadArenas( void ) {
|
|
|
|
|
strcat(filename, dirptr);
|
|
|
|
|
G_LoadArenasFromFile(filename);
|
|
|
|
|
}
|
|
|
|
|
trap_Printf( va( "%i arenas parsed\n", g_numArenas ) );
|
|
|
|
|
trap_Print( va( "%i arenas parsed\n", g_numArenas ) );
|
|
|
|
|
|
|
|
|
|
for( n = 0; n < g_numArenas; n++ ) {
|
|
|
|
|
Info_SetValueForKey( g_arenaInfos[n], "num", va( "%i", n ) );
|
|
|
|
@@ -644,7 +644,7 @@ static void G_AddBot( const char *name, float skill, const char *team, int delay
|
|
|
|
|
|
|
|
|
|
s = Info_ValueForKey(botinfo, "aifile");
|
|
|
|
|
if (!*s ) {
|
|
|
|
|
trap_Printf( S_COLOR_RED "Error: bot has no aifile specified\n" );
|
|
|
|
|
trap_Print( S_COLOR_RED "Error: bot has no aifile specified\n" );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -716,7 +716,7 @@ void Svcmd_AddBot_f( void ) {
|
|
|
|
|
// name
|
|
|
|
|
trap_Argv( 1, name, sizeof( name ) );
|
|
|
|
|
if ( !name[0] ) {
|
|
|
|
|
trap_Printf( "Usage: Addbot <botname> [skill 1-5] [team] [msec delay] [altname]\n" );
|
|
|
|
|
trap_Print( "Usage: Addbot <botname> [skill 1-5] [team] [msec delay] [altname]\n" );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -766,7 +766,7 @@ void Svcmd_BotList_f( void ) {
|
|
|
|
|
char model[MAX_TOKEN_CHARS];
|
|
|
|
|
char aifile[MAX_TOKEN_CHARS];
|
|
|
|
|
|
|
|
|
|
trap_Printf("^1name model aifile funname\n");
|
|
|
|
|
trap_Print("^1name model aifile funname\n");
|
|
|
|
|
for (i = 0; i < g_numBots; i++) {
|
|
|
|
|
strcpy(name, Info_ValueForKey( g_botInfos[i], "name" ));
|
|
|
|
|
if ( !*name ) {
|
|
|
|
@@ -784,7 +784,7 @@ void Svcmd_BotList_f( void ) {
|
|
|
|
|
if (!*aifile ) {
|
|
|
|
|
strcpy(aifile, "bots/default_c.c");
|
|
|
|
|
}
|
|
|
|
|
trap_Printf(va("%-16s %-16s %-20s %-20s\n", name, model, aifile, funname));
|
|
|
|
|
trap_Print(va("%-16s %-16s %-20s %-20s\n", name, model, aifile, funname));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -859,11 +859,11 @@ static void G_LoadBotsFromFile( char *filename ) {
|
|
|
|
|
|
|
|
|
|
len = trap_FS_FOpenFile( filename, &f, FS_READ );
|
|
|
|
|
if ( !f ) {
|
|
|
|
|
trap_Printf( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
|
|
|
trap_Print( va( S_COLOR_RED "file not found: %s\n", filename ) );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if ( len >= MAX_BOTS_TEXT ) {
|
|
|
|
|
trap_Printf( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i\n", filename, len, MAX_BOTS_TEXT ) );
|
|
|
|
|
trap_Print( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i\n", filename, len, MAX_BOTS_TEXT ) );
|
|
|
|
|
trap_FS_FCloseFile( f );
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@@ -912,7 +912,7 @@ static void G_LoadBots( void ) {
|
|
|
|
|
strcat(filename, dirptr);
|
|
|
|
|
G_LoadBotsFromFile(filename);
|
|
|
|
|
}
|
|
|
|
|
trap_Printf( va( "%i bots parsed\n", g_numBots ) );
|
|
|
|
|
trap_Print( va( "%i bots parsed\n", g_numBots ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -924,7 +924,7 @@ G_GetBotInfoByNumber
|
|
|
|
|
*/
|
|
|
|
|
char *G_GetBotInfoByNumber( int num ) {
|
|
|
|
|
if( num < 0 || num >= g_numBots ) {
|
|
|
|
|
trap_Printf( va( S_COLOR_RED "Invalid bot number: %i\n", num ) );
|
|
|
|
|
trap_Print( va( S_COLOR_RED "Invalid bot number: %i\n", num ) );
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
return g_botInfos[num];
|
|
|
|
|