summaryrefslogtreecommitdiffstats
path: root/sigmod/MapTrainer.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-12-29 12:09:27 -0500
committerBen Boeckel <MathStuf@gmail.com>2008-12-29 12:09:27 -0500
commit8e278873d4bd35a7cd7f3b6d9d7852fa422370b8 (patch)
tree9e97b71d30779c07c79ca166e1d704a3de4d5e4f /sigmod/MapTrainer.cpp
parente801b73a2f9cb845913cf546002c8f50eefc473c (diff)
Merged CHECK macro branch
Diffstat (limited to 'sigmod/MapTrainer.cpp')
-rw-r--r--sigmod/MapTrainer.cpp185
1 files changed, 32 insertions, 153 deletions
diff --git a/sigmod/MapTrainer.cpp b/sigmod/MapTrainer.cpp
index b4b5fa33..516af27c 100644
--- a/sigmod/MapTrainer.cpp
+++ b/sigmod/MapTrainer.cpp
@@ -68,10 +68,10 @@ void Sigmod::MapTrainer::validate()
TEST_BEGIN();
if (m_name.isEmpty())
emit(error("Name is empty"));
- TEST(setTrainerClass, trainerClass);
- TEST(setCoordinate, coordinate);
- TEST(setNumberFight, numberFight);
- TEST(setLeadTeamMember, leadTeamMember);
+ TEST(trainerClass);
+ TEST(coordinate);
+ TEST(numberFight);
+ TEST(leadTeamMember);
if (!teamMemberCount())
emit(error("There are no team members"));
QSet<int> idChecker;
@@ -89,6 +89,7 @@ void Sigmod::MapTrainer::load(const QDomElement& xml)
LOAD(coordinate);
LOAD(numberFight);
LOAD(script);
+ LOAD(leadTeamMember);
LOAD_SUB(newTeamMember, MapTrainerTeamMember);
LOAD(leadTeamMember);
}
@@ -101,164 +102,43 @@ QDomElement Sigmod::MapTrainer::save() const
SAVE(coordinate);
SAVE(numberFight);
SAVE(script);
+ SAVE(leadTeamMember);
SAVE_SUB(MapTrainerTeamMember, teamMembers);
return xml;
}
-void Sigmod::MapTrainer::setName(const QString& name)
-{
- CHECK(name);
-}
+SETTER(MapTrainer, QString&, Name, name)
+SETTER(MapTrainer, int, TrainerClass, trainerClass)
+SETTER(MapTrainer, QPoint&, Coordinate, coordinate)
+SETTER(MapTrainer, int, NumberFight, numberFight)
+SETTER(MapTrainer, Sigcore::Script&, Script, script)
+SETTER(MapTrainer, int, LeadTeamMember, leadTeamMember)
-void Sigmod::MapTrainer::setTrainerClass(const int trainerClass)
-{
- if (!sigmod()->trainerById(trainerClass))
- emit(error(bounds("trainerClass", trainerClass)));
- else
- CHECK(trainerClass);
-}
+GETTER(MapTrainer, QString, name)
+GETTER(MapTrainer, int, trainerClass)
+GETTER(MapTrainer, QPoint, coordinate)
+GETTER(MapTrainer, int, numberFight)
+GETTER(MapTrainer, Sigcore::Script, script)
+GETTER(MapTrainer, int, leadTeamMember)
-void Sigmod::MapTrainer::setCoordinate(const QPoint& coordinate)
-{
+CHECK(MapTrainer, QString&, name)
+CHECK_INDEX(MapTrainer, int, trainerClass, sigmod(), trainer)
+CHECK_BEGIN(MapTrainer, QPoint&, coordinate)
const Map* map = qobject_cast<const Map*>(parent());
- if ((coordinate.x() < 0) || (coordinate.y() < 0) || (map->width() <= coordinate.x()) || (map->height() <= coordinate.y()))
- emit(error(bounds("coordinate", QPoint(0, 0), QPoint(map->width(), map->height()), coordinate)));
- else
- CHECK(coordinate);
-}
-
-void Sigmod::MapTrainer::setNumberFight(const int numberFight)
-{
- if ((numberFight <= 0) || (sigmod()->rules()->maxFight() < numberFight))
- emit(error(bounds("numberFight", 1, sigmod()->rules()->maxFight(), numberFight)));
- else
- CHECK(numberFight);
-}
-
-void Sigmod::MapTrainer::setScript(const Sigcore::Script& script)
-{
- CHECK(script);
-}
-
-void Sigmod::MapTrainer::setLeadTeamMember(const int leadTeamMember)
-{
+ TBOUNDS_MOD(coordinate_x, 0, map->width() - 1, coordinate.x())
+ TBOUNDS_MOD(coordinate_y, 0, map->height() - 1, coordinate.y())
+CHECK_END()
+CHECK_BOUNDS(MapTrainer, int, numberFight, 1, sigmod()->rules()->maxFight())
+CHECK(MapTrainer, Sigcore::Script&, script)
+CHECK_BEGIN(MapTrainer, int, leadTeamMember)
if (!teamMemberById(leadTeamMember))
- emit(error(bounds("leadTeamMember", leadTeamMember)));
- else
- CHECK(leadTeamMember);
-}
-
-QString Sigmod::MapTrainer::name() const
-{
- return m_name;
-}
-
-int Sigmod::MapTrainer::trainerClass() const
-{
- return m_trainerClass;
-}
-
-QPoint Sigmod::MapTrainer::coordinate() const
-{
- return m_coordinate;
-}
-
-int Sigmod::MapTrainer::numberFight() const
-{
- return m_numberFight;
-}
-
-Sigcore::Script Sigmod::MapTrainer::script() const
-{
- return m_script;
-}
-
-int Sigmod::MapTrainer::leadTeamMember() const
-{
- return m_leadTeamMember;
-}
-
-const Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::teamMember(const int index) const
-{
- if (index < teamMemberCount())
- return m_teamMembers.at(index);
- return NULL;
-}
-
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::teamMember(const int index)
-{
- if (index < teamMemberCount())
- return m_teamMembers[index];
- return NULL;
-}
-
-const Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::teamMemberById(const int id) const
-{
- return teamMember(teamMemberIndex(id));
-}
-
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::teamMemberById(const int id)
-{
- return teamMember(teamMemberIndex(id));
-}
-
-int Sigmod::MapTrainer::teamMemberIndex(const int id) const
-{
- for (int i = 0; i < teamMemberCount(); ++i)
{
- if (m_teamMembers[i]->id() == id)
- return i;
+ EBOUNDS_IDX(leadTeamMember);
+ return false;
}
- return INT_MAX;
-}
-
-int Sigmod::MapTrainer::teamMemberCount() const
-{
- return m_teamMembers.size();
-}
+CHECK_END()
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::newTeamMember()
-{
- return newTeamMember(new MapTrainerTeamMember(this, newTeamMemberId()));
-}
-
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::newTeamMember(const QDomElement& xml)
-{
- return newTeamMember(new MapTrainerTeamMember(xml, this, newTeamMemberId()));
-}
-
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::newTeamMember(const MapTrainerTeamMember& teamMember)
-{
- return newTeamMember(new MapTrainerTeamMember(teamMember, this, newTeamMemberId()));
-}
-
-Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::newTeamMember(MapTrainerTeamMember* teamMember)
-{
- m_teamMembers.append(teamMember);
- return teamMember;
-}
-
-void Sigmod::MapTrainer::deleteTeamMember(const int index)
-{
- if (index < teamMemberCount())
- {
- delete m_teamMembers[index];
- m_teamMembers.removeAt(index);
- }
-}
-
-void Sigmod::MapTrainer::deleteTeamMemberById(const int id)
-{
- deleteTeamMember(teamMemberIndex(id));
-}
-
-int Sigmod::MapTrainer::newTeamMemberId() const
-{
- int i = 0;
- while ((i < teamMemberCount()) && (teamMemberIndex(i) != INT_MAX))
- ++i;
- return i;
-}
+SUBCLASS(MapTrainer, TeamMember, teamMember, teamMembers)
Sigmod::MapTrainer& Sigmod::MapTrainer::operator=(const MapTrainer& rhs)
{
@@ -277,6 +157,5 @@ Sigmod::MapTrainer& Sigmod::MapTrainer::operator=(const MapTrainer& rhs)
void Sigmod::MapTrainer::clear()
{
- while (teamMemberCount())
- deleteTeamMember(0);
+ SUBCLASS_CLEAR(teamMembers);
}