summaryrefslogtreecommitdiffstats
path: root/pokemodr/MapEffectUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/MapEffectUI.cpp')
-rw-r--r--pokemodr/MapEffectUI.cpp70
1 files changed, 35 insertions, 35 deletions
diff --git a/pokemodr/MapEffectUI.cpp b/pokemodr/MapEffectUI.cpp
index 0a712e80..a61325a7 100644
--- a/pokemodr/MapEffectUI.cpp
+++ b/pokemodr/MapEffectUI.cpp
@@ -29,7 +29,8 @@
#include "../pokemod/Pokemod.h"
MapEffectUI::MapEffectUI(MapEffect* effect, QWidget* parent) :
- ObjectUI(parent)
+ ObjectUI(parent),
+ m_lastEffect(-1)
{
setupUi(this);
QMetaObject::connectSlotsByName(this);
@@ -58,52 +59,51 @@ void MapEffectUI::refreshGui()
for (int i = 0; i < static_cast<const Pokemod*>(original()->pokemod())->dialogCount(); ++i)
{
const Dialog* dialog = static_cast<const Pokemod*>(original()->pokemod())->dialog(i);
- varDialog->addItem(dialog->dialog().mid(0, 25));
- varDialog->setItemData(i, dialog->id());
+ varDialog->addItem(dialog->dialog().mid(0, 25), dialog->id());
}
}
void MapEffectUI::setGui()
{
+ const bool resetEffect = (static_cast<MapEffect*>(modified())->effect() == m_lastEffect);
varName->setText(static_cast<MapEffect*>(modified())->name());
varCoordinate->setValue(static_cast<MapEffect*>(modified())->coordinate());
varExistFlag->setValue(static_cast<MapEffect*>(modified())->existFlag());
varSkin->setIcon(static_cast<MapEffect*>(modified())->skin());
varEffect->setCurrentIndex(static_cast<MapEffect*>(modified())->effect());
- const int effect = static_cast<MapEffect*>(modified())->effect();
- if ((effect == MapEffect::E_Button) || (effect == MapEffect::E_StrengthBlock))
+ m_lastEffect = static_cast<MapEffect*>(modified())->effect();
+ if (resetEffect)
{
- varValue1->setEnabled(true);
- varValue1->setValue(static_cast<MapEffect*>(modified())->value1());
- }
- else
- varValue1->setEnabled(false);
- varValue2->clear();
- switch (effect)
- {
- case MapEffect::E_Item:
- 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());
- varValue2->setItemData(i, item->id());
- }
- varValue2->setCurrentIndex(varValue2->findData(static_cast<MapEffect*>(modified())->value2()));
- break;
- case MapEffect::E_PC:
- varValue2->addItems(MapEffect::PCTypeStr);
- for (int i = 0; i < MapEffect::PC_End; ++i)
- varValue2->setItemData(i, i);
- varValue2->setCurrentIndex(static_cast<MapEffect*>(modified())->value2());
- break;
- case MapEffect::E_StrengthBlock:
- case MapEffect::E_Button:
- varValue2->addItems(Flag::ValueStr);
- for (int i = 0; i < Flag::End; ++i)
- varValue2->setItemData(i, i);
- varValue2->setCurrentIndex(static_cast<MapEffect*>(modified())->value2());
- break;
+ varValue1->setEnabled((m_lastEffect == MapEffect::E_Button) || (m_lastEffect == MapEffect::E_StrengthBlock));
+ varValue2->clear();
+ varValue2->setEnabled(true);
+ switch (m_lastEffect)
+ {
+ case MapEffect::E_Item:
+ 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;
+ case MapEffect::E_PC:
+ varValue2->addItems(MapEffect::PCTypeStr);
+ for (int i = 0; i < MapEffect::PC_End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ case MapEffect::E_StrengthBlock:
+ case MapEffect::E_Button:
+ varValue2->addItems(Flag::ValueStr);
+ for (int i = 0; i < Flag::End; ++i)
+ varValue2->setItemData(i, i);
+ break;
+ default:
+ varValue2->setEnabled(false);
+ break;
+ }
}
+ varValue1->setValue(static_cast<MapEffect*>(modified())->value1());
+ varValue2->setCurrentIndex(varValue2->findData(static_cast<MapEffect*>(modified())->value2()));
varDirection->setCurrentIndex(static_cast<MapEffect*>(modified())->direction());
varIsGhost->setChecked(static_cast<MapEffect*>(modified())->isGhost() ? Qt::Checked : Qt::Unchecked);
varCanMove->setChecked(static_cast<MapEffect*>(modified())->canMove() ? Qt::Checked : Qt::Unchecked);