void AAS_CalcReachAndClusters( struct quakefile_s *qf ) { float time; Log_Print( "loading collision map...\n" ); // if ( !qf->pakfile[0] ) { strcpy( qf->pakfile, qf->filename ); } //load the map CM_LoadMap( (char *) qf, qfalse, &( *aasworld ).bspchecksum ); //get a handle to the world model worldmodel = CM_InlineModel( 0 ); // 0 = world, 1 + are bmodels //initialize bot import structure AAS_InitBotImport(); //load the BSP entity string AAS_LoadBSPFile(); //init physics settings AAS_InitSettings(); //initialize AAS link heap AAS_InitAASLinkHeap(); //initialize the AAS linked entities for the new map AAS_InitAASLinkedEntities(); //reset all reachabilities and clusters ( *aasworld ).reachabilitysize = 0; ( *aasworld ).numclusters = 0; //set all view portals as cluster portals in case we re-calculate the reachabilities and clusters (with -reach) AAS_SetViewPortalsAsClusterPortals(); //calculate reachabilities AAS_InitReachability(); time = 0; while ( AAS_ContinueInitReachability( time ) ) time++; //calculate clusters AAS_InitClustering(); } //end of the function AAS_CalcReachAndClusters
//=========================================================================== // basedir = Quake2 console basedir // gamedir = Quake2 console gamedir // mapname = name of the map without extension (.bsp) // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== int AAS_LoadFiles(const char *mapname) { int errnum; char aasfile[MAX_PATH]; // char bspfile[MAX_PATH]; strcpy((*aasworld).mapname, mapname); //NOTE: first reset the entity links into the AAS areas and BSP leaves // the AAS link heap and BSP link heap are reset after respectively the // AAS file and BSP file are loaded AAS_ResetEntityLinks(); // // load bsp info AAS_LoadBSPFile(); //load the aas file Com_sprintf(aasfile, MAX_PATH, "maps/%s.aas", mapname); errnum = AAS_LoadAASFile(aasfile); if(errnum != BLERR_NOERROR) { return errnum; } botimport.Print(PRT_MESSAGE, "loaded %s\n", aasfile); strncpy((*aasworld).filename, aasfile, MAX_PATH); return BLERR_NOERROR; } //end of the function AAS_LoadFiles