bool TrainerTeam::loadFromFile(const QString &path) { QFile file(path); if (!file.open(QFile::ReadOnly)) { return false; } QDomDocument document; QString msg; int line,col; if(!document.setContent(&file,&msg,&line,&col)) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team.")); return false; } QDomElement team = document.firstChildElement("Team"); if(team.isNull()) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team.")); return false; } int version = team.attribute("version", "0").toInt(); if (version > 1) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team, the client is outdated.")); return false; } int gen = team.attribute("gen", "4").toInt(); if (gen < GEN_MIN || gen > GEN_MAX) gen = GEN_MAX; this->team().setGen(gen); defaultTier() = team.attribute("defaultTier"); QDomElement trainer = team.firstChildElement("Trainer"); if(trainer.isNull()) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team.")); return false; } setTrainerNick(trainer.text()); setTrainerInfo(trainer.attribute("infoMsg")); setTrainerLose(trainer.attribute("loseMsg")); setTrainerWin(trainer.attribute("winMsg")); avatar() = trainer.attribute("avatar", 0).toInt(); QDomElement poke = team.firstChildElement("Pokemon"); int cpt = 0; while(!poke.isNull()) { this->team().poke(cpt).loadFromXml(poke, version); cpt++; poke = poke.nextSiblingElement("Pokemon"); } return true; }
bool Team::loadFromFile(const QString &path) { m_path = path; QFile file(path); if (!file.open(QFile::ReadOnly)) { return false; } QDomDocument document; QString msg; int line,col; if(!document.setContent(&file,&msg,&line,&col)) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team.")); return false; } QDomElement team = document.firstChildElement("Team"); if(team.isNull()) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team.")); return false; } int version = team.attribute("version", "0").toInt(); if (version > 1) { QMessageBox::information(0,QObject::tr("Load Team"),QObject::tr("Error while loading the team, the client is outdated.")); return false; } int gen = team.attribute("gen", QString::number(GenInfo::GenMax())).toInt(); if (gen < GEN_MIN || gen > GenInfo::GenMax()) gen = GenInfo::GenMax(); setGen(Pokemon::gen(team.attribute("gen", QString::number(GenInfo::GenMax())).toInt(), team.attribute("subgen", QString::number(GenInfo::NumberOfSubgens(team.attribute("gen", QString::number(GenInfo::GenMax())).toInt())-1)).toInt())); defaultTier() = team.attribute("defaultTier"); QDomElement poke = team.firstChildElement("Pokemon"); int cpt = 0; while(!poke.isNull()) { this->poke(cpt).loadFromXml(poke, version); cpt++; poke = poke.nextSiblingElement("Pokemon"); } return true; }
void Team::toXml(QDomDocument &document) const { const_cast<Team*>(this)->sanityCheck(); QDomElement Team = document.createElement("Team"); Team.setAttribute("gen", gen().num); Team.setAttribute("subgen", gen().subnum); Team.setAttribute("defaultTier", defaultTier()); Team.setAttribute("version", 1); document.appendChild(Team); for(int i = 0; i < 6; i++) { QDomElement pokemon = document.createElement("Pokemon"); Team.appendChild(poke(i).toXml(pokemon)); } }
void TrainerTeam::toXml(QDomDocument &document) const { QDomElement Team = document.createElement("Team"); Team.setAttribute("gen", team().gen()); Team.setAttribute("defaultTier", defaultTier()); Team.setAttribute("version", 1); document.appendChild(Team); QDomElement trainer = document.createElement("Trainer"); Team.appendChild(trainer); QDomText trainerName = document.createTextNode(trainerNick()); trainer.appendChild(trainerName); trainer.setAttribute("winMsg",trainerWin()); trainer.setAttribute("loseMsg",trainerLose()); trainer.setAttribute("infoMsg",trainerInfo()); trainer.setAttribute("avatar", avatar()); for(int i = 0; i < 6; i++) { QDomElement pokemon = document.createElement("Pokemon"); Team.appendChild(team().poke(i).toXml(pokemon)); } }