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/BadgeWrapper.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/BadgeWrapper.h')
| -rw-r--r-- | pokescripting/BadgeWrapper.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/pokescripting/BadgeWrapper.h b/pokescripting/BadgeWrapper.h index 6cfd637a..b1f018cb 100644 --- a/pokescripting/BadgeWrapper.h +++ b/pokescripting/BadgeWrapper.h @@ -32,14 +32,20 @@ class POKESCRIPTING_EXPORT BadgeWrapper : public ObjectWrapper Q_OBJECT public: - BadgeWrapper(const Pokemod::Badge* badge, QObject* parent); + static BadgeWrapper* create(const Pokemod::Badge* badge, QObject* parent) + { + if (!m_instances.contains(badge->id())) + m_instances[badge->id()] = new BadgeWrapper(badge, parent); + return qobject_cast<BadgeWrapper*>(m_instances[badge->id()]); + } public slots: QString name() const; - const SpriteWrapper* face() const; - const SpriteWrapper* badge() const; + SpriteWrapper* face(); + SpriteWrapper* badge(); int obey() const; Pokemod::Fraction stat(const int stat) const; private: + BadgeWrapper(const Pokemod::Badge* badge, QObject* parent); BadgeWrapper& operator=(const BadgeWrapper& rhs); const Pokemod::Badge* m_badge; @@ -56,14 +62,14 @@ inline QString BadgeWrapper::name() const return m_badge->name(); } -inline const Pokescripting::SpriteWrapper* BadgeWrapper::face() const +inline Pokescripting::SpriteWrapper* BadgeWrapper::face() { - return new SpriteWrapper(pokemod()->spriteById(m_badge->face()), const_cast<BadgeWrapper*>(this)); + return SpriteWrapper::create(pokemod()->spriteById(m_badge->face()), this); } -inline const Pokescripting::SpriteWrapper* BadgeWrapper::badge() const +inline Pokescripting::SpriteWrapper* BadgeWrapper::badge() { - return new SpriteWrapper(pokemod()->spriteById(m_badge->badge()), const_cast<BadgeWrapper*>(this)); + return SpriteWrapper::create(pokemod()->spriteById(m_badge->badge()), this); } inline int BadgeWrapper::obey() const |
