void ModelContainerView::showMap(MapTree* mt, std::string dirFileName) { if(mt->hasDirFile(dirFileName)) { FilesInDir filesInDir = mt->getDirFiles(dirFileName); if(filesInDir.getRefCount() == 1) { Array<std::string> fileNames = filesInDir.getFiles(); for(int i=0; i<fileNames.size(); ++i) { std::string name = fileNames[i]; ManagedModelContainer* mc = mt->getModelContainer(name); //if(mc->getNSubModel() == 791) { addModelContainer(name, mc); //} } } } }
void ModelContainerView::parseVMap (MapTree* mt, std::string dirFileName) { printf("[VMAP]Parsing: %s\n", dirFileName.c_str()); if (mt->hasDirFile (dirFileName)) { FilesInDir filesInDir = mt->getDirFiles (dirFileName); if (filesInDir.getRefCount () == 1) { Array<std::string> fileNames = filesInDir.getFiles (); for (int i = 0; i < fileNames.size (); ++i) { std::string name = fileNames[i]; ManagedModelContainer* mc = mt->getModelContainer (name); addModelContainer (name, mc ); } } } }
bool MapTree::loadMap(const std::string& pDirFileName, unsigned int pMapTileIdent) { bool result = true; if(!hasDirFile(pDirFileName)) { FilesInDir filesInDir; result = false; std::string fb = iBasePath + pDirFileName; FILE* df = fopen(fb.c_str(), "rb"); if(df) { char lineBuffer[FILENAMEBUFFER_SIZE]; result = true; bool newModelLoaded = false; while(result && (fgets(lineBuffer, FILENAMEBUFFER_SIZE-1, df) != 0)) { std::string name = std::string(lineBuffer); chomp(name); if(name.length() >1) { filesInDir.append(name); ManagedModelContainer *mc; if(!isAlreadyLoaded(name)) { std::string fname = iBasePath; fname.append(name); mc = new ManagedModelContainer(); result = mc->readFile(fname.c_str()); if(result) { addModelContainer(name, mc); newModelLoaded = true; } } else { mc = getModelContainer(name); } mc->incRefCount(); } } if(result && newModelLoaded) { iTree->balance(); } if(result && ferror(df) != 0) { result = false; } fclose(df); if(result) { filesInDir.incRefCount(); addDirFile(pDirFileName, filesInDir); setLoadedMapTile(pMapTileIdent); } } } else { // Already loaded, so just inc. the ref count if mapTileIdent is new if(!containsLoadedMapTile(pMapTileIdent)) { setLoadedMapTile(pMapTileIdent); FilesInDir& filesInDir = getDirFiles(pDirFileName); filesInDir.incRefCount(); } } return (result); }