summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-01-11 03:29:54 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-01-11 03:29:54 -0500
commit31af7ef53b468d74c83eceb56fa074b7fa0c82a5 (patch)
tree3c66d720080b426a5b89277c0a9279317213ee6e
parent8c96762567a072866b9b156a2b1b9fb6a686dd69 (diff)
Fixed sprite checking in Species
-rw-r--r--sigmod/Species.cpp46
1 files changed, 34 insertions, 12 deletions
diff --git a/sigmod/Species.cpp b/sigmod/Species.cpp
index da3175b8..a4a9133c 100644
--- a/sigmod/Species.cpp
+++ b/sigmod/Species.cpp
@@ -127,10 +127,16 @@ void Sigmod::Species::validate()
TEST(itemChance);
TEST(encyclopediaNumber);
TEST(weight);
- TEST(frontMaleSprite);
- TEST(backMaleSprite);
- TEST(frontFemaleSprite);
- TEST(backFemaleSprite);
+ if (m_genderFactor < 1)
+ {
+ TEST(frontMaleSprite);
+ TEST(backMaleSprite);
+ }
+ if (sigmod()->rules()->genderAllowed() && (0 < m_genderFactor))
+ {
+ TEST(frontFemaleSprite);
+ TEST(backFemaleSprite);
+ }
TEST(skin);
if ((m_encyclopediaNumber != -1) && m_encyclopediaEntry.isEmpty())
emit(error("Encyclopedia entry is empty"));
@@ -333,20 +339,36 @@ CHECK_BOUNDS(Species, int, encyclopediaNumber, -1, INT_MAX)
CHECK_BOUNDS(Species, int, weight, 0, INT_MAX)
CHECK_BOUNDS(Species, int, height, 0, INT_MAX)
CHECK_BEGIN(Species, int, frontMaleSprite)
- if (m_genderFactor < 1)
- IBOUNDS(frontMaleSprite, sigmod(), sprite);
+ if (1 <= m_genderFactor)
+ {
+ ERROR("Species cannot be male");
+ return false;
+ }
+ IBOUNDS(frontMaleSprite, sigmod(), sprite);
CHECK_END()
CHECK_BEGIN(Species, int, backMaleSprite)
- if (m_genderFactor < 1)
- IBOUNDS(backMaleSprite, sigmod(), sprite);
+ if (1 <= m_genderFactor)
+ {
+ ERROR("Species cannot be male");
+ return false;
+ }
+ IBOUNDS(backMaleSprite, sigmod(), sprite);
CHECK_END()
CHECK_BEGIN(Species, int, frontFemaleSprite)
- if (sigmod()->rules()->genderAllowed() && (0 < m_genderFactor))
- IBOUNDS(frontFemaleSprite, sigmod(), sprite);
+ if (!sigmod()->rules()->genderAllowed() || (m_genderFactor <= 0))
+ {
+ ERROR("Species cannot be female");
+ return false;
+ }
+ IBOUNDS(frontFemaleSprite, sigmod(), sprite);
CHECK_END()
CHECK_BEGIN(Species, int, backFemaleSprite)
- if (sigmod()->rules()->genderAllowed() && (0 < m_genderFactor))
- IBOUNDS(backFemaleSprite, sigmod(), sprite);
+ if (!sigmod()->rules()->genderAllowed() || (m_genderFactor <= 0))
+ {
+ ERROR("Species cannot be female");
+ return false;
+ }
+ IBOUNDS(backFemaleSprite, sigmod(), sprite);
CHECK_END()
CHECK_INDEX(Species, int, skin, sigmod(), skin)
CHECK(Species, QString&, encyclopediaEntry)