diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2007-06-22 17:46:50 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2007-06-22 17:46:50 +0000 |
| commit | 5c3ca621f75587173bab3d946aee81dd2d36f495 (patch) | |
| tree | 2d64b74bbe323a582cdc17f0a442c5ff1b48038e /pokemod/ItemEffect.cpp | |
| parent | 3595239f08f2bc1df32ef22ed6de9bde10ca3384 (diff) | |
Pokemod validation, paths made to default
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@20 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/ItemEffect.cpp')
| -rw-r--r-- | pokemod/ItemEffect.cpp | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/pokemod/ItemEffect.cpp b/pokemod/ItemEffect.cpp index 61b5c674..b5f2fa6e 100644 --- a/pokemod/ItemEffect.cpp +++ b/pokemod/ItemEffect.cpp @@ -23,9 +23,7 @@ #include "ItemEffect.h"
-extern PokeGen::PokeMod::Pokemod curPokeMod;
-
-PokeGen::PokeMod::ItemEffect::ItemEffect(const unsigned _id) :
+PokeGen::PokeMod::ItemEffect::ItemEffect(const Pokemod *par, const unsigned _id) :
overworld(false),
battle(false),
held(false),
@@ -38,11 +36,13 @@ PokeGen::PokeMod::ItemEffect::ItemEffect(const unsigned _id) : {
LogCtor("ItemEffect", _id);
id = _id;
+ pokemod = par;
}
-PokeGen::PokeMod::ItemEffect::ItemEffect(Ini &ini, const unsigned _id)
+PokeGen::PokeMod::ItemEffect::ItemEffect(const Pokemod *par, Ini &ini, const unsigned _id)
{
LogCtorIni("ItemEffect", _id);
+ pokemod = par;
ImportIni(ini, _id);
if (id == UINT_MAX)
LogIdError("ItemEffect");
@@ -208,8 +208,28 @@ void PokeGen::PokeMod::ItemEffect::SetVal1(const int v1) val1 = v1;
break;
case IE_BALL:
- // TODO (Ben#1#): Ball Effect val1
- // Depends on val4
+ switch (val4)
+ {
+ case BLT_REGULAR:
+ if ((unsigned)v1 < 256)
+ val1 = (unsigned)v1;
+ else
+ LogOutOfRange("ItemEffect", id, "val1", v1, "effect", "Ball");
+ break;
+ case BLT_LEVEL:
+ if ((unsigned)v1 <= pokemod->GetMaxLevel())
+ val1 = (unsigned)v1;
+ else
+ LogOutOfRange("ItemEffect", id, "val1", v1, "effect", "Ball");
+ break;
+ case BLT_BATTLE:
+ case BLT_FRIEND:
+ case BLT_STAT:
+ val1 = v1;
+ break;
+ default:
+ LogNoUse("ItemEffect", id, "val1", v1, "effect", ItemEffectStr[effect]);
+ }
break;
case IE_BERRY:
// TODO (Ben#1#): Berry Effect val1
@@ -483,7 +503,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const unsigned v4) LogOutOfRange("ItemEffect", id, "val4", v4, "effect", ItemEffectStr[effect]);
break;
case IE_CURE_STATUS:
- if (curPokeMod.GetStatus(v4))
+ if (pokemod->GetStatus(v4))
val4 = v4;
else
LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Cure Status");
@@ -512,7 +532,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const unsigned v4) // Special/Physical
break;
case IE_TYPE_BOOST:
- if (curPokeMod.GetType(v4))
+ if (pokemod->GetType(v4))
val4 = v4;
else
LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Type Boost");
@@ -528,7 +548,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const unsigned v4) break;
case IE_TM:
case IE_HM:
- if (curPokeMod.GetMove(v4))
+ if (pokemod->GetMove(v4))
val4 = v4;
else
LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "TM/HM");
@@ -540,7 +560,7 @@ void PokeGen::PokeMod::ItemEffect::SetVal4(const unsigned v4) // BerryType
break;
case IE_ACORN:
- if (curPokeMod.GetItem(v4))
+ if (pokemod->GetItem(v4))
val4 = v4;
else
LogOutOfRange("ItemEffect", id, "val4", v4, "effect", "Acorn");
|
