Esempio n. 1
0
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());
        }
    }
}
Esempio n. 2
0
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();
  }