summaryrefslogtreecommitdiffstats
path: root/pokemod/MapTrainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemod/MapTrainer.cpp')
-rw-r--r--pokemod/MapTrainer.cpp122
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)