diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-01-10 17:47:20 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-01-10 17:47:20 -0500 |
| commit | d1eb604239e648cab0dc5dc0cc8b2e5bfa7e1e48 (patch) | |
| tree | e66cddf3fc40868b0cc87c35e76daafde076af08 | |
| parent | e89bd3faacaabcd8eb1ac4262e9adf633e179e87 (diff) | |
| download | sigen-d1eb604239e648cab0dc5dc0cc8b2e5bfa7e1e48.tar.gz sigen-d1eb604239e648cab0dc5dc0cc8b2e5bfa7e1e48.tar.xz sigen-d1eb604239e648cab0dc5dc0cc8b2e5bfa7e1e48.zip | |
Checking items in MapTrainerTeamMember includes count checking as well
| -rw-r--r-- | sigmod/Macros.h | 2 | ||||
| -rw-r--r-- | sigmod/MapTrainerTeamMember.cpp | 8 | ||||
| -rw-r--r-- | sigmod/MapTrainerTeamMember.h | 2 | ||||
| -rw-r--r-- | sigmod/test/TestMapTrainerTeamMember.cpp | 24 |
4 files changed, 19 insertions, 17 deletions
diff --git a/sigmod/Macros.h b/sigmod/Macros.h index 8f267666..3cb0dd1f 100644 --- a/sigmod/Macros.h +++ b/sigmod/Macros.h @@ -79,7 +79,7 @@ #define TEST_MAP(variable) \ const QList<int> variable##_keys = m_##variable.keys(); \ foreach (int variable, variable##_keys) \ - variable##Check(variable) + variable##Check(variable, m_##variable[variable]) #define TEST_MATRIX(variable) \ for (int i = 0; i < m_##variable.height(); ++i) \ { \ diff --git a/sigmod/MapTrainerTeamMember.cpp b/sigmod/MapTrainerTeamMember.cpp index caaec773..a40cd832 100644 --- a/sigmod/MapTrainerTeamMember.cpp +++ b/sigmod/MapTrainerTeamMember.cpp @@ -108,8 +108,7 @@ SETTER_LIST_LIMIT(MapTrainerTeamMember, Ability, ability, sigmod()->rules()->max void Sigmod::MapTrainerTeamMember::setItem(const int item, const int count) { - TBOUNDS("item count", 0, INT_MAX, count); - if (count && itemCheck(item) && (!m_item.contains(item) || (count != m_item[item]))) + if (count && itemCheck(item, count) && (!m_item.contains(item) || (count != m_item[item]))) { const QList<int> items = m_item.keys(); int total = count; @@ -152,7 +151,10 @@ GETTER_LIST(MapTrainerTeamMember, 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_BEGIN_ARRAY(MapTrainerTeamMember, int, item, count, int, item) + IBOUNDS(item, sigmod(), item); + TBOUNDS_MOD(item_count, 0, sigmod()->rules()->maxHeldItems(), count) +CHECK_END() CHECK_BEGIN(MapTrainerTeamMember, int, move) IBOUNDS(move, sigmod(), move); if (!canLearn(move)) diff --git a/sigmod/MapTrainerTeamMember.h b/sigmod/MapTrainerTeamMember.h index 852148b5..07dbb7a3 100644 --- a/sigmod/MapTrainerTeamMember.h +++ b/sigmod/MapTrainerTeamMember.h @@ -66,7 +66,7 @@ class SIGMOD_EXPORT MapTrainerTeamMember : public Object bool speciesCheck(const int species) const; bool levelCheck(const int level) const; bool abilityCheck(const int ability) const; - bool itemCheck(const int item) const; + bool itemCheck(const int item, const int count) const; bool moveCheck(const int move) const; bool natureCheck(const int nature) const; diff --git a/sigmod/test/TestMapTrainerTeamMember.cpp b/sigmod/test/TestMapTrainerTeamMember.cpp index 66585b32..413033c4 100644 --- a/sigmod/test/TestMapTrainerTeamMember.cpp +++ b/sigmod/test/TestMapTrainerTeamMember.cpp @@ -141,28 +141,28 @@ void TestMapTrainerTeamMember::validation() m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 6); + QCOMPARE(m_errors.size(), 7); m_sigmod->rules()->setMaxHeldItems(1); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 6); + QCOMPARE(m_errors.size(), 7); m_sigmod->item(0)->setWeight(25); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 7); + QCOMPARE(m_errors.size(), 8); m_sigmod->item(0)->setWeight(5); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 7); + QCOMPARE(m_errors.size(), 8); m_sigmod->rules()->setMaxMoves(2); m_sigmod->newMove(); @@ -175,35 +175,35 @@ void TestMapTrainerTeamMember::validation() m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 7); + QCOMPARE(m_errors.size(), 8); m_sigmod->rules()->setMaxMoves(1); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 8); + QCOMPARE(m_errors.size(), 9); m_sigmod->rules()->setMaxMoves(2); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 8); + QCOMPARE(m_errors.size(), 9); m_sigmod->species(0)->deleteMove(1); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 9); + QCOMPARE(m_errors.size(), 10); m_sigmod->species(0)->newMove()->setMove(1); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 9); + QCOMPARE(m_errors.size(), 10); m_sigmod->rules()->setMaxNatures(1); m_sigmod->newNature(); @@ -212,21 +212,21 @@ void TestMapTrainerTeamMember::validation() m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 9); + QCOMPARE(m_errors.size(), 10); m_sigmod->rules()->setMaxNatures(0); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 10); + QCOMPARE(m_errors.size(), 11); m_sigmod->rules()->setMaxNatures(1); m_teamMember1->validate(); QCOMPARE(m_warnings.size(), 0); - QCOMPARE(m_errors.size(), 10); + QCOMPARE(m_errors.size(), 11); } void TestMapTrainerTeamMember::saving() |
