summaryrefslogtreecommitdiffstats
path: root/pokescripting/MapWarpWrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting/MapWarpWrapper.cpp')
-rw-r--r--pokescripting/MapWarpWrapper.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/pokescripting/MapWarpWrapper.cpp b/pokescripting/MapWarpWrapper.cpp
index 8d1ade17..476c934d 100644
--- a/pokescripting/MapWarpWrapper.cpp
+++ b/pokescripting/MapWarpWrapper.cpp
@@ -18,10 +18,18 @@
// Header include
#include "MapWarpWrapper.h"
-// Pokemod includes
-#include "../pokemod/Map.h"
+// Pokescripting includes
+#include "MapWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MapWarpWrapper::MapWarpWrapper(const Pokemod::MapWarp* warp, QObject* parent) :
+Pokescripting::MapWarpWrapper* Pokescripting::MapWarpWrapper::create(const Pokemod::MapWarp* warp, MapWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, warp->id())))
+ m_instances[Signiture(parent, warp->id())] = new MapWarpWrapper(warp, parent);
+ return qobject_cast<MapWarpWrapper*>(m_instances[Signiture(parent, warp->id())]);
+}
+
+Pokescripting::MapWarpWrapper::MapWarpWrapper(const Pokemod::MapWarp* warp, MapWrapper* parent) :
ObjectWrapper(warp, parent),
m_warp(warp)
{
@@ -39,14 +47,14 @@ QPoint Pokescripting::MapWarpWrapper::coordinate() const
return m_warp->coordinate();
}
-int Pokescripting::MapWarpWrapper::type() const
+Pokemod::MapWarp::Type Pokescripting::MapWarpWrapper::type() const
{
return m_warp->type();
}
Pokescripting::MapWarpWrapper* Pokescripting::MapWarpWrapper::toWarp()
{
- return new MapWarpWrapper(pokemod()->mapById(m_warp->toMap())->warpById(m_warp->toWarp()), this);
+ return pokemod()->map(m_warp->toMap())->warp(m_warp->toWarp());
}
Pokemod::Script Pokescripting::MapWarpWrapper::script() const