/* ============== BotInitLibrary ============== */ int BotInitLibrary(void) { char buf[144]; //set the maxclients and maxentities library variables before calling BotSetupLibrary Com_sprintf(buf, sizeof(buf), "%d", level.maxplayers); trap_BotLibVarSet("maxclients", buf); Com_sprintf(buf, sizeof(buf), "%d", MAX_GENTITIES); trap_BotLibVarSet("maxentities", buf); //bsp checksum trap_Cvar_VariableStringBuffer("sv_mapChecksum", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("sv_mapChecksum", buf); //maximum number of aas links trap_Cvar_VariableStringBuffer("max_aaslinks", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("max_aaslinks", buf); //bot developer mode and log file trap_BotLibVarSet("bot_developer", bot_developer.string); trap_Cvar_VariableStringBuffer("logfile", buf, sizeof(buf)); trap_BotLibVarSet("log", buf); //visualize jump pads trap_Cvar_VariableStringBuffer("bot_visualizejumppads", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("bot_visualizejumppads", buf); //forced clustering calculations trap_Cvar_VariableStringBuffer("bot_forceclustering", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forceclustering", buf); //forced reachability calculations trap_Cvar_VariableStringBuffer("bot_forcereachability", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forcereachability", buf); //force writing of AAS to file trap_Cvar_VariableStringBuffer("bot_forcewrite", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forcewrite", buf); //no AAS optimization trap_Cvar_VariableStringBuffer("bot_aasoptimize", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("aasoptimize", buf); // trap_Cvar_VariableStringBuffer("bot_saveroutingcache", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("saveroutingcache", buf); // #ifdef MISSIONPACK trap_PC_AddGlobalDefine("MISSIONPACK"); #endif //setup the bot library return trap_BotLibSetup(); }
/* ============== BotAISetup ============== */ int BotAISetup( int restart ) { //rww - new bot cvars.. trap_Cvar_Register(&bot_forcepowers, "bot_forcepowers", "1", CVAR_CHEAT); trap_Cvar_Register(&bot_forgimmick, "bot_forgimmick", "0", CVAR_CHEAT); trap_Cvar_Register(&bot_honorableduelacceptance, "bot_honorableduelacceptance", "0", CVAR_CHEAT); trap_Cvar_Register(&bot_pvstype, "bot_pvstype", "1", CVAR_CHEAT); #ifndef FINAL_BUILD trap_Cvar_Register(&bot_getinthecarrr, "bot_getinthecarrr", "0", 0); #endif #ifdef _DEBUG trap_Cvar_Register(&bot_nogoals, "bot_nogoals", "0", CVAR_CHEAT); trap_Cvar_Register(&bot_debugmessages, "bot_debugmessages", "0", CVAR_CHEAT); #endif trap_Cvar_Register(&bot_attachments, "bot_attachments", "1", 0); trap_Cvar_Register(&bot_camp, "bot_camp", "1", 0); trap_Cvar_Register(&bot_wp_info, "bot_wp_info", "1", 0); trap_Cvar_Register(&bot_wp_edit, "bot_wp_edit", "0", CVAR_CHEAT); trap_Cvar_Register(&bot_wp_clearweight, "bot_wp_clearweight", "1", 0); trap_Cvar_Register(&bot_wp_distconnect, "bot_wp_distconnect", "1", 0); trap_Cvar_Register(&bot_wp_visconnect, "bot_wp_visconnect", "1", 0); trap_Cvar_Update(&bot_forcepowers); //end rww //if the game is restarted for a tournament if (restart) { return qtrue; } //initialize the bot states memset( botstates, 0, sizeof(botstates) ); if (!trap_BotLibSetup()) { return qfalse; //wts?! } return qtrue; }
/* ============== BotInitLibrary ============== */ int BotInitLibrary( void ) { char buf[144]; //set the maxclients and maxentities library variables before calling BotSetupLibrary trap_Cvar_VariableStringBuffer( "sv_maxclients", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "8" ); } trap_BotLibVarSet( "maxclients", buf ); Com_sprintf( buf, sizeof( buf ), "%d", MAX_GENTITIES ); trap_BotLibVarSet( "maxentities", buf ); //bsp checksum trap_Cvar_VariableStringBuffer( "sv_mapChecksum", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "sv_mapChecksum", buf ); } //maximum number of aas links trap_Cvar_VariableStringBuffer( "max_aaslinks", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "max_aaslinks", buf ); } //maximum number of items in a level trap_Cvar_VariableStringBuffer( "max_levelitems", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "max_levelitems", buf ); } //automatically launch WinBSPC if AAS file not available trap_Cvar_VariableStringBuffer( "autolaunchbspc", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "autolaunchbspc", "1" ); } // trap_Cvar_VariableStringBuffer( "g_gametype", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "0" ); } trap_BotLibVarSet( "g_gametype", buf ); // // Rafael gameskill trap_Cvar_VariableStringBuffer( "g_gameskill", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "0" ); } trap_BotLibVarSet( "g_gamekill", buf ); // done // trap_Cvar_VariableStringBuffer( "bot_developer", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "0" ); } trap_BotLibVarSet( "bot_developer", buf ); //log file trap_Cvar_VariableStringBuffer( "logfile", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "0" ); } trap_BotLibVarSet( "log", buf ); //no chatting trap_Cvar_VariableStringBuffer( "bot_nochat", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "nochat", buf ); } //forced clustering calculations trap_Cvar_VariableStringBuffer( "forceclustering", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "forceclustering", buf ); } //forced reachability calculations trap_Cvar_VariableStringBuffer( "forcereachability", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "forcereachability", buf ); } //force writing of AAS to file trap_Cvar_VariableStringBuffer( "forcewrite", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "forcewrite", buf ); } //no AAS optimization trap_Cvar_VariableStringBuffer( "nooptimize", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "nooptimize", buf ); } //number of reachabilities to calculate each frame trap_Cvar_VariableStringBuffer( "framereachability", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "20" ); } trap_BotLibVarSet( "framereachability", buf ); // trap_Cvar_VariableStringBuffer( "bot_reloadcharacters", buf, sizeof( buf ) ); if ( !strlen( buf ) ) { strcpy( buf, "0" ); } trap_BotLibVarSet( "bot_reloadcharacters", buf ); //base directory trap_Cvar_VariableStringBuffer( "fs_basepath", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "basedir", buf ); } //game directory trap_Cvar_VariableStringBuffer( "fs_game", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "gamedir", buf ); } //home directory trap_Cvar_VariableStringBuffer( "fs_homepath", buf, sizeof( buf ) ); if ( strlen( buf ) ) { trap_BotLibVarSet( "homedir", buf ); } //setup the bot library return trap_BotLibSetup(); }
/* ============== BotInitLibrary ============== */ int BotInitLibrary(void) { char buf[144]; //set the maxclients and maxentities library variables before calling BotSetupLibrary trap_Cvar_VariableStringBuffer("sv_maxclients", buf, sizeof(buf)); if (!strlen(buf)) strcpy(buf, "8"); trap_BotLibVarSet("maxclients", buf); Com_sprintf(buf, sizeof(buf), "%d", MAX_GENTITIES); trap_BotLibVarSet("maxentities", buf); //bsp checksum trap_Cvar_VariableStringBuffer("sv_mapChecksum", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("sv_mapChecksum", buf); //maximum number of aas links trap_Cvar_VariableStringBuffer("max_aaslinks", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("max_aaslinks", buf); //maximum number of items in a level trap_Cvar_VariableStringBuffer("max_levelitems", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("max_levelitems", buf); //game type trap_Cvar_VariableStringBuffer("g_gametype", buf, sizeof(buf)); if (!strlen(buf)) strcpy(buf, "0"); trap_BotLibVarSet("g_gametype", buf); //bot developer mode and log file trap_BotLibVarSet("bot_developer", bot_developer.string); trap_Cvar_VariableStringBuffer("logfile", buf, sizeof(buf)); trap_BotLibVarSet("log", buf); //no chatting trap_Cvar_VariableStringBuffer("bot_nochat", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("nochat", buf); //visualize jump pads trap_Cvar_VariableStringBuffer("bot_visualizejumppads", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("bot_visualizejumppads", buf); //forced clustering calculations trap_Cvar_VariableStringBuffer("bot_forceclustering", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forceclustering", buf); //forced reachability calculations trap_Cvar_VariableStringBuffer("bot_forcereachability", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forcereachability", buf); //force writing of AAS to file trap_Cvar_VariableStringBuffer("bot_forcewrite", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("forcewrite", buf); //no AAS optimization trap_Cvar_VariableStringBuffer("bot_aasoptimize", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("aasoptimize", buf); // trap_Cvar_VariableStringBuffer("bot_saveroutingcache", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("saveroutingcache", buf); //reload instead of cache bot character files trap_Cvar_VariableStringBuffer("bot_reloadcharacters", buf, sizeof(buf)); if (!strlen(buf)) strcpy(buf, "0"); trap_BotLibVarSet("bot_reloadcharacters", buf); //base directory trap_Cvar_VariableStringBuffer("fs_basepath", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("basedir", buf); //game directory trap_Cvar_VariableStringBuffer("fs_game", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("gamedir", buf); //home directory trap_Cvar_VariableStringBuffer("fs_homepath", buf, sizeof(buf)); if (strlen(buf)) trap_BotLibVarSet("homedir", buf); // #if 1 //def MPACK trap_BotLibDefine("MISSIONPACK"); #endif //setup the bot library return trap_BotLibSetup(); }