diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2007-05-25 00:15:36 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2007-05-25 00:15:36 +0000 |
| commit | 75b7d5c767428f7061365a186cb17a22de4112cc (patch) | |
| tree | 46db9c129f3fa848a6ea084a31e01f2c59e67b2a /pokemod/ItemEffect.cpp | |
| parent | 1a4b623c8ecb9d0c7d991312c12d78be4a68eff2 (diff) | |
| download | sigen-75b7d5c767428f7061365a186cb17a22de4112cc.tar.gz sigen-75b7d5c767428f7061365a186cb17a22de4112cc.tar.xz sigen-75b7d5c767428f7061365a186cb17a22de4112cc.zip | |
More modules PokéMod added
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@14 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/ItemEffect.cpp')
| -rw-r--r-- | pokemod/ItemEffect.cpp | 818 |
1 files changed, 818 insertions, 0 deletions
diff --git a/pokemod/ItemEffect.cpp b/pokemod/ItemEffect.cpp new file mode 100644 index 00000000..64f9a4d5 --- /dev/null +++ b/pokemod/ItemEffect.cpp @@ -0,0 +1,818 @@ +/////////////////////////////////////////////////////////////////////////////
+// Name: pokemod/ItemEffect.cpp
+// Purpose: Define an effect of an item
+// Author: Ben Boeckel
+// Modified by: Ben Boeckel
+// Created: Tue Mar 20 18:25:26 2007
+// Copyright: ©2007 Ben Boeckel and Nerdy Productions
+// Licence:
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+/////////////////////////////////////////////////////////////////////////////
+
+#include "ItemEffect.h"
+
+extern PokeGen::PokeMod::Pokemod curPokeMod;
+
+PokeGen::PokeMod::ItemEffect::ItemEffect(unsigned _id)
+{
+ LogCtor("ItemEffect", _id);
+ overworld = false;
+ battle = false;
+ held = false;
+ effect = -1;
+ val1 = -1;
+ val2 = -1;
+ val3.Set(1, 1);
+ val4 = -1;
+ val5 = -1;
+ id = _id;
+}
+
+PokeGen::PokeMod::ItemEffect::ItemEffect(Ini &xml, unsigned _id)
+{
+ LogCtorIni("ItemEffect", _id);
+ ImportIni(ini, _id);
+ if (id == UINT_MAX)
+ LogIdError("ItemEffect");
+}
+
+PokeGen::PokeMod::ItemEffect::~ItemEffect()
+{
+ LogDtor("ItemEffect", id);
+}
+
+#ifdef PG_DEBUG_WINDOW
+void PokeGen::PokeMod::ItemEffect::Validate(const wxListBox &output)
+#else
+void PokeGen::PokeMod::ItemEffect::Validate()
+#endif
+{
+ isValid = true;
+ LogValidateStart("ItemEffect", id);
+ // TODO (Validation#1#): ItemEffect Validation
+ LogValidateOver("ItemEffect", id, isValid);
+}
+
+void PokeGen::PokeMod::ItemEffect::ImportIni(Ini &ini, unsigned _id)
+{
+ LogImportStart("ItemEffect");
+ if (_id == UINT_MAX)
+ {
+ ini.GetValue("id", id, UINT_MAX);
+ // Was there an id associated with the element?
+ if (id == UINT_MAX)
+ LogIdNotFound("ItemEffect");
+ }
+ else
+ id = _id;
+ unsigned i;
+ unsigned j;
+ 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("val3-n", i, 1);
+ ini.GetValue("val3-n", j, 1);
+ val3.Set(i, j);
+ ini.GetValue("val4", val4, -1);
+ ini.GetValue("val5", val5, -1);
+ LogImportOver("ItemEffect", id);
+}
+
+void PokeGen::PokeMod::ItemEffect::ExportIni(std::ofstream &fout, const String &item) const
+{
+ LogExportStart("ItemEffect", id);
+ // Make elements
+ Ini exItemEffect(item + " itemEffect");
+ exItemEffect.AddField("id", id);
+ exItemEffect.AddField("overworld", overworld);
+ exItemEffect.AddField("battle", battle);
+ exItemEffect.AddField("held", held);
+ exItemEffect.AddField("effect", effect);
+ exItemEffect.AddField("val1", val1);
+ exItemEffect.AddField("val2", val2);
+ exItemEffect.AddField("val3-n", val3.GetNum());
+ exItemEffect.AddField("val3-d", val3.GetDenom());
+ exItemEffect.AddField("val4", val4);
+ exItemEffect.AddField("val5", val5);
+ exItemEffect.Export(fout);
+ LogExportOver("ItemEffect", id);
+}
+
+void PokeGen::PokeMod::ItemEffect::SetOverworld(bool o)
+{
+ LogSetVar("ItemEffect", id, "overworld", o);
+ overworld = o;
+}
+
+void PokeGen::PokeMod::ItemEffect::SetBattle(bool b)
+{
+ LogSetVar("ItemEffect", id, "battle", b);
+ battle = b;
+}
+
+void PokeGen::PokeMod::ItemEffect::SetHeld(bool h)
+{
+ LogSetVar("ItemEffect", id, "held", h);
+ held = h;
+}
+
+void PokeGen::PokeMod::ItemEffect::SetEffect(int e)
+{
+ LogSetVar("ItemEffect", id, "effect", e);
+ if ((IE_NONE < e) && (e < IE_END))
+ {
+ effect = e;
+ val1 = -1;
+ val2 = -1;
+ val3.Set(1, 1, (e == IE_BALL) || (e == IE_TYPE) || (e == IE_PP_BOOST));
+ val4 = -1;
+ val5 = -1;
+ }
+}
+
+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 == IE_BALL) || (e == IE_TYPE) || (e == IE_PP_BOOST));
+ val4 = -1;
+ val5 = -1;
+ }
+}
+
+// TODO (Ben#1#): Values code
+void PokeGen::PokeMod::ItemEffect::SetVal1(int v1)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ 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);
+ }
+ 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:
+ case IE_KEEP_ALIVE:
+ case IE_RUN_BAT:
+ case IE_TYPE_BOOST:
+ case IE_PP_RESTORE:
+ case IE_EXP_SHARE:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ 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);
+ break;
+ case IE_LEVEL_BOOST:
+ case IE_SHIELD_BAT:
+ case IE_PP_BOOST:
+ case IE_REPEL:
+ if (v1)
+ val1 = v1;
+ else
+ PMLog(PMString("ItemEffect: Attempting to set val1 to 0 (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR);
+ 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);
+ val1 = v1;
+ }
+ 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);
+ val1 = v1;
+ }
+ 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:
+ // TODO (Ben#1#): Ball Effect val1
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val1
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val1 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal2(int v2)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_CURE_STATUS:
+ case IE_LEVEL_BOOST:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_MODIFY_STAT_BAT:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ case IE_PP_RESTORE:
+ case IE_EXP_SHARE:
+ case IE_FISH:
+ case IE_REPEL:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ 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);
+ 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);
+ val2 = v2;
+ }
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val2
+ // Depends on val4
+ break;
+ case IE_COIN:
+ case IE_COIN_CASE:
+ if (v2)
+ val2 = v2;
+ else
+ PMLog(PMString("ItemEffect: Attempting to set val2 to 0 (%s)", ItemEffectStr[effect]), PM_DEBUG_ERROR);
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val2 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal3(const PMFrac &v3)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ 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:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_MODIFY_STAT_BAT:
+ case IE_FISH:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val3
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val3
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal3(unsigned n, unsigned d)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ 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:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_MODIFY_STAT_BAT:
+ case IE_FISH:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val3
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val3
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal3Num(unsigned n)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ 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:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_MODIFY_STAT_BAT:
+ case IE_FISH:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val3
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val3
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal3Denom(unsigned d)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ 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:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_MODIFY_STAT_BAT:
+ case IE_FISH:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val3
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val3
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val3 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal4(int 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);
+ val4 = v4;
+ }
+ 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);
+ break;
+ case IE_LEVEL_BOOST:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_EXP_SHARE:
+ case IE_FISH:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ 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);
+ break;
+ case IE_STAT_BOOST:
+ case IE_MODIFY_STAT_BAT:
+ // Stat
+ break;
+ case IE_SHIELD_BAT:
+ // Special/Physical
+ 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);
+ 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:
+ 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);
+ break;
+ case IE_BALL:
+ // BallType
+ break;
+ case IE_BERRY:
+ // BerryType
+ 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);
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val4 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal4(const PMString &v4)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ // Percent/Abs
+ break;
+ case IE_CURE_STATUS:
+ // Status
+ break;
+ case IE_LEVEL_BOOST:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_EXP_SHARE:
+ case IE_FISH:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ 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);
+ 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;
+ default:
+ PMLog("ItemEffect: Attempting to set val4 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal5(int v5)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_CURE_STATUS:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_MODIFY_STAT_BAT:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ case IE_PP_RESTORE:
+ case IE_EXP_SHARE:
+ case IE_FISH:
+ case IE_REPEL:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val5
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val5
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val5 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+void PokeGen::PokeMod::ItemEffect::SetVal5(const PMString &v5)
+{
+ switch (effect)
+ {
+ case IE_HP_CURE:
+ case IE_REVIVE:
+ case IE_CURE_STATUS:
+ case IE_LEVEL_BOOST:
+ case IE_STAT_BOOST:
+ case IE_FLINCH:
+ case IE_FIRST:
+ case IE_KEEP_ALIVE:
+ case IE_MODIFY_STAT_BAT:
+ case IE_SHIELD_BAT:
+ case IE_RUN_BAT:
+ case IE_PP_BOOST:
+ case IE_TYPE_BOOST:
+ case IE_PP_RESTORE:
+ case IE_EXP_SHARE:
+ case IE_FISH:
+ case IE_REPEL:
+ case IE_ESCAPE:
+ case IE_TM:
+ case IE_HM:
+ case IE_MAP:
+ case IE_ITEMFINDER:
+ case IE_BIKE:
+ case IE_SCOPE:
+ 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);
+ break;
+ case IE_BALL:
+ // TODO (Ben#1#): Ball Effect val5
+ // Depends on val4
+ break;
+ case IE_BERRY:
+ // TODO (Ben#1#): Berry Effect val5
+ // Depends on val4
+ break;
+ default:
+ PMLog("ItemEffect: Attempting to set val5 of effect that isn\'t set", PM_DEBUG_ERROR);
+ }
+}
+
+bool PokeGen::PokeMod::ItemEffect::GetOverworld()
+{
+ PMLog("ItemEffect: Fetching overworld", PM_DEBUG_DEBUG);
+ return overworld;
+}
+
+bool PokeGen::PokeMod::ItemEffect::GetBattle()
+{
+ PMLog("ItemEffect: Fetching battle", PM_DEBUG_DEBUG);
+ return battle;
+}
+
+bool PokeGen::PokeMod::ItemEffect::GetHeld()
+{
+ PMLog("ItemEffect: Fetching held", PM_DEBUG_DEBUG);
+ return held;
+}
+
+int PokeGen::PokeMod::ItemEffect::GetEffect()
+{
+ PMLog("ItemEffect: Fetching effect", PM_DEBUG_DEBUG);
+ return effect;
+}
+
+ PokeGen::PokeMod::ItemEffect::GetVal1()
+{
+ PMLog("ItemEffect: Fetching val1", PM_DEBUG_DEBUG);
+ return val1;
+}
+
+int PokeGen::PokeMod::ItemEffect::GetVal2()
+{
+ PMLog("ItemEffect: Fetching val2", PM_DEBUG_DEBUG);
+ return val2;
+}
+
+int PokeGen::PokeMod::ItemEffect::GetVal3()
+{
+ PMLog("ItemEffect: Fetching val3", PM_DEBUG_DEBUG);
+ return val3;
+}
+
+PokeGen::PokeMod::PMString PokeGen::PokeMod::ItemEffect::GetVal3String()
+{
+ PMLog("ItemEffect: Fetching val3", PM_DEBUG_DEBUG);
+ return val3;
+}
+
+int PokeGen::PokeMod::ItemEffect::GetVal4()
+{
+ PMLog("ItemEffect: Fetching val4", PM_DEBUG_DEBUG);
+ return val4;
+}
+
+PokeGen::PokeMod::PMString PokeGen::PokeMod::ItemEffect::GetVal4String()
+{
+ PMLog("ItemEffect: Fetching val4", PM_DEBUG_DEBUG);
+ return val4;
+}
+
+int PokeGen::PokeMod::ItemEffect::GetVal5()
+{
+ PMLog("ItemEffect: Fetching val5", PM_DEBUG_DEBUG);
+ return val5;
+}
+
+PokeGen::PokeMod::PMString PokeGen::PokeMod::ItemEffect::GetVal5String()
+{
+ PMLog("ItemEffect: Fetching val5", PM_DEBUG_DEBUG);
+ return val5;
+}
|
