summaryrefslogtreecommitdiffstats
path: root/pokescripting/MapWildListWrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting/MapWildListWrapper.h')
-rw-r--r--pokescripting/MapWildListWrapper.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/pokescripting/MapWildListWrapper.h b/pokescripting/MapWildListWrapper.h
index cf37a07a..b11a2346 100644
--- a/pokescripting/MapWildListWrapper.h
+++ b/pokescripting/MapWildListWrapper.h
@@ -32,13 +32,19 @@ class POKESCRIPTING_EXPORT MapWildListWrapper : public ObjectWrapper
Q_OBJECT
public:
- MapWildListWrapper(const Pokemod::MapWildList* wildList, QObject* parent);
+ static MapWildListWrapper* create(const Pokemod::MapWildList* wildList, QObject* parent)
+ {
+ if (!m_instances.contains(wildList->id()))
+ m_instances[wildList->id()] = new MapWildListWrapper(wildList, parent);
+ return qobject_cast<MapWildListWrapper*>(m_instances[wildList->id()]);
+ }
public slots:
QString name() const;
- const MapWildListEncounterWrapper* encounter(const int index) const;
+ MapWildListEncounterWrapper* encounter(const int index);
int encounterCount() const;
private:
+ MapWildListWrapper(const Pokemod::MapWildList* wildList, QObject* parent);
MapWildListWrapper& operator=(const MapWildListWrapper& rhs);
const Pokemod::MapWildList* m_wildList;
@@ -55,9 +61,9 @@ inline QString MapWildListWrapper::name() const
return m_wildList->name();
}
-inline const MapWildListEncounterWrapper* MapWildListWrapper::encounter(const int index) const
+inline MapWildListEncounterWrapper* MapWildListWrapper::encounter(const int index)
{
- return new MapWildListEncounterWrapper(m_wildList->encounter(index), const_cast<MapWildListWrapper*>(this));
+ return MapWildListEncounterWrapper::create(m_wildList->encounter(index), this);
}
inline int MapWildListWrapper::encounterCount() const