void MTGAllCards::loadFolder(const string& infolder, const string& filename ) { string folder = infolder; // Make sure the base paths finish with a '/' or a '\' if (! folder.empty()) { string::iterator c = folder.end();//userPath.at(userPath.size()-1); c--; if ((*c != '/') && (*c != '\\')) folder += '/'; } vector<string> files = JFileSystem::GetInstance()->scanfolder(folder); if (!files.size()) { return; } for (size_t i = 0; i < files.size(); ++i) { string afile = folder; afile.append(files[i]); if(files[i] == "." || files[i] == "..") continue; if(JFileSystem::GetInstance()->DirExists(afile)) loadFolder(afile, filename); if (!JFileSystem::GetInstance()->FileExists(afile)) continue; if(filename.size()) { if(filename == files[i]) { load(afile.c_str(), folder.c_str()); } } else { load(afile.c_str()); } } }
void TLevelSet::loadFolder(TIStream &is, TFilePath folder) { std::string s; is.getTagParam("type", s); if (s == "default") setDefaultFolder(folder); while (!is.eos()) { std::string tagName; is.matchTag(tagName); if (tagName == "levels") { while (!is.eos()) { TPersist *p = 0; is >> p; TXshLevel *xshLevel = dynamic_cast<TXshLevel *>(p); if (xshLevel && !xshLevel->getChildLevel()) moveLevelToFolder(folder, xshLevel); } } else if (tagName == "folder") { is.getTagParam("name", s); TFilePath child = createFolder(folder, ::to_wstring(s)); loadFolder(is, child); } else throw TException("expected <levels> or <folder>"); is.closeChild(); }