From f71140fae5218ee9839ffcd4ec83abfded5124f4 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 1 Jun 2007 02:54:29 +0000 Subject: 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 --- pokemod/ItemEffect.cpp | 274 +++++++++++++++++++++++++++---------------------- 1 file changed, 149 insertions(+), 125 deletions(-) (limited to 'pokemod/ItemEffect.cpp') diff --git a/pokemod/ItemEffect.cpp b/pokemod/ItemEffect.cpp index ee0b6432..2dc3b716 100644 --- a/pokemod/ItemEffect.cpp +++ b/pokemod/ItemEffect.cpp @@ -31,12 +31,12 @@ PokeGen::PokeMod::ItemEffect::ItemEffect(const unsigned _id) overworld = false; battle = false; held = false; - effect = -1; - val1 = -1; - val2 = -1; + effect = UINT_MAX; + val1 = INT_MAX; + val2 = INT_MAX; val3.Set(1, 1); - val4 = -1; - val5 = -1; + val4 = UINT_MAX; + val5 = UINT_MAX; id = _id; } @@ -59,7 +59,6 @@ void PokeGen::PokeMod::ItemEffect::Validate(const wxListBox &output) void PokeGen::PokeMod::ItemEffect::Validate() #endif { - isValid = true; LogValidateStart("ItemEffect", id); // TODO (Validation#1#): ItemEffect Validation LogValidateOver("ItemEffect", id, isValid); @@ -82,14 +81,14 @@ void PokeGen::PokeMod::ItemEffect::ImportIni(Ini &ini, const unsigned _id) ini.GetValue("overworld", overworld, false); ini.GetValue("battle", battle, false); ini.GetValue("held", held, false); - ini.GetValue("effect", effect, -1); - ini.GetValue("val1", val1, -1); - ini.GetValue("val2", val2, -1); + ini.GetValue("effect", effect); + ini.GetValue("val1", val1); + ini.GetValue("val2", val2); ini.GetValue("val3-n", i, 1); ini.GetValue("val3-n", j, 1); val3.Set(i, j); - ini.GetValue("val4", val4, -1); - ini.GetValue("val5", val5, -1); + ini.GetValue("val4", val4); + ini.GetValue("val5", val5); LogImportOver("ItemEffect", id); } @@ -131,37 +130,30 @@ void PokeGen::PokeMod::ItemEffect::SetHeld(const bool h) held = h; } -void PokeGen::PokeMod::ItemEffect::SetEffect(const int e) +void PokeGen::PokeMod::ItemEffect::SetEffect(const unsigned e) { LogSetVar("ItemEffect", id, "effect", e); - if ((IE_NONE < e) && (e < IE_END)) + if (e < IE_END) { effect = e; - val1 = -1; - val2 = -1; + val1 = INT_MAX; + val2 = INT_MAX; val3.Set(1, 1, (e == IE_BALL) || (e == IE_TYPE_BOOST) || (e == IE_PP_BOOST)); - val4 = -1; - val5 = -1; + val4 = UINT_MAX; + val5 = UINT_MAX; } + else + LogOutOfRange("ItemEffect", id, "effect", e, ""); } void PokeGen::PokeMod::ItemEffect::SetEffect(const String &e) { - LogSetVar("ItemEffect", id, "effect string", e); - effect = FindIn(IE_END, e, ItemEffectStr); - if (effect != IE_END) - { - val1 = -1; - val2 = -1; - val3.Set(1, 1, (e == ItemEffectStr[IE_BALL]) || (e == ItemEffectStr[IE_TYPE_BOOST]) || (e == ItemEffectStr[IE_PP_BOOST])); - val4 = -1; - val5 = -1; - } + SetEffect(FindIn(IE_END, e, ItemEffectStr)); } -// TODO (Ben#1#): Values code void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) { + LogSetVar("ItemEffect", id, "val1", v1); switch (effect) { case IE_HP_CURE: @@ -169,16 +161,11 @@ void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) if (val4 == REL_ABSOLUTE) { if (v1) - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v1, ItemEffectStr[effect]), PM_DEBUG_ERROR); val1 = v1; - } else - PMLog(PMString("ItemEffect: Attempting to set val1 to 0 (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val1", v1, "effect", ItemEffectStr[effect]); + break; } - else - PMLog(PMString("ItemEffect: Attempting to set val1 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); - break; case IE_CURE_STATUS: case IE_FLINCH: case IE_FIRST: @@ -193,7 +180,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) case IE_MAP: case IE_ITEMFINDER: case IE_BIKE: - PMLog(PMString("ItemEffect: Attempting to set val1 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val1", v1, "effect", ItemEffectStr[effect]); break; case IE_LEVEL_BOOST: case IE_SHIELD_BAT: @@ -202,32 +189,25 @@ void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) if (v1) val1 = v1; else - PMLog(PMString("ItemEffect: Attempting to set val1 to 0 (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val1", v1, "effect", ItemEffectStr[effect]); break; case IE_STAT_BOOST: case IE_ACORN: - if ((v1 <= 0) || (65536 <= v1)) - PMLog(PMString("ItemEffect: Attempting to set val1 out of range (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); - else - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v1, ItemEffectStr[effect]), PM_DEBUG_ERROR); + if ((0 <= v1) && (v1 < 65536)) val1 = v1; - } + else + LogOutOfRange("ItemEffect", id, "val1", v1, "effect", ItemEffectStr[effect]); break; case IE_MODIFY_STAT_BAT: - if ((v1 <= -7) || (7 <= v1)) - PMLog("ItemEffect: Attempting to set val1 out of range (Modify Stat (Battle))", PM_DEBUG_ERROR); - else - { - PMLog(PMString("ItemEffect: Set val1 to %d (Modify Stat (Battle))", v1), PM_DEBUG_ERROR); + if ((-6 <= v1) && (v1 <= 6)) val1 = v1; - } + else + LogOutOfRange("ItemEffect", id, "val1", v1, "effect", "Modify Stat (Battle)"); break; case IE_FISH: case IE_SCOPE: case IE_COIN: case IE_COIN_CASE: - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v1, ItemEffectStr[effect]), PM_DEBUG_ERROR); val1 = v1; break; case IE_BALL: @@ -239,12 +219,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val1 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val1", v1, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal2(const int v2) { + LogSetVar("ItemEffect", id, "val2", v2); switch (effect) { case IE_HP_CURE: @@ -272,16 +253,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal2(const int v2) case IE_SCOPE: case IE_BERRY: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val2 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val2", v2, "effect", ItemEffectStr[effect]); break; case IE_STAT_BOOST: - if ((v2 <= 0) || (65536 <= v2)) - PMLog("ItemEffect: Attempting to set val2 out of range (Stat Boost)", PM_DEBUG_ERROR); - else - { - PMLog(PMString("ItemEffect: Set val2 to %d (%s)", v2), PM_DEBUG_ERROR); + if ((0 < v2) && (v2 < 65536)) val2 = v2; - } + else + LogOutOfRange("ItemEffect", id, "val2", v2, "effect", "Stat Boost"); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val2 @@ -289,18 +267,19 @@ void PokeGen::PokeMod::ItemEffect::SetVal2(const int v2) break; case IE_COIN: case IE_COIN_CASE: - if (v2) + if (0 < v2) val2 = v2; else - PMLog(PMString("ItemEffect: Attempting to set val2 to 0 (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val2", v2, "effect", ItemEffectStr[effect]); break; default: - PMLog("ItemEffect: Attempting to set val2 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val2", v2, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal3(const Frac &v3) { + LogSetVar("ItemEffect", id, "val3", v3.GetNum(), v3.GetDenom()); switch (effect) { case IE_HP_CURE: @@ -315,7 +294,6 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const Frac &v3) case IE_PP_RESTORE: case IE_EXP_SHARE: case IE_REPEL: - PMLog(PMString("ItemEffect: Setting val3 (%s)", ItemEffectStr[effect]), PM_DEBUG_DEBUG); val3 = v3; break; case IE_CURE_STATUS: @@ -333,7 +311,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const Frac &v3) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val3 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val3", 0, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val3 @@ -344,12 +322,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const Frac &v3) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val3", 0, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal3(const unsigned n, const unsigned d) { + LogSetVar("ItemEffect", id, "val3", n, d); switch (effect) { case IE_HP_CURE: @@ -364,7 +343,6 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const unsigned n, const unsigned d) case IE_PP_RESTORE: case IE_EXP_SHARE: case IE_REPEL: - PMLog(PMString("ItemEffect: Setting val3 (%s)", ItemEffectStr[effect]), PM_DEBUG_DEBUG); val3.Set(n, d); break; case IE_CURE_STATUS: @@ -382,7 +360,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const unsigned n, const unsigned d) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val3 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val3", 0, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val3 @@ -393,12 +371,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal3(const unsigned n, const unsigned d) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val3", 0, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal3Num(const unsigned n) { + LogSetVar("ItemEffect", id, "val3 numerator", n); switch (effect) { case IE_HP_CURE: @@ -413,7 +392,6 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Num(const unsigned n) case IE_PP_RESTORE: case IE_EXP_SHARE: case IE_REPEL: - PMLog(PMString("ItemEffect: Setting val3 (%s)", ItemEffectStr[effect]), PM_DEBUG_DEBUG); val3.SetNum(n); break; case IE_CURE_STATUS: @@ -431,7 +409,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Num(const unsigned n) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val3 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val3", n, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val3 @@ -442,12 +420,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Num(const unsigned n) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val3 numerator", n, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal3Denom(const unsigned d) { + LogSetVar("ItemEffect", id, "val3 denominator", d); switch (effect) { case IE_HP_CURE: @@ -462,7 +441,6 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Denom(const unsigned d) case IE_PP_RESTORE: case IE_EXP_SHARE: case IE_REPEL: - PMLog(PMString("ItemEffect: Setting val3 (%s)", ItemEffectStr[effect]), PM_DEBUG_DEBUG); val3.SetDenom(d); break; case IE_CURE_STATUS: @@ -480,7 +458,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Denom(const unsigned d) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val3 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val3", d, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val3 @@ -491,32 +469,27 @@ void PokeGen::PokeMod::ItemEffect::SetVal3Denom(const unsigned d) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val3 denominator", d, "effect"); } } -void PokeGen::PokeMod::ItemEffect::SetVal4(const int v4) +void PokeGen::PokeMod::ItemEffect::SetVal4(const unsigned v4) { + LogSetVar("ItemEffect", id, "val4", v4); switch (effect) { case IE_HP_CURE: case IE_REVIVE: - if ((v4 <= REL_NONE) || (REL_END <= v4)) - PMLog(PMString("ItemEffect: Attempting to set val4 out of range (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); - else - { - PMLog(PMString("ItemEffect: Set val4 to %d (%s)", v4, ItemEffectStr[effect]), PM_DEBUG_ERROR); + if (v4 < REL_END) val4 = v4; - } + else + LogOutOfRange("ItemEffect", id, "val4", v4, "effect", ItemEffectStr[effect]); break; case IE_CURE_STATUS: if (curPokeMod.GetStatus(v4)) - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v4, curPokeMod.GetStatus(v4)->GetName().c_str()), PM_DEBUG_DEBUG); val4 = v4; - } else - PMLog(PMString("ItemEffect: Attempting to set val4 out of range (Cure Status, %s)", v4), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Cure Status"); break; case IE_LEVEL_BOOST: case IE_FLINCH: @@ -532,7 +505,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const int v4) case IE_SCOPE: case IE_COIN: case IE_COIN_CASE: - PMLog(PMString("ItemEffect: Attempting to set val3 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val4", v4, "effect", ItemEffectStr[effect]); break; case IE_STAT_BOOST: case IE_MODIFY_STAT_BAT: @@ -543,12 +516,9 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const int v4) break; case IE_TYPE_BOOST: if (curPokeMod.GetType(v4)) - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v4, curPokeMod.GetType(v4)->GetName().c_str()), PM_DEBUG_DEBUG); val4 = v4; - } else - PMLog(PMString("ItemEffect: Attempting to set val4 out of range (Type Boost, %s)", v4), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Type Boost"); break; case IE_PP_RESTORE: // All/One @@ -562,12 +532,9 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const int v4) case IE_TM: case IE_HM: if (curPokeMod.GetMove(v4)) - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v4, curPokeMod.GetMove(v4)->GetName().c_str()), PM_DEBUG_DEBUG); val4 = v4; - } else - PMLog(PMString("ItemEffect: Attempting to set val4 out of range (TM/HM, %s)", v4), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "TM/HM"); break; case IE_BALL: // BallType @@ -577,20 +544,18 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const int v4) break; case IE_ACORN: if (curPokeMod.GetItem(v4)) - { - PMLog(PMString("ItemEffect: Set val1 to %d (%s)", v4, curPokeMod.GetItem(v4)->GetName().c_str()), PM_DEBUG_DEBUG); val4 = v4; - } else - PMLog(PMString("ItemEffect: Attempting to set val4 out of range (Acorn, %s)", v4), PM_DEBUG_ERROR); + LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Acorn"); break; default: - PMLog("ItemEffect: Attempting to set val4 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val4", v4, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal4(const String &v4) { + LogSetVar("ItemEffect", id, "val4 string", v4); switch (effect) { case IE_HP_CURE: @@ -614,7 +579,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const String &v4) case IE_SCOPE: case IE_COIN: case IE_COIN_CASE: - PMLog(PMString("ItemEffect: Attempting to set val4 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val4", v4, "effect", ItemEffectStr[effect]); break; case IE_STAT_BOOST: case IE_MODIFY_STAT_BAT: @@ -649,12 +614,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const String &v4) // Item break; default: - PMLog("ItemEffect: Attempting to set val4 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val4", v4, "effect"); } } -void PokeGen::PokeMod::ItemEffect::SetVal5(const int v5) +void PokeGen::PokeMod::ItemEffect::SetVal5(const unsigned v5) { + LogSetVar("ItemEffect", id, "val5", v5); switch (effect) { case IE_HP_CURE: @@ -684,7 +650,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal5(const int v5) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val5 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val5", v5, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val5 @@ -695,12 +661,13 @@ void PokeGen::PokeMod::ItemEffect::SetVal5(const int v5) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val5 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val5", v5, "effect"); } } void PokeGen::PokeMod::ItemEffect::SetVal5(const String &v5) { + LogSetVar("ItemEffect", id, "val5", v5); switch (effect) { case IE_HP_CURE: @@ -730,7 +697,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal5(const String &v5) case IE_COIN: case IE_COIN_CASE: case IE_ACORN: - PMLog(PMString("ItemEffect: Attempting to set val5 of effect that doesn\'t use it (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR); + LogNoUse("ItemEffect", id, "val5", v5, "effect", ItemEffectStr[effect]); break; case IE_BALL: // TODO (Ben#1#): Ball Effect val5 @@ -741,84 +708,141 @@ void PokeGen::PokeMod::ItemEffect::SetVal5(const String &v5) // Depends on val4 break; default: - PMLog("ItemEffect: Attempting to set val5 of effect that isn\'t set", PM_DEBUG_ERROR); + LogNotSet("ItemEffect", id, "val5", v5, "effect"); } } bool PokeGen::PokeMod::ItemEffect::GetOverworld() const { - PMLog("ItemEffect: Fetching overworld", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "overworld", overworld); return overworld; } bool PokeGen::PokeMod::ItemEffect::GetBattle() const { - PMLog("ItemEffect: Fetching battle", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "battle", battle); return battle; } bool PokeGen::PokeMod::ItemEffect::GetHeld() const { - PMLog("ItemEffect: Fetching held", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "held", held); return held; } -int PokeGen::PokeMod::ItemEffect::GetEffect() const +unsigned PokeGen::PokeMod::ItemEffect::GetEffect() const { - PMLog("ItemEffect: Fetching effect", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "effect", effect); return effect; } +// TODO (Ben#1#): Values fetching int PokeGen::PokeMod::ItemEffect::GetVal1() const { - PMLog("ItemEffect: Fetching val1", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "val1", val1); return val1; } int PokeGen::PokeMod::ItemEffect::GetVal2() const { - PMLog("ItemEffect: Fetching val2", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "val2", val2); return val2; } PokeGen::PokeMod::Frac PokeGen::PokeMod::ItemEffect::GetVal3() const { - PMLog("ItemEffect: Fetching val3", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "val3", val3.GetNum(), val3.GetDenom()); return val3; } unsigned PokeGen::PokeMod::ItemEffect::GetVal3Num() const { - PMLog("ItemEffect: Fetching val3", PM_DEBUG_DEBUG); - return val3; + LogFetchVar("ItemEffect", id, "val3 numerator", val3.GetNum()); + return val3.GetNum(); } unsigned PokeGen::PokeMod::ItemEffect::GetVal3Denom() const { - PMLog("ItemEffect: Fetching val3", PM_DEBUG_DEBUG); - return val3; + LogFetchVar("ItemEffect", id, "val3 denominator", val3.GetDenom()); + return val3.GetDenom(); } -int PokeGen::PokeMod::ItemEffect::GetVal4() const +unsigned PokeGen::PokeMod::ItemEffect::GetVal4() const { - PMLog("ItemEffect: Fetching val4", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "val4", val4); return val4; } PokeGen::PokeMod::String PokeGen::PokeMod::ItemEffect::GetVal4String() const { - PMLog("ItemEffect: Fetching val4", PM_DEBUG_DEBUG); - return ""; + LogFetchVar("ItemEffect", id, "val4 string", val4); + String ret = ""; + switch (effect) + { + case IE_HP_CURE: + case IE_REVIVE: + // Percent/Abs + break; + case IE_CURE_STATUS: + // Status + break; + case IE_STAT_BOOST: + case IE_MODIFY_STAT_BAT: + // Stat + break; + case IE_SHIELD_BAT: + // Special/Physical + break; + case IE_TYPE_BOOST: + // Type + break; + case IE_PP_RESTORE: + // All/One + break; + case IE_REPEL: + // First/Max/All + break; + case IE_ESCAPE: + // Anywhere/Dungeon + break; + case IE_TM: + case IE_HM: + // Move + break; + case IE_BALL: + // BallType + break; + case IE_BERRY: + // BerryType + break; + case IE_ACORN: + // Item + break; + } + return ret; } -int PokeGen::PokeMod::ItemEffect::GetVal5() const +unsigned PokeGen::PokeMod::ItemEffect::GetVal5() const { - PMLog("ItemEffect: Fetching val5", PM_DEBUG_DEBUG); + LogFetchVar("ItemEffect", id, "val5", val5); return val5; } PokeGen::PokeMod::String PokeGen::PokeMod::ItemEffect::GetVal5String() const { - PMLog("ItemEffect: Fetching val5", PM_DEBUG_DEBUG); - return ""; + LogFetchVar("ItemEffect", id, "val5 string", val5); + String ret = ""; + switch (effect) + { + case IE_BALL: + // TODO (Ben#1#): Dependant + if ((val4 == 0) && (val5 < 0)) + ret = BallEffectStr[val5]; + break; + case IE_BERRY: + if ((val4 == 0) && (val5 < 0)) + ret = BallEffectStr[val5]; + break; + } + return ret; } -- cgit