summaryrefslogtreecommitdiffstats
path: root/pokescripting/MapTrainerTeamMemberWrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting/MapTrainerTeamMemberWrapper.h')
-rw-r--r--pokescripting/MapTrainerTeamMemberWrapper.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/pokescripting/MapTrainerTeamMemberWrapper.h b/pokescripting/MapTrainerTeamMemberWrapper.h
index b8495745..c0330469 100644
--- a/pokescripting/MapTrainerTeamMemberWrapper.h
+++ b/pokescripting/MapTrainerTeamMemberWrapper.h
@@ -36,15 +36,21 @@ class POKESCRIPTING_EXPORT MapTrainerTeamMemberWrapper : public ObjectWrapper
Q_OBJECT
public:
- MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent);
+ static MapTrainerTeamMemberWrapper* create(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent)
+ {
+ if (!m_instances.contains(teamMember->id()))
+ m_instances[teamMember->id()] = new MapTrainerTeamMemberWrapper(teamMember, parent);
+ return qobject_cast<MapTrainerTeamMemberWrapper*>(m_instances[teamMember->id()]);
+ }
public slots:
- const SpeciesWrapper* species() const;
+ SpeciesWrapper* species();
int level() const;
bool ability(const int ability) const;
bool item(const int item) const;
bool move(const int move) const;
bool nature(const int nature) const;
private:
+ MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent);
MapTrainerTeamMemberWrapper& operator=(const MapTrainerTeamMemberWrapper& rhs);
const Pokemod::MapTrainerTeamMember* m_teamMember;
@@ -56,9 +62,9 @@ inline MapTrainerTeamMemberWrapper::MapTrainerTeamMemberWrapper(const Pokemod::M
{
}
-inline const SpeciesWrapper* MapTrainerTeamMemberWrapper::species() const
+inline SpeciesWrapper* MapTrainerTeamMemberWrapper::species()
{
- return new SpeciesWrapper(pokemod()->speciesById(m_teamMember->species()), const_cast<MapTrainerTeamMemberWrapper*>(this));
+ return SpeciesWrapper::create(pokemod()->speciesById(m_teamMember->species()), this);
}
inline int MapTrainerTeamMemberWrapper::level() const