diff options
Diffstat (limited to 'sigmod/MapTrainerTeamMember.cpp')
| -rw-r--r-- | sigmod/MapTrainerTeamMember.cpp | 149 |
1 files changed, 28 insertions, 121 deletions
diff --git a/sigmod/MapTrainerTeamMember.cpp b/sigmod/MapTrainerTeamMember.cpp index dfeb84f8..29238063 100644 --- a/sigmod/MapTrainerTeamMember.cpp +++ b/sigmod/MapTrainerTeamMember.cpp @@ -59,20 +59,20 @@ Sigmod::MapTrainerTeamMember::MapTrainerTeamMember(const QDomElement& xml, const void Sigmod::MapTrainerTeamMember::validate() { TEST_BEGIN(); - TEST(setSpecies, species); - TEST(setLevel, level); + TEST(species); + TEST(level); if (sigmod()->rules()->maxAbilities() < m_ability.size()) emit(error("Too many abilities")); - TEST_LIST(setAbility, ability); + TEST_LIST(ability); if (sigmod()->rules()->maxHeldItems() < m_item.size()) emit(error("Too many held items")); - TEST_LIST(setItem, item); + TEST_LIST(item); if (sigmod()->rules()->maxMoves() < m_move.size()) emit(error("Too many moves")); - TEST_LIST(setMove, move); + TEST_LIST(move); if (sigmod()->rules()->maxNatures() < m_nature.size()) emit(error("Too many natures")); - TEST_LIST(setNature, nature); + TEST_LIST(nature); TEST_END(); } @@ -99,48 +99,13 @@ QDomElement Sigmod::MapTrainerTeamMember::save() const return xml; } -void Sigmod::MapTrainerTeamMember::setSpecies(const int species) -{ - if (!sigmod()->speciesById(species)) - emit(error(bounds("species", species))); - else - CHECK(species); -} - -void Sigmod::MapTrainerTeamMember::setLevel(const int level) -{ - if ((level <= 0) || (sigmod()->rules()->maxLevel() < level)) - emit(error(bounds("level", 0, sigmod()->rules()->maxLevel(), level))); - else - CHECK(level); -} - -void Sigmod::MapTrainerTeamMember::setAbility(const int ability, const bool state) -{ - if (!sigmod()->abilityById(ability)) - emit(error(bounds("ability", ability))); - else if (state && !m_ability.contains(ability)) - { - if (m_ability.size() < sigmod()->rules()->maxAbilities()) - { - m_ability.append(ability); - emit(changed()); - } - else - emit(error("Cannot have any more abilities")); - } - else if (m_ability.contains(ability)) - { - m_ability.removeAll(ability); - emit(changed()); - } -} +SETTER(MapTrainerTeamMember, int, Species, species) +SETTER(MapTrainerTeamMember, int, Level, level) +SETTER_LIST_LIMIT(MapTrainerTeamMember, Ability, ability, sigmod()->rules()->maxAbilities(), "Cannot have anymore abilities") void Sigmod::MapTrainerTeamMember::setItem(const int item, const bool state) { - if (!sigmod()->itemById(item)) - emit(error(bounds("item", item))); - else if (state && !m_item.contains(item)) + if (itemCheck(item) && state && !m_item.contains(item)) { if (m_item.size() < sigmod()->rules()->maxHeldItems()) { @@ -150,10 +115,10 @@ void Sigmod::MapTrainerTeamMember::setItem(const int item, const bool state) emit(changed()); } else - emit(error("Cannot carry that much weight")); + ERROR("Cannot carry that much weight"); } else - emit(error("Cannot hold any more items")); + ERROR("Cannot hold any more items"); } else if (m_item.contains(item)) { @@ -164,9 +129,7 @@ void Sigmod::MapTrainerTeamMember::setItem(const int item, const bool state) void Sigmod::MapTrainerTeamMember::setMove(const int move, const bool state) { - if (!sigmod()->moveById(move)) - emit(error(bounds("move", move))); - else if (state && !m_move.contains(move)) + if (moveCheck(move) && state && !m_move.contains(move)) { const Species* species = sigmod()->speciesById(move); for (int i = 0; i < species->moveCount(); ++i) @@ -178,13 +141,12 @@ void Sigmod::MapTrainerTeamMember::setMove(const int move, const bool state) { m_move.append(move); emit(changed()); - return; } else - emit(error("Cannot know any more moves")); + ERROR("Cannot know any more moves"); } } - emit(error("Cannot learn the move")); + ERROR("Cannot learn the move"); } else if (m_move.contains(move)) { @@ -193,76 +155,21 @@ void Sigmod::MapTrainerTeamMember::setMove(const int move, const bool state) } } -void Sigmod::MapTrainerTeamMember::setNature(const int nature, const bool state) -{ - if (!sigmod()->natureById(nature)) - emit(error(bounds("nature", nature))); - else if (state && !m_nature.contains(nature)) - { - if (m_nature.size() < sigmod()->rules()->maxNatures()) - { - m_nature.append(nature); - emit(changed()); - } - else - emit(error("Cannot have any more natures")); - } - else if (m_nature.contains(nature)) - { - m_nature.removeAll(nature); - emit(changed()); - } -} - -int Sigmod::MapTrainerTeamMember::species() const -{ - return m_species; -} - -int Sigmod::MapTrainerTeamMember::level() const -{ - return m_level; -} - -bool Sigmod::MapTrainerTeamMember::ability(const int ability) const -{ - return m_ability.contains(ability); -} +SETTER_LIST_LIMIT(MapTrainerTeamMember, Nature, nature, sigmod()->rules()->maxNatures(), "Cannot have anymore natures") -QList<int> Sigmod::MapTrainerTeamMember::abilities() const -{ - return m_ability; -} +GETTER(MapTrainerTeamMember, int, species) +GETTER(MapTrainerTeamMember, int, level) +GETTER_LIST(MapTrainerTeamMember, ability) +GETTER_LIST(MapTrainerTeamMember, item) +GETTER_LIST(MapTrainerTeamMember, move) +GETTER_LIST(MapTrainerTeamMember, nature) -bool Sigmod::MapTrainerTeamMember::item(const int item) const -{ - return m_item.contains(item); -} - -QList<int> Sigmod::MapTrainerTeamMember::items() const -{ - return m_item; -} - -bool Sigmod::MapTrainerTeamMember::move(const int move) const -{ - return m_move.contains(move); -} - -QList<int> Sigmod::MapTrainerTeamMember::moves() const -{ - return m_move; -} - -bool Sigmod::MapTrainerTeamMember::nature(const int nature) const -{ - return m_nature.contains(nature); -} - -QList<int> Sigmod::MapTrainerTeamMember::natures() const -{ - return m_nature; -} +CHECK_INDEX(MapTrainerTeamMember, int, species, sigmod(), species) +CHECK_BOUNDS(MapTrainerTeamMember, int, level, 1, sigmod()->rules()->maxLevel()) +CHECK_INDEX(MapTrainerTeamMember, int, ability, sigmod(), ability) +CHECK_INDEX(MapTrainerTeamMember, int, item, sigmod(), item) +CHECK_INDEX(MapTrainerTeamMember, int, move, sigmod(), move) +CHECK_INDEX(MapTrainerTeamMember, int, nature, sigmod(), nature) Sigmod::MapTrainerTeamMember& Sigmod::MapTrainerTeamMember::operator=(const MapTrainerTeamMember& rhs) { |
