diff options
Diffstat (limited to 'pokescripting/SpeciesAbilityWrapper.cpp')
| -rw-r--r-- | pokescripting/SpeciesAbilityWrapper.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pokescripting/SpeciesAbilityWrapper.cpp b/pokescripting/SpeciesAbilityWrapper.cpp index a3ae9ef4..fb392653 100644 --- a/pokescripting/SpeciesAbilityWrapper.cpp +++ b/pokescripting/SpeciesAbilityWrapper.cpp @@ -19,9 +19,17 @@ #include "SpeciesAbilityWrapper.h" // Pokescripting includes -#include "AbilityWrapper.h" +#include "PokemodWrapper.h" +#include "SpeciesWrapper.h" -Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, QObject* parent) : +Pokescripting::SpeciesAbilityWrapper* Pokescripting::SpeciesAbilityWrapper::create(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent) +{ + if (!m_instances.contains(Signiture(parent, ability->id()))) + m_instances[Signiture(parent, ability->id())] = new SpeciesAbilityWrapper(ability, parent); + return qobject_cast<SpeciesAbilityWrapper*>(m_instances[Signiture(parent, ability->id())]); +} + +Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent) : ObjectWrapper(ability, parent), m_ability(ability) { @@ -29,7 +37,7 @@ Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::Speci Pokescripting::AbilityWrapper* Pokescripting::SpeciesAbilityWrapper::ability() { - return AbilityWrapper::create(pokemod()->abilityById(m_ability->ability()), this); + return pokemod()->ability(m_ability->ability()); } int Pokescripting::SpeciesAbilityWrapper::weight() const |
