diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-05-19 23:07:18 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-05-19 23:07:18 +0000 |
| commit | 74e975209e6bcc05ed9f040a19c64960ae519e2c (patch) | |
| tree | f4908d02b52b5f37b141d1d50c4311f1c98e95a4 /pokemodr/ItemEffectUI.cpp | |
| parent | c5c0402fdc603db60f3c110babc32b4945a8e729 (diff) | |
| download | sigen-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.cpp | 203 |
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); +} |
