diff options
Diffstat (limited to 'pokemodr/MapTrainerTeamMemberUI.cpp')
| -rw-r--r-- | pokemodr/MapTrainerTeamMemberUI.cpp | 90 |
1 files changed, 68 insertions, 22 deletions
diff --git a/pokemodr/MapTrainerTeamMemberUI.cpp b/pokemodr/MapTrainerTeamMemberUI.cpp index 4b717214..7f3689d0 100644 --- a/pokemodr/MapTrainerTeamMemberUI.cpp +++ b/pokemodr/MapTrainerTeamMemberUI.cpp @@ -19,8 +19,10 @@ #include "MapTrainerTeamMemberUI.h" // Pokemod includes +#include "../pokemod/Ability.h" #include "../pokemod/Item.h" #include "../pokemod/MapTrainerTeamMember.h" +#include "../pokemod/Move.h" #include "../pokemod/Nature.h" #include "../pokemod/Pokemod.h" #include "../pokemod/Rules.h" @@ -46,41 +48,63 @@ void MapTrainerTeamMemberUI::refreshGui() varSpecies->addItem(species->name(), species->id()); } varLevel->setMaximum(pokemod()->rules()->maxLevel()); + varAbilities->clear(); + for (int i = 0; i < pokemod()->abilityCount(); ++i) + { + const Ability* ability = pokemod()->ability(i); + QListWidgetItem* widgetItem = new QListWidgetItem(ability->name(), varAbilities); + widgetItem->setData(Qt::UserRole, ability->id()); + } + boxAbilities->setEnabled(pokemod()->rules()->maxAbilities()); + varItems->clear(); + for (int i = 0; i < pokemod()->itemCount(); ++i) + { + const Item* item = pokemod()->item(i); + QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems); + widgetItem->setData(Qt::UserRole, item->id()); + } + boxItems->setEnabled(pokemod()->rules()->maxHeldItems()); + varMoves->clear(); + for (int i = 0; i < pokemod()->abilityCount(); ++i) + { + const Move* move = pokemod()->move(i); + QListWidgetItem* widgetItem = new QListWidgetItem(move->name(), varMoves); + widgetItem->setData(Qt::UserRole, move->id()); + } + varNatures->clear(); + for (int i = 0; i < pokemod()->natureCount(); ++i) + { + const Nature* nature = pokemod()->nature(i); + QListWidgetItem* widgetItem = new QListWidgetItem(nature->name(), varNatures); + widgetItem->setData(Qt::UserRole, nature->id()); + } + boxNatures->setEnabled(pokemod()->rules()->maxNatures()); } void MapTrainerTeamMemberUI::setGui() { varSpecies->setCurrentIndex(varSpecies->findData(static_cast<MapTrainerTeamMember*>(modified())->species())); varLevel->setValue(static_cast<MapTrainerTeamMember*>(modified())->level()); - varNature->setCurrentIndex(varNature->findData(static_cast<MapTrainerTeamMember*>(modified())->nature())); + for (int i = 0; i < varAbilities->count(); ++i) + { + QListWidgetItem* widgetItem = varAbilities->item(i); + widgetItem->setSelected(static_cast<MapTrainerTeamMember*>(modified())->ability(widgetItem->data(Qt::UserRole).toInt())); + } for (int i = 0; i < varItems->count(); ++i) { QListWidgetItem* widgetItem = varItems->item(i); widgetItem->setSelected(static_cast<MapTrainerTeamMember*>(modified())->item(widgetItem->data(Qt::UserRole).toInt())); } - varNature->clear(); - if (pokemod()->rules()->natureAllowed()) + for (int i = 0; i < varMoves->count(); ++i) { - for (int i = 0; i < pokemod()->natureCount(); ++i) - { - const Nature* nature = pokemod()->nature(i); - varNature->addItem(nature->name(), nature->id()); - } + QListWidgetItem* widgetItem = varMoves->item(i); + widgetItem->setSelected(static_cast<MapTrainerTeamMember*>(modified())->move(widgetItem->data(Qt::UserRole).toInt())); } - else - boxNature->setEnabled(false); - varItems->clear(); - if (pokemod()->rules()->holdItems()) + for (int i = 0; i < varNatures->count(); ++i) { - for (int i = 0; i < pokemod()->itemCount(); ++i) - { - const Item* item = pokemod()->item(i); - QListWidgetItem* widgetItem = new QListWidgetItem(item->name(), varItems); - widgetItem->setData(Qt::UserRole, item->id()); - } + QListWidgetItem* widgetItem = varNatures->item(i); + widgetItem->setSelected(static_cast<MapTrainerTeamMember*>(modified())->nature(widgetItem->data(Qt::UserRole).toInt())); } - else - boxItems->setEnabled(false); } void MapTrainerTeamMemberUI::apply() @@ -106,9 +130,13 @@ void MapTrainerTeamMemberUI::on_varLevel_valueChanged(const int level) static_cast<MapTrainerTeamMember*>(modified())->setLevel(level); } -void MapTrainerTeamMemberUI::on_varNature_activated(const int nature) +void MapTrainerTeamMemberUI::on_varAbilities_itemSelectionChanged() { - static_cast<MapTrainerTeamMember*>(modified())->setNature(varNature->itemData(nature).toInt()); + for (int i = 0; i < varAbilities->count(); ++i) + { + const QListWidgetItem* widgetItem = varAbilities->item(i); + static_cast<MapTrainerTeamMember*>(modified())->setAbility(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } } void MapTrainerTeamMemberUI::on_varItems_itemSelectionChanged() @@ -119,3 +147,21 @@ void MapTrainerTeamMemberUI::on_varItems_itemSelectionChanged() static_cast<MapTrainerTeamMember*>(modified())->setItem(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); } } + +void MapTrainerTeamMemberUI::on_varMoves_itemSelectionChanged() +{ + for (int i = 0; i < varMoves->count(); ++i) + { + const QListWidgetItem* widgetItem = varMoves->item(i); + static_cast<MapTrainerTeamMember*>(modified())->setMove(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } +} + +void MapTrainerTeamMemberUI::on_varNatures_itemSelectionChanged() +{ + for (int i = 0; i < varNatures->count(); ++i) + { + const QListWidgetItem* widgetItem = varNatures->item(i); + static_cast<MapTrainerTeamMember*>(modified())->setNature(widgetItem->data(Qt::UserRole).toInt(), widgetItem->isSelected()); + } +} |
