summaryrefslogtreecommitdiffstats
path: root/pokescripting/MapEffectWrapper.h
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-08-04 23:06:44 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-08-04 23:06:44 +0000
commit56b91df6010a9f3d304438cf95816399a6e46622 (patch)
tree4fc79267d86ebca445c91e00630cb29cfc5c1da4 /pokescripting/MapEffectWrapper.h
parentc014db49f5044f15e7ad0236437ac9ae4aa3b23f (diff)
downloadsigen-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/MapEffectWrapper.h')
-rw-r--r--pokescripting/MapEffectWrapper.h14
1 files changed, 10 insertions, 4 deletions
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<MapEffectWrapper*>(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<MapEffectWrapper*>(this));
+ return SkinWrapper::create(pokemod()->skinById(m_effect->skin()), this);
}
inline bool MapEffectWrapper::isGhost() const