From 56b91df6010a9f3d304438cf95816399a6e46622 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 4 Aug 2008 23:06:44 +0000 Subject: [FIX] SoundUI widget has a better layout [FIX] Sound playback works in SoundUI [FIX] SoundWrapper returns a Phonon object for playback in scripts now [FIX] Wrapper classes now won't be duplicated (persistent storage is possible now) [FIX] Linking to libraries is fixed for RPM [FIX] Pokemod Macros.h is hidden if not compiling pokemod [FIX] make-tarball script is simpler now (and works as upstream, not local copy) [FIX] Cleaned up spec file per review request for Fedora git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@236 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokescripting/MapEffectWrapper.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'pokescripting/MapEffectWrapper.h') diff --git a/pokescripting/MapEffectWrapper.h b/pokescripting/MapEffectWrapper.h index bf2bb127..a4fbb19f 100644 --- a/pokescripting/MapEffectWrapper.h +++ b/pokescripting/MapEffectWrapper.h @@ -32,12 +32,18 @@ class POKESCRIPTING_EXPORT MapEffectWrapper : public ObjectWrapper Q_OBJECT public: - MapEffectWrapper(const Pokemod::MapEffect* effect, QObject* parent); + static MapEffectWrapper* create(const Pokemod::MapEffect* effect, QObject* parent) + { + if (!m_instances.contains(effect->id())) + m_instances[effect->id()] = new MapEffectWrapper(effect, parent); + return qobject_cast(m_instances[effect->id()]); + } public slots: QString name() const; - const SkinWrapper* skin() const; + SkinWrapper* skin(); bool isGhost() const; private: + MapEffectWrapper(const Pokemod::MapEffect* effect, QObject* parent); MapEffectWrapper& operator=(const MapEffectWrapper& rhs); const Pokemod::MapEffect* m_effect; @@ -54,9 +60,9 @@ inline QString MapEffectWrapper::name() const return m_effect->name(); } -inline const Pokescripting::SkinWrapper* MapEffectWrapper::skin() const +inline Pokescripting::SkinWrapper* MapEffectWrapper::skin() { - return new SkinWrapper(pokemod()->skinById(m_effect->skin()), const_cast(this)); + return SkinWrapper::create(pokemod()->skinById(m_effect->skin()), this); } inline bool MapEffectWrapper::isGhost() const -- cgit