diff options
Diffstat (limited to 'pokescripting/TileWrapper.cpp')
| -rw-r--r-- | pokescripting/TileWrapper.cpp | 19 |
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); } |
