diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-08-04 23:06:44 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-08-04 23:06:44 +0000 |
| commit | 56b91df6010a9f3d304438cf95816399a6e46622 (patch) | |
| tree | 4fc79267d86ebca445c91e00630cb29cfc5c1da4 /pokescripting/ItemWrapper.h | |
| parent | c014db49f5044f15e7ad0236437ac9ae4aa3b23f (diff) | |
| download | sigen-56b91df6010a9f3d304438cf95816399a6e46622.tar.gz sigen-56b91df6010a9f3d304438cf95816399a6e46622.tar.xz sigen-56b91df6010a9f3d304438cf95816399a6e46622.zip | |
[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
Diffstat (limited to 'pokescripting/ItemWrapper.h')
| -rw-r--r-- | pokescripting/ItemWrapper.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/pokescripting/ItemWrapper.h b/pokescripting/ItemWrapper.h index 784cd63c..124f7dda 100644 --- a/pokescripting/ItemWrapper.h +++ b/pokescripting/ItemWrapper.h @@ -32,14 +32,20 @@ class POKESCRIPTING_EXPORT ItemWrapper : public ObjectWrapper Q_OBJECT public: - ItemWrapper(const Pokemod::Item* item, QObject* parent); + static ItemWrapper* create(const Pokemod::Item* item, QObject* parent) + { + if (!m_instances.contains(item->id())) + m_instances[item->id()] = new ItemWrapper(item, parent); + return qobject_cast<ItemWrapper*>(m_instances[item->id()]); + } public slots: QString name() const; bool sellable() const; - const ItemTypeWrapper* type() const; + ItemTypeWrapper* type(); int price() const; QString description() const; private: + ItemWrapper(const Pokemod::Item* item, QObject* parent); ItemWrapper& operator=(const ItemWrapper& rhs); const Pokemod::Item* m_item; @@ -61,9 +67,9 @@ inline bool ItemWrapper::sellable() const return m_item->sellable(); } -inline const ItemTypeWrapper* ItemWrapper::type() const +inline ItemTypeWrapper* ItemWrapper::type() { - return new ItemTypeWrapper(pokemod()->itemTypeById(m_item->type()), const_cast<ItemWrapper*>(this)); + return ItemTypeWrapper::create(pokemod()->itemTypeById(m_item->type()), this); } inline int ItemWrapper::price() const |
