int SVT3_BotLibSetup() { if ( !bot_enable ) { return 0; } if ( GGameType & GAME_ET ) { static Cvar* bot_norcd; static Cvar* bot_frameroutingupdates; // RF, set RCD calculation status bot_norcd = Cvar_Get( "bot_norcd", "0", 0 ); BotLibVarSet( "bot_norcd", bot_norcd->string ); // RF, set AAS routing max per frame if ( SVET_GameIsSinglePlayer() ) { bot_frameroutingupdates = Cvar_Get( "bot_frameroutingupdates", "9999999", 0 ); } else { // more restrictive in multiplayer bot_frameroutingupdates = Cvar_Get( "bot_frameroutingupdates", "1000", 0 ); } BotLibVarSet( "bot_frameroutingupdates", bot_frameroutingupdates->string ); // added single player return BotLibSetup( ( SVET_GameIsSinglePlayer() || SVET_GameIsCoop() ) ); } else { return BotLibSetup( false ); } }
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int Export_BotLibUpdateEntity(int ent, bot_entitystate_t *state) { if (!BotLibSetup("BotUpdateEntity")) return BLERR_LIBRARYNOTSETUP; if (!ValidEntityNumber(ent, "BotUpdateEntity")) return BLERR_INVALIDENTITYNUMBER; return AAS_UpdateEntity(ent, state); } //end of the function Export_BotLibUpdateEntity
int Export_BotLibLoadMap( const char *mapname ) { #ifdef DEBUG int starttime = Sys_MilliSeconds(); #endif int errnum; if ( !BotLibSetup( "BotLoadMap" ) ) { return BLERR_LIBRARYNOTSETUP; } // #if defined RTCW_ET // if the mapname is NULL, then this is a restart if ( !mapname ) { // START Arnout changes, 29-08-2002. // don't init the heap if no aas loaded, causes "SV_Bot_HunkAlloc: Alloc with marks already set" if ( ( *aasworld ).loaded ) { AAS_InitAASLinkHeap(); AAS_EnableAllAreas(); } // END Arnout changes, 29-08-2002. ( *aasworld ).numframes = 0; memset( ( *aasworld ).arealinkedentities, 0, ( *aasworld ).numareas * sizeof( aas_link_t * ) ); memset( ( *aasworld ).entities, 0, ( *aasworld ).maxentities * sizeof( aas_entity_t ) ); return BLERR_NOERROR; } // #endif // RTCW_XX botimport.Print( PRT_MESSAGE, "------------ Map Loading ------------\n" ); //startup AAS for the current map, model and sound index errnum = AAS_LoadMap( mapname ); if ( errnum != BLERR_NOERROR ) { return errnum; } //initialize the items in the level BotInitLevelItems(); //be_ai_goal.h BotSetBrushModelTypes(); //be_ai_move.h // botimport.Print( PRT_MESSAGE, "-------------------------------------\n" ); #ifdef DEBUG botimport.Print( PRT_MESSAGE, "map loaded in %d msec\n", Sys_MilliSeconds() - starttime ); #endif // return BLERR_NOERROR; } //end of the function Export_BotLibLoadMap
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int Export_BotLibShutdown( void ) { static int recursive = 0; if ( !BotLibSetup( "BotLibShutdown" ) ) { return BLERR_LIBRARYNOTSETUP; } // if ( recursive ) { return BLERR_NOERROR; } recursive = 1; // shutdown all AI subsystems BotShutdownChatAI(); //be_ai_chat.c BotShutdownMoveAI(); //be_ai_move.c BotShutdownGoalAI(); //be_ai_goal.c BotShutdownWeaponAI(); //be_ai_weap.c BotShutdownWeights(); //be_ai_weight.c BotShutdownCharacters(); //be_ai_char.c // shutdown AAS AAS_Shutdown(); // shutdown bot elemantary actions EA_Shutdown(); // free all libvars LibVarDeAllocAll(); // remove all global defines from the pre compiler PC_RemoveAllGlobalDefines(); // shut down library log file Log_Shutdown(); // botlibsetup = qfalse; botlibglobals.botlibsetup = qfalse; recursive = 0; // print any files still open PC_CheckOpenSourceHandles(); // #ifdef _DEBUG Log_AlwaysOpen( "memory.log" ); PrintMemoryLabels(); Log_Shutdown(); #endif return BLERR_NOERROR; } //end of the function Export_BotLibShutdown
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int Export_BotLibShutdown(void) { if (!BotLibSetup("BotLibShutdown")) return BLERR_LIBRARYNOTSETUP; #ifndef DEMO //DumpFileCRCs(); #endif //DEMO // BotShutdownChatAI(); //be_ai_chat.c BotShutdownMoveAI(); //be_ai_move.c BotShutdownGoalAI(); //be_ai_goal.c BotShutdownWeaponAI(); //be_ai_weap.c BotShutdownWeights(); //be_ai_weight.c BotShutdownCharacters(); //be_ai_char.c //shud down aas AAS_Shutdown(); //shut down bot elemantary actions EA_Shutdown(); //free all libvars LibVarDeAllocAll(); //remove all global defines from the pre compiler PC_RemoveAllGlobalDefines(); //dump all allocated memory // DumpMemory(); #ifdef DEBUG PrintMemoryLabels(); #endif //shut down library log file Log_Shutdown(); // botlibsetup = qfalse; botlibglobals.botlibsetup = qfalse; // print any files still open PC_CheckOpenSourceHandles(); // return BLERR_NOERROR; } //end of the function Export_BotLibShutdown
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int Export_BotLibLoadMap(const char *mapname) { #ifdef DEBUG int starttime = Sys_MilliSeconds(); #endif int errnum; if (!BotLibSetup("BotLoadMap")) return BLERR_LIBRARYNOTSETUP; // botimport.Print(PRT_MESSAGE, "------------ Map Loading ------------\n"); //startup AAS for the current map, model and sound index errnum = AAS_LoadMap(mapname); if (errnum != BLERR_NOERROR) return errnum; //initialize the items in the level BotInitLevelItems(); //be_ai_goal.h BotSetBrushModelTypes(); //be_ai_move.h // botimport.Print(PRT_MESSAGE, "-------------------------------------\n"); #ifdef DEBUG botimport.Print(PRT_MESSAGE, "map loaded in %d msec\n", Sys_MilliSeconds() - starttime); #endif // return BLERR_NOERROR; } //end of the function Export_BotLibLoadMap
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int Export_BotLibStartFrame( float time ) { if ( !BotLibSetup( "BotStartFrame" ) ) { return BLERR_LIBRARYNOTSETUP; } return AAS_StartFrame( time ); } //end of the function Export_BotLibStartFrame