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/CoinListObjectWrapper.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'pokescripting/CoinListObjectWrapper.h') diff --git a/pokescripting/CoinListObjectWrapper.h b/pokescripting/CoinListObjectWrapper.h index 6fb71cea..117b6d11 100644 --- a/pokescripting/CoinListObjectWrapper.h +++ b/pokescripting/CoinListObjectWrapper.h @@ -33,14 +33,20 @@ class POKESCRIPTING_EXPORT CoinListObjectWrapper : public ObjectWrapper Q_OBJECT public: - CoinListObjectWrapper(const Pokemod::CoinListObject* object, QObject* parent); + static CoinListObjectWrapper* create(const Pokemod::CoinListObject* object, QObject* parent) + { + if (!m_instances.contains(object->id())) + m_instances[object->id()] = new CoinListObjectWrapper(object, parent); + return qobject_cast(m_instances[object->id()]); + } public slots: int type() const; - const ItemWrapper* itemObject() const; - const SpeciesWrapper* speciesObject() const; + ItemWrapper* itemObject(); + SpeciesWrapper* speciesObject(); int amount() const; int cost() const; private: + CoinListObjectWrapper(const Pokemod::CoinListObject* object, QObject* parent); CoinListObjectWrapper& operator=(const CoinListObjectWrapper& rhs); const Pokemod::CoinListObject* m_object; @@ -57,17 +63,17 @@ inline int CoinListObjectWrapper::type() const return m_object->type(); } -inline const ItemWrapper* CoinListObjectWrapper::itemObject() const +inline ItemWrapper* CoinListObjectWrapper::itemObject() { if (m_object->type() == Pokemod::CoinListObject::Item) - return new ItemWrapper(pokemod()->itemById(m_object->object()), const_cast(this)); + return ItemWrapper::create(pokemod()->itemById(m_object->object()), this); return NULL; } -inline const SpeciesWrapper* CoinListObjectWrapper::speciesObject() const +inline SpeciesWrapper* CoinListObjectWrapper::speciesObject() { if (m_object->type() == Pokemod::CoinListObject::Species) - return new SpeciesWrapper(pokemod()->speciesById(m_object->object()), const_cast(this)); + return SpeciesWrapper::create(pokemod()->speciesById(m_object->object()), this); return NULL; } -- cgit