summaryrefslogtreecommitdiffstats
path: root/pokemodr/ItemEffectUI.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-05-19 23:07:18 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-05-19 23:07:18 +0000
commit74e975209e6bcc05ed9f040a19c64960ae519e2c (patch)
treef4908d02b52b5f37b141d1d50c4311f1c98e95a4 /pokemodr/ItemEffectUI.cpp
parentc5c0402fdc603db60f3c110babc32b4945a8e729 (diff)
downloadsigen-74e975209e6bcc05ed9f040a19c64960ae519e2c.tar.gz
sigen-74e975209e6bcc05ed9f040a19c64960ae519e2c.tar.xz
sigen-74e975209e6bcc05ed9f040a19c64960ae519e2c.zip
[FIX] Value 5 added to ItemEffect
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@155 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/ItemEffectUI.cpp')
-rw-r--r--pokemodr/ItemEffectUI.cpp203
1 files changed, 96 insertions, 107 deletions
diff --git a/pokemodr/ItemEffectUI.cpp b/pokemodr/ItemEffectUI.cpp
index bece9c10..cbd37f91 100644
--- a/pokemodr/ItemEffectUI.cpp
+++ b/pokemodr/ItemEffectUI.cpp
@@ -19,8 +19,10 @@
#include "ItemEffectUI.h"
// Pokemod includes
+#include "../pokemod/Item.h"
#include "../pokemod/ItemEffect.h"
#include "../pokemod/MapWildList.h"
+#include "../pokemod/Move.h"
#include "../pokemod/Pokemod.h"
#include "../pokemod/Rules.h"
#include "../pokemod/Time.h"
@@ -102,6 +104,7 @@ void ItemEffectUI::setGui()
varValue3->setEnabled(true);
varValue4->setEnabled(true);
varValue4->setBehavior(((ItemEffect::E_TypeBoost == m_lastEffect) || (ItemEffect::E_PPBoost == m_lastEffect)) ? -1 : 1);
+ varValue5->setEnabled(true);
switch (m_lastEffect)
{
case ItemEffect::E_HPCure:
@@ -134,113 +137,80 @@ void ItemEffectUI::setGui()
}
switch (m_lastEffect)
{
- // TODO: Value2 code
-// case ItemEffect::E_HPCure:
-// case ItemEffect::E_Revive:
-// if (ItemEffect::R_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_CureStatus:
-// if (Pokemod::STS_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_StatBoost:
-// if ((value2 <= 0) || (65536 <= value2))
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_ModifyStatBattle:
-// if (Pokemod::ST_End_Battle <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_ShieldBattle:
-// if (ItemEffect::SP_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_TypeBoost:
-// if (static_cast<const Pokemod*>(pokemod())->typeIndex(value2) == INT_MAX)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_PPRestore:
-// if (ItemEffect::A_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Repel:
-// if (ItemEffect::RP_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Escape:
-// if (ItemEffect::ES_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_TM:
-// case ItemEffect::E_HM:
-// if (static_cast<const Pokemod*>(pokemod())->moveIndex(value2) == INT_MAX)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Ball:
-// if (ItemEffect::B_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Scope:
-// break;
-// case ItemEffect::E_Berry:
-// if (ItemEffect::B2_End <= value2)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Coin:
-// case ItemEffect::E_CoinCase:
-// if (value2 <= 0)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// case ItemEffect::E_Acorn:
-// if (static_cast<const Pokemod*>(pokemod())->itemIndex(value2) == INT_MAX)
-// {
-// emit(error(bounds("value2")));
-// return;
-// }
-// break;
-// default:
-// varValue2->setEnabled(false);
-// break;
+ case ItemEffect::E_HPCure:
+ case ItemEffect::E_Revive:
+ varValue2->addItems(ItemEffect::RelativeStr);
+ for (int i = 0; i < ItemEffect::R_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_CureStatus:
+ varValue2->addItems(Pokemod::StatusStr);
+ for (int i = 0; i < Pokemod::STS_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_ModifyStatBattle:
+ for (int i = 0; i < Pokemod::ST_End_Battle; ++i)
+ {
+ if (!isSplit && (Pokemod::ST_SpecialDefense == i))
+ continue;
+ varValue2->addItem((isSplit ? Pokemod::StatGSCStr : Pokemod::StatRBYStr)[i], i);
+ }
+ break;
+ case ItemEffect::E_ShieldBattle:
+ varValue2->addItems(ItemEffect::SpecialPhysicalStr);
+ for (int i = 0; i < ItemEffect::SP_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_TypeBoost:
+ for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->typeCount(); ++i)
+ {
+ const Type* type = static_cast<const Pokemod*>(original()->pokemod())->type(i);
+ varValue2->addItem(type->name(), type->id());
+ }
+ break;
+ case ItemEffect::E_PPRestore:
+ varValue2->addItems(ItemEffect::AmountStr);
+ for (int i = 0; i < ItemEffect::A_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_Repel:
+ varValue2->addItems(ItemEffect::RepelStr);
+ for (int i = 0; i < ItemEffect::RP_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_Escape:
+ varValue2->addItems(ItemEffect::EscapeStr);
+ for (int i = 0; i < ItemEffect::ES_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_TM:
+ case ItemEffect::E_HM:
+ for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->moveCount(); ++i)
+ {
+ const Move* move = static_cast<const Pokemod*>(original()->pokemod())->move(i);
+ varValue2->addItem(move->name(), move->id());
+ }
+ break;
+ case ItemEffect::E_Ball:
+ varValue2->addItems(ItemEffect::BallTypeStr);
+ for (int i = 0; i < ItemEffect::B_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_Berry:
+ varValue2->addItems(ItemEffect::BerryTypeStr);
+ for (int i = 0; i < ItemEffect::B2_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case ItemEffect::E_Acorn:
+ for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->itemCount(); ++i)
+ {
+ const Item* item = static_cast<const Pokemod*>(original()->pokemod())->item(i);
+ varValue2->addItem(item->name(), item->id());
+ }
+ break;
+ default:
+ varValue2->setEnabled(false);
+ break;
}
switch (m_lastEffect)
{
@@ -286,6 +256,20 @@ void ItemEffectUI::setGui()
varValue4->setEnabled(false);
break;
}
+ switch (m_lastEffect)
+ {
+ case ItemEffect::E_StatBoost:
+ varValue5->setRange(6, 65535);
+ break;
+ case ItemEffect::E_Scope:
+ case ItemEffect::E_Coin:
+ case ItemEffect::E_CoinCase:
+ varValue5->setRange(0, INT_MAX);
+ break;
+ default:
+ varValue5->setEnabled(false);
+ break;
+ }
}
varValue2->setCurrentIndex(varValue2->findData(static_cast<ItemEffect*>(modified())->value2()));
m_lastValue2 = static_cast<ItemEffect*>(modified())->value2();
@@ -441,3 +425,8 @@ void ItemEffectUI::on_varValue4_valueChanged(const Fraction& value4)
{
static_cast<ItemEffect*>(modified())->setValue4(value4);
}
+
+void ItemEffectUI::on_varValue5_valueChanged(const int value5)
+{
+ static_cast<ItemEffect*>(modified())->setValue5(value5);
+}