summaryrefslogtreecommitdiffstats
path: root/pokescripting/SpeciesAbilityWrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting/SpeciesAbilityWrapper.cpp')
-rw-r--r--pokescripting/SpeciesAbilityWrapper.cpp14
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