summaryrefslogtreecommitdiffstats
path: root/pokemodr/RulesUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/RulesUI.cpp')
-rw-r--r--pokemodr/RulesUI.cpp66
1 files changed, 35 insertions, 31 deletions
diff --git a/pokemodr/RulesUI.cpp b/pokemodr/RulesUI.cpp
index 60ea3c50..33168e67 100644
--- a/pokemodr/RulesUI.cpp
+++ b/pokemodr/RulesUI.cpp
@@ -26,12 +26,13 @@
#include "RulesUI.h"
RulesUI::RulesUI(Rules* r, QWidget* parent) :
+ ObjectUI(parent),
rules(r),
- rules_mod(new Rules(r->getPokemod(), *r)),
- ObjectUI(r, rules_mod, parent)
+ rules_mod(new Rules(r->getPokemod(), *r))
{
setupUi(this);
QMetaObject::connectSlotsByName(this);
+ setObjects(rules, rules_mod);
varMaxDV->addItems(Rules::DVStr);
setGui();
}
@@ -60,7 +61,7 @@ void RulesUI::setGui()
boxHardCash->setChecked(rules_mod->getHardCash() ? Qt::Checked : Qt::Unchecked);
boxSplitSpecial->setChecked(rules_mod->getSpecialSplit() ? Qt::Checked : Qt::Unchecked);
varSplitSpecialDV->setCheckState(rules_mod->getSpecialDVSplit() ? Qt::Checked : Qt::Unchecked);
- varMaxDV->setCurrentItem(Rules::DVStr[rules_mod->getMaxDVValue() >> 5]);
+ varMaxDV->setCurrentItem(Rules::DVStr[rules_mod->getMaxDVValue()]);
boxHappiness->setChecked(rules_mod->getHappiness() ? Qt::Checked : Qt::Unchecked);
varFaintLoss->setValue(rules_mod->getHappyFaintLoss());
varLevelGain->setValue(rules_mod->getHappyLevelGain());
@@ -71,7 +72,7 @@ void RulesUI::setGui()
varMaxEVPerStat->setMaximum(rules_mod->getMaxTotalEV());
varPokerusNum->setValue(rules_mod->getPokerusChance().getNum());
varPokerusDenom->setValue(rules_mod->getPokerusChance().getDenom());
- varPokerusNum->setMaximum(rules_mod->getPokerusChance().getDenom() - 1);
+ varPokerusNum->setMaximum(rules_mod->getPokerusChance().getDenom());
}
void RulesUI::on_buttonApply_clicked()
@@ -91,23 +92,13 @@ void RulesUI::on_buttonDiscard_clicked()
void RulesUI::on_boxGenders_toggled(const bool g)
{
rules_mod->setGenderAllowed(g);
- if (!g)
- varBreeding->setCheckState(Qt::Unchecked);
emit(setChanged(true));
}
void RulesUI::on_varBreeding_toggled(const bool b)
{
- try
- {
- rules_mod->setBreedingAllowed(b);
- emit(setChanged(true));
- }
- catch (Exception& e)
- {
- BugCatcher::report(e);
- setGui();
- }
+ rules_mod->setBreedingAllowed(b);
+ emit(setChanged(true));
}
void RulesUI::on_varHeldItems_valueChanged(const int h)
@@ -148,10 +139,9 @@ void RulesUI::on_varBoxSize_valueChanged(const int b)
void RulesUI::on_varMaxParty_valueChanged(const int m)
{
- if (unsigned(m) < rules_mod->getMaxFight())
- varMaxFight->setValue(m);
rules_mod->setMaxParty(m);
varMaxFight->setMaximum(m);
+ setGui();
emit(setChanged(true));
}
@@ -212,8 +202,6 @@ void RulesUI::on_boxHardCash_toggled(const bool h)
void RulesUI::on_boxSplitSpecial_toggled(const bool s)
{
rules_mod->setSpecialSplit(s);
- if (!s)
- varSplitSpecialDV->setCheckState(Qt::Unchecked);
emit(setChanged(true));
}
@@ -229,7 +217,7 @@ void RulesUI::on_varMaxDV_currentIndexChanged(const QString& m)
{
if (Rules::DVStr.contains(m))
{
- rules_mod->setMaxDVValue((Rules::DVStr.indexOf(m) << 4) + 16);
+ rules_mod->setMaxDVValue(Rules::DVStr.indexOf(m));
emit(setChanged(true));
}
else
@@ -274,17 +262,33 @@ void RulesUI::on_boxEffortValues_toggled(const bool e)
void RulesUI::on_varMaxEV_valueChanged(const int m)
{
- if (unsigned(m) < rules_mod->getMaxEVPerStat())
- varMaxEVPerStat->setValue(m);
- rules_mod->setMaxTotalEV(m);
- varMaxEVPerStat->setMaximum(m);
- emit(setChanged(true));
+ try
+ {
+ if (unsigned(m) < rules_mod->getMaxEVPerStat())
+ varMaxEVPerStat->setValue(m);
+ rules_mod->setMaxTotalEV(m);
+ varMaxEVPerStat->setMaximum(m);
+ emit(setChanged(true));
+ }
+ catch (BoundsException& e)
+ {
+ BugCatcher::report(e);
+ setGui();
+ }
}
void RulesUI::on_varMaxEVPerStat_valueChanged(const int m)
{
- rules_mod->setMaxEVPerStat(m);
- emit(setChanged(true));
+ try
+ {
+ rules_mod->setMaxEVPerStat(m);
+ emit(setChanged(true));
+ }
+ catch (BoundsException& e)
+ {
+ BugCatcher::report(e);
+ setGui();
+ }
}
void RulesUI::on_varPokerusNum_valueChanged(const int p)
@@ -292,7 +296,7 @@ void RulesUI::on_varPokerusNum_valueChanged(const int p)
try
{
rules_mod->setPokerusChanceNum(p);
- varPokerus->setText(QString::number(rules_mod->getPokerusChance()));
+ varPokerus->setText(QString::number(rules_mod->getPokerusChance(), 'g', 15));
emit(setChanged(true));
}
catch (Exception& e)
@@ -307,8 +311,8 @@ void RulesUI::on_varPokerusDenom_valueChanged(const int p)
try
{
rules_mod->setPokerusChanceDenom(p);
- varPokerusNum->setMaximum(p - 1);
- varPokerus->setText(QString::number(rules_mod->getPokerusChance()));
+ varPokerusNum->setMaximum(p);
+ varPokerus->setText(QString::number(rules_mod->getPokerusChance(), 'g', 15));
emit(setChanged(true));
}
catch (Exception& e)