From c1793a87ebea8c8e1bb2d5d1a409d105bfae3871 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 18 Aug 2008 18:51:31 +0000 Subject: [FIX] Script to make a tarball now defaults to HEAD for the revision [FIX] Enumeration types used to help remove some checks [FIX] Macro code moved to static members of Object (not all though) [FIX] Scripting wrappers now share information by keeping track of already-created instances of the wrapper [FIX] Scripting methods are now Q_SCRIPTABLE and not slots git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@239 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokescripting/MapWrapper.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'pokescripting/MapWrapper.cpp') diff --git a/pokescripting/MapWrapper.cpp b/pokescripting/MapWrapper.cpp index 01b9fc5f..9564a995 100644 --- a/pokescripting/MapWrapper.cpp +++ b/pokescripting/MapWrapper.cpp @@ -23,9 +23,16 @@ #include "MapTrainerWrapper.h" #include "MapWarpWrapper.h" #include "MapWildListWrapper.h" -#include "TileWrapper.h" +#include "PokemodWrapper.h" -Pokescripting::MapWrapper::MapWrapper(const Pokemod::Map* map, QObject* parent) : +Pokescripting::MapWrapper* Pokescripting::MapWrapper::create(const Pokemod::Map* map, PokemodWrapper* parent) +{ + if (!m_instances.contains(Signiture(parent, map->id()))) + m_instances[Signiture(parent, map->id())] = new MapWrapper(map, parent); + return qobject_cast(m_instances[Signiture(parent, map->id())]); +} + +Pokescripting::MapWrapper::MapWrapper(const Pokemod::Map* map, PokemodWrapper* parent) : ObjectWrapper(map, parent), m_map(map) { @@ -61,14 +68,14 @@ Pokescripting::MapWarpWrapper* Pokescripting::MapWrapper::flyWarp() return MapWarpWrapper::create(m_map->warpById(m_map->flyWarp()), this); } -int Pokescripting::MapWrapper::type() const +Pokemod::Map::Type Pokescripting::MapWrapper::type() const { return m_map->type(); } Pokescripting::TileWrapper* Pokescripting::MapWrapper::tile(const int row, const int column) { - return TileWrapper::create(pokemod()->tileById(m_map->tile(row, column)), this); + return pokemod()->tile(m_map->tile(row, column)); } QPoint Pokescripting::MapWrapper::mapSize() const -- cgit