summaryrefslogtreecommitdiffstats
path: root/pokescripting/TileWrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting/TileWrapper.cpp')
-rw-r--r--pokescripting/TileWrapper.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/pokescripting/TileWrapper.cpp b/pokescripting/TileWrapper.cpp
index a64f40c7..8cec95f5 100644
--- a/pokescripting/TileWrapper.cpp
+++ b/pokescripting/TileWrapper.cpp
@@ -19,9 +19,16 @@
#include "TileWrapper.h"
// Pokescripting includes
-#include "SpriteWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::TileWrapper::TileWrapper(const Pokemod::Tile* tile, QObject* parent) :
+Pokescripting::TileWrapper* Pokescripting::TileWrapper::create(const Pokemod::Tile* tile, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, tile->id())))
+ m_instances[Signiture(parent, tile->id())] = new TileWrapper(tile, parent);
+ return qobject_cast<TileWrapper*>(m_instances[Signiture(parent, tile->id())]);
+}
+
+Pokescripting::TileWrapper::TileWrapper(const Pokemod::Tile* tile, PokemodWrapper* parent) :
ObjectWrapper(tile, parent),
m_tile(tile)
{
@@ -38,13 +45,13 @@ Pokescripting::SpriteWrapper* Pokescripting::TileWrapper::sprite()
{
// TODO: Check sprite dimensions
}
- return SpriteWrapper::create(pokemod()->spriteById(m_tile->sprite()), this);
+ return pokemod()->sprite(m_tile->sprite());
}
-bool Pokescripting::TileWrapper::from(const int direction) const
+bool Pokescripting::TileWrapper::from(const Pokemod::Direction direction) const
{
- if (value(QString("direction-%1").arg(Pokemod::DirectionStr[direction])).canConvert<bool>())
- return value(QString("direction-%1").arg(Pokemod::DirectionStr[direction])).toBool();
+ if (value(QString("direction-%1").arg(direction)).canConvert<bool>())
+ return value(QString("direction-%1").arg(direction)).toBool();
return m_tile->from(direction);
}