diff options
Diffstat (limited to 'pokemod/MapTrainer.cpp')
| -rw-r--r-- | pokemod/MapTrainer.cpp | 122 |
1 files changed, 29 insertions, 93 deletions
diff --git a/pokemod/MapTrainer.cpp b/pokemod/MapTrainer.cpp index 5688c34f..ae9e5585 100644 --- a/pokemod/MapTrainer.cpp +++ b/pokemod/MapTrainer.cpp @@ -35,16 +35,13 @@ MapTrainer::MapTrainer(const Pokemod* par, const int _id) : Object("MapTrainer", par, _id), name(""), + trainerClass(-1), coordinate(0, 0), - skin(""), sight(0), direction(-1), numFight(1), - ai(""), appearFlag(0, 0), - overworldDialog(-1), - winDialog(-1), - loseDialog(-1), + dialog(-1), leadTeamMember(-1) { } @@ -76,9 +73,9 @@ bool MapTrainer::validate() const pokemod->validationMsg("Name is not defined"); valid = false; } - if (!QFile::exists(getSkin())) + if (pokemod->getTrainerIndex(trainerClass) == -1) { - pokemod->validationMsg("Skin could't be found"); + pokemod->validationMsg("Invalid trainer class"); valid = false; } if (Pokemod::D_End_None <= direction) @@ -91,24 +88,9 @@ bool MapTrainer::validate() const pokemod->validationMsg("Invalid number of Pokémon for a fight"); valid = false; } - if (!QFile::exists(getAI())) + if (pokemod->getDialogIndex(dialog) == -1) { - pokemod->validationMsg("AI file couldn\'t be found"); - valid = false; - } - if (pokemod->getDialogIndex(overworldDialog) == -1) - { - pokemod->validationMsg("Invalid overworld dialog"); - valid = false; - } - if (pokemod->getDialogIndex(winDialog) == -1) - { - pokemod->validationMsg("Invalid win dialog"); - valid = false; - } - if (pokemod->getDialogIndex(loseDialog) == -1) - { - pokemod->validationMsg("Invalid lose dialog"); + pokemod->validationMsg("Invalid dialog"); valid = false; } if (getTeamMemberCount() <= leadTeamMember) @@ -163,20 +145,17 @@ void MapTrainer::load(const QString& fname, const int _id) throw(Exception) int i; int j; ini.getValue("name", name); + ini.getValue("trainerClass", trainerClass); ini.getValue("coordinate-x", i, 0); ini.getValue("coordinate-y", j, 0); coordinate.set(i, j); - ini.getValue("skin", skin); ini.getValue("sight", sight, 0); ini.getValue("direction", direction); ini.getValue("numFight", numFight, 1); - ini.getValue("ai", ai); ini.getValue("appearFlag-f", i, 0); ini.getValue("appearFlag-s", j, 0); appearFlag.set(i, j); - ini.getValue("overworldDialog", overworldDialog); - ini.getValue("winDialog", winDialog); - ini.getValue("loseDialog", loseDialog); + ini.getValue("dialog", dialog); ini.getValue("leadTeamMember", leadTeamMember); QStringList path = pokemod->getPath().split('/'); path.removeLast(); @@ -194,19 +173,15 @@ void MapTrainer::save(const QString& map) const throw(Exception) Ini ini; ini.addField("id", id); ini.addField("name", name); - ini.addField("name", name); + ini.addField("trainerClass", trainerClass); ini.addField("coordinate-x", coordinate.getX()); ini.addField("coordinate-y", coordinate.getY()); - ini.addField("skin", skin); ini.addField("sight", sight); ini.addField("direction", direction); ini.addField("numFight", numFight); - ini.addField("ai", ai); ini.addField("appearFlag-f", appearFlag.getFlag()); ini.addField("appearFlag-s", appearFlag.getStatus()); - ini.addField("overworldDialog", overworldDialog); - ini.addField("winDialog", winDialog); - ini.addField("loseDialog", loseDialog); + ini.addField("dialog", dialog); ini.addField("leadTeamMember", leadTeamMember); ini.save(QString("%1/map/%2/trainer/%3/data.pini").arg(pokemod->getPath()).arg(map).arg(name)); for (QListIterator<MapTrainerTeamMember*> i(teamMembers); i.hasNext(); ) @@ -218,6 +193,13 @@ void MapTrainer::setName(const QString& n) name = n; } +void MapTrainer::setTrainerClass(const int t) throw(BoundsException) +{ + if (pokemod->getTrainerIndex(t) == -1) + throw(BoundsException(className, "trainerClass")); + trainerClass = t; +} + void MapTrainer::setCoordinate(const int x, const int y) { coordinate.set(x, y); @@ -233,13 +215,6 @@ void MapTrainer::setCoordinateY(const int y) coordinate.setY(y); } -void MapTrainer::setSkin(const QString& s) throw(OpenException) -{ - if (!QFile::exists(QString("%1/image/skin/%2.png").arg(pokemod->getPath()).arg(s))) - throw(OpenException(className, QString("%1/image/skin/%2.png").arg(pokemod->getPath()).arg(s))); - skin = s; -} - void MapTrainer::setSight(const int s) { sight = s; @@ -259,13 +234,6 @@ void MapTrainer::setNumFight(const int n) throw(BoundsException) numFight = n; } -void MapTrainer::setAI(const QString& a) throw(OpenException) -{ - if (!QFile::exists(QString("%1/ai/%2.pai").arg(pokemod->getPath()).arg(a))) - throw(OpenException(className, QString("%1/ai/%2.pai").arg(pokemod->getPath()).arg(a))); - ai = a; -} - void MapTrainer::setAppearFlag(const int f, const int s) { appearFlag.set(f, s); @@ -281,25 +249,11 @@ void MapTrainer::setAppearFlagStatus(const int s) appearFlag.setStatus(s); } -void MapTrainer::setOverworldDialog(const int o) throw(BoundsException) +void MapTrainer::setDialog(const int d) throw(BoundsException) { - if (pokemod->getDialogIndex(o) == -1) - throw(BoundsException(className, "overworldDialog")); - overworldDialog = o; -} - -void MapTrainer::setWinDialog(const int w) throw(BoundsException) -{ - if (pokemod->getDialogIndex(w) == -1) - throw(BoundsException(className, "winDialog")); - winDialog = w; -} - -void MapTrainer::setLoseDialog(const int l) throw(BoundsException) -{ - if (pokemod->getDialogIndex(l) == -1) - throw(BoundsException(className, "loseDialog")); - loseDialog = l; + if (pokemod->getDialogIndex(d) == -1) + throw(BoundsException(className, "dialog")); + dialog = d; } void MapTrainer::setLeadTeamMember(const int l) throw(BoundsException) @@ -314,14 +268,14 @@ QString MapTrainer::getName() const return name; } -Point MapTrainer::getCoordinate() const +int MapTrainer::getTrainerClass() const { - return coordinate; + return trainerClass; } -QString MapTrainer::getSkin() const +Point MapTrainer::getCoordinate() const { - return QString("%1/image/skin/%2.png").arg(pokemod->getPath()).arg(skin); + return coordinate; } int MapTrainer::getSight() const @@ -339,29 +293,14 @@ int MapTrainer::getNumFight() const return numFight; } -QString MapTrainer::getAI() const -{ - return QString("%1/ai/%2.pai").arg(pokemod->getPath()).arg(ai); -} - Flag MapTrainer::getAppearFlag() const { return appearFlag; } -int MapTrainer::getOverworldDialog() const -{ - return overworldDialog; -} - -int MapTrainer::getWinDialog() const -{ - return winDialog; -} - -int MapTrainer::getLoseDialog() const +int MapTrainer::getDialog() const { - return loseDialog; + return dialog; } int MapTrainer::getLeadTeamMember() const @@ -439,16 +378,13 @@ MapTrainer& MapTrainer::operator=(const MapTrainer& rhs) if (this == &rhs) return *this; name = rhs.name; + trainerClass = rhs.trainerClass; coordinate = rhs.coordinate; - skin = rhs.skin; sight = rhs.sight; direction = rhs.direction; numFight = rhs.numFight; - ai = rhs.ai; appearFlag = rhs.appearFlag; - overworldDialog = rhs.overworldDialog; - winDialog = rhs.winDialog; - loseDialog = rhs.loseDialog; + dialog = rhs.dialog; leadTeamMember = rhs.leadTeamMember; teamMembers.clear(); for (int i = 0; i < rhs.getTeamMemberCount(); ++i) |
