diff -r 3c90a923f156 -r 560e2766c445 QTfrontend/team.cpp --- a/QTfrontend/team.cpp Sat Apr 10 20:48:09 2010 +0000 +++ b/QTfrontend/team.cpp Sat Apr 10 21:36:40 2010 +0000 @@ -22,6 +22,7 @@ #include #include #include +#include #include "team.h" #include "hwform.h" #include "pages.h" @@ -101,82 +102,26 @@ bool HWTeam::LoadFromFile() { - numHedgehogs=4; - QFile cfgfile(cfgdir->absolutePath() + "/" + TeamName + ".cfg"); - if (!cfgfile.open(QIODevice::ReadOnly)) return false; - QTextStream stream(&cfgfile); - stream.setCodec("UTF-8"); - QString str; - QString action; - - while (!stream.atEnd()) + QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + TeamName + ".ini", QSettings::IniFormat, 0); + teamfile.setIniCodec("UTF-8"); + TeamName = teamfile.value("Team/Name", TeamName).toString(); + Grave = teamfile.value("Team/Grave", "Statue").toString(); + Fort = teamfile.value("Team/Fort", "Plane").toString(); + Voicepack = teamfile.value("Team/Voicepack", "Default").toString(); + Flag = teamfile.value("Team/Flag", "hedgewars").toString(); + difficulty = teamfile.value("Team/Difficulty", 0).toInt(); + for(int i = 0; i < 8; i++) { - str = stream.readLine(); - if (str.startsWith(";")) continue; - /*if (str.startsWith("name team ")) - { - str.remove(0, 10); - TeamName = str; - } else*/ - if (str.startsWith("name hh")) - { - str.remove(0, 7); - long i = str.left(1).toLong(); - if ((i < 0) || (i > 7)) continue; - str.remove(0, 2); - HHName[i] = str; - } else - if (str.startsWith("hat")) - { - str.remove(0, 3); - long i = str.left(1).toLong(); - if ((i < 0) || (i > 7)) continue; - str.remove(0, 2); - HHHat[i] = str; -// Somehow claymore managed an empty hat. Until we figure out how, this should avoid a repeat - if (HHHat[i].length() == 0) HHHat[i] = "NoHat"; - } else - if (str.startsWith("grave ")) - { - str.remove(0, 6); - Grave = str; - } else - if (str.startsWith("fort ")) - { - str.remove(0, 5); - Fort = str; - } else - if (str.startsWith("flag ")) - { - str.remove(0, 5); - Flag = str; - } else - if (str.startsWith("voicepack ")) - { - str.remove(0, 10); - Voicepack = str; - } else - if (str.startsWith("bind ")) - { - str.remove(0, 5); - action = str.section(' ', 1); - str = str.section(' ', 0, 0); - str.truncate(15); - for (int i = 0; i < BINDS_NUMBER; i++) - if (action == binds[i].action) - { - binds[i].strbind = str; - break; - } - } else - if (str.startsWith("difficulty ")) - { - str.remove(0, 11); - difficulty=str.toUInt(); - if (difficulty>5) difficulty=0; // this shouldn't normally happen - } + QString hh = QString("Hedgehog%1/").arg(i); + HHName[i] = teamfile.value(hh + "Name", QString("hedgehog %1").arg(i)).toString(); + HHHat[i] = teamfile.value(hh + "Hat", "NoHat").toString(); + //teamfile.setValue(hh + "Kills", 0); + //teamfile.setValue(hh + "Deaths", 0); + //teamfile.setValue(hh + "Rounds", 0); + //teamfile.setValue(hh + "Suicides", 0); } - cfgfile.close(); + for(int i = 0; i < BINDS_NUMBER; i++) + binds[i].action = teamfile.value(QString("Binds/%1").arg(binds[i].strbind), cbinds[i].action).toString(); return true; } @@ -184,11 +129,8 @@ { if(m_isNetTeam) return false; - - QFile cfgfile(cfgdir->absolutePath() + "/" + TeamName + ".cfg"); + QFile cfgfile(cfgdir->absolutePath() + "/Teams/" + TeamName + ".ini"); cfgfile.remove(); - - return true; } @@ -196,31 +138,30 @@ { if (OldTeamName != TeamName) { - QFile cfgfile(cfgdir->absolutePath() + "/" + OldTeamName + ".cfg"); + QFile cfgfile(cfgdir->absolutePath() + "/Teams/" + OldTeamName + ".ini"); cfgfile.remove(); OldTeamName = TeamName; } - QFile cfgfile(cfgdir->absolutePath() + "/" + TeamName + ".cfg"); - if (!cfgfile.open(QIODevice::WriteOnly)) return false; - QTextStream stream(&cfgfile); - stream.setCodec("UTF-8"); - stream << "; Generated by Hedgewars, do not modify" << endl; - stream << "name team " << TeamName << endl; - for (int i = 0; i < 8; i++) + QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + TeamName + ".ini", QSettings::IniFormat, 0); + teamfile.setIniCodec("UTF-8"); + teamfile.setValue("Team/Name", TeamName); + teamfile.setValue("Team/Grave", Grave); + teamfile.setValue("Team/Fort", Fort); + teamfile.setValue("Team/Voicepack", Voicepack); + teamfile.setValue("Team/Flag", Flag); + teamfile.setValue("Team/Difficulty", difficulty); + for(int i = 0; i < 8; i++) { - stream << "name hh" << i << " " << HHName[i] << endl; - stream << "hat" << i << " " << HHHat[i] << endl; + QString hh = QString("Hedgehog%1/").arg(i); + teamfile.setValue(hh + "Name", HHName[i]); + teamfile.setValue(hh + "Hat", HHHat[i]); + teamfile.setValue(hh + "Kills", 0); + teamfile.setValue(hh + "Deaths", 0); + teamfile.setValue(hh + "Rounds", 0); + teamfile.setValue(hh + "Suicides", 0); } - stream << "grave " << Grave << endl; - stream << "fort " << Fort << endl; - stream << "voicepack " << Voicepack << endl; - stream << "flag " << Flag << endl; for(int i = 0; i < BINDS_NUMBER; i++) - { - stream << "bind " << binds[i].strbind << " " << binds[i].action << endl; - } - stream << "difficulty " << difficulty << endl; - cfgfile.close(); + teamfile.setValue(QString("Binds/%1").arg(binds[i].strbind), binds[i].action); return true; }