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