diff options
Diffstat (limited to 'sigmod/MapTrainer.cpp')
| -rw-r--r-- | sigmod/MapTrainer.cpp | 103 |
1 files changed, 31 insertions, 72 deletions
diff --git a/sigmod/MapTrainer.cpp b/sigmod/MapTrainer.cpp index b4b5fa33..65439946 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,82 +102,40 @@ 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_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; -} + { + EBOUNDS_IDX(leadTeamMember); + return false; + } +CHECK_END() const Sigmod::MapTrainerTeamMember* Sigmod::MapTrainer::teamMember(const int index) const { |
