summaryrefslogtreecommitdiffstats
path: root/pokemod/NatureEffect.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2007-06-01 02:54:29 +0000
committerBen Boeckel <MathStuf@gmail.com>2007-06-01 02:54:29 +0000
commitf71140fae5218ee9839ffcd4ec83abfded5124f4 (patch)
tree9af8f2174728cedb93580411223bc59fd9a86d0a /pokemod/NatureEffect.cpp
parent9e28e6ecd358a9801ad25914d3e8cca7b6d7f4f7 (diff)
downloadsigen-f71140fae5218ee9839ffcd4ec83abfded5124f4.tar.gz
sigen-f71140fae5218ee9839ffcd4ec83abfded5124f4.tar.xz
sigen-f71140fae5218ee9839ffcd4ec83abfded5124f4.zip
Added Map and Tile, added Hat class, and fixed up some other minor things
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@17 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/NatureEffect.cpp')
-rw-r--r--pokemod/NatureEffect.cpp38
1 files changed, 28 insertions, 10 deletions
diff --git a/pokemod/NatureEffect.cpp b/pokemod/NatureEffect.cpp
index 93e442f9..05b7a6cb 100644
--- a/pokemod/NatureEffect.cpp
+++ b/pokemod/NatureEffect.cpp
@@ -28,7 +28,7 @@ extern PokeGen::PokeMod::Pokemod curPokeMod;
PokeGen::PokeMod::NatureEffect::NatureEffect(const unsigned _id)
{
LogCtor("NatureEffect", _id);
- stat = 0;
+ stat = UINT_MAX;
multiplier.Set(1, 1);
id = _id;
}
@@ -46,16 +46,32 @@ PokeGen::PokeMod::NatureEffect::~NatureEffect()
LogDtor("NatureEffect", id);
}
+void PokeGen::PokeMod::NatureEffect::Validate()
+{
+ LogValidateStart("NatureEffect", id);
+ if ((curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY) <= stat)
+ {
+ LogVarNotValid("NatureEffect", id, "stat");
+ isValid = false;
+ }
+ multiplier.Reduce();
+ LogValidateOver("NatureEffect", id, isValid);
+}
+
#ifdef PG_DEBUG_WINDOW
void PokeGen::PokeMod::NatureEffect::Validate(const wxListBox &output)
-#else
-void PokeGen::PokeMod::NatureEffect::Validate()
-#endif
{
LogValidateStart("NatureEffect", id);
- // TODO (Validation#1#): NatureEffect Validation
+ if ((curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY) <= stat)
+ {
+ LogVarNotValid("NatureEffect", id, "stat");
+ output.append(ConsoleLogVarNotValid("NatureEffect", id, "stat"));
+ isValid = false;
+ }
+ multipler.Reduce();
LogValidateOver("NatureEffect", id, isValid);
}
+#endif
void PokeGen::PokeMod::NatureEffect::ImportIni(Ini &ini, const unsigned _id)
{
@@ -72,7 +88,7 @@ void PokeGen::PokeMod::NatureEffect::ImportIni(Ini &ini, const unsigned _id)
id = _id;
unsigned i;
unsigned j;
- ini.GetValue("stat", stat, 0);
+ ini.GetValue("stat", stat);
ini.GetValue("multiplier-n", i, 1);
ini.GetValue("multiplier-d", j, 1);
multiplier.Set(i, j);
@@ -95,13 +111,13 @@ void PokeGen::PokeMod::NatureEffect::ExportIni(std::ofstream &fout, const String
void PokeGen::PokeMod::NatureEffect::SetStat(const unsigned s)
{
LogSetVar("NatureEffect", id, "stat", s);
- stat = s;
+ if (s < (curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY))
+ stat = s;
}
void PokeGen::PokeMod::NatureEffect::SetStat(const String &s)
{
- LogSetVar("NatureEffect", id, "stat string", s);
- stat = FindIn(curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY, s, curPokeMod.IsSpecialSplit() ? StatHPGSCStr : StatHPRBYStr);
+ SetStat(FindIn(curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY, s, curPokeMod.IsSpecialSplit() ? StatHPGSCStr : StatHPRBYStr));
}
void PokeGen::PokeMod::NatureEffect::SetMultiplier(const Frac &m)
@@ -137,7 +153,9 @@ unsigned PokeGen::PokeMod::NatureEffect::GetStat() const
PokeGen::PokeMod::String PokeGen::PokeMod::NatureEffect::GetStatString() const
{
LogFetchVar("NatureEffect", id, "stat string", stat);
- return (curPokeMod.IsSpecialSplit() ? StatHPGSCStr : StatHPRBYStr)[stat];
+ if (stat < (curPokeMod.IsSpecialSplit() ? STH_END_GSC : STH_END_RBY))
+ return (curPokeMod.IsSpecialSplit() ? StatHPGSCStr : StatHPRBYStr)[stat];
+ return "";
}
PokeGen::PokeMod::Frac PokeGen::PokeMod::NatureEffect::GetMultiplier() const