summaryrefslogtreecommitdiffstats
path: root/pokescripting
diff options
context:
space:
mode:
Diffstat (limited to 'pokescripting')
-rw-r--r--pokescripting/AbilityWrapper.cpp12
-rw-r--r--pokescripting/AbilityWrapper.h21
-rw-r--r--pokescripting/AuthorWrapper.cpp12
-rw-r--r--pokescripting/AuthorWrapper.h17
-rw-r--r--pokescripting/BadgeWrapper.cpp17
-rw-r--r--pokescripting/BadgeWrapper.h21
-rw-r--r--pokescripting/CMakeLists.txt2
-rw-r--r--pokescripting/CoinListObjectWrapper.cpp19
-rw-r--r--pokescripting/CoinListObjectWrapper.h22
-rw-r--r--pokescripting/CoinListWrapper.cpp10
-rw-r--r--pokescripting/CoinListWrapper.h24
-rw-r--r--pokescripting/Config.h5
-rw-r--r--pokescripting/EggGroupWrapper.cpp12
-rw-r--r--pokescripting/EggGroupWrapper.h13
-rw-r--r--pokescripting/GlobalScriptWrapper.cpp12
-rw-r--r--pokescripting/GlobalScriptWrapper.h15
-rw-r--r--pokescripting/ItemTypeWrapper.cpp12
-rw-r--r--pokescripting/ItemTypeWrapper.h19
-rw-r--r--pokescripting/ItemWrapper.cpp13
-rw-r--r--pokescripting/ItemWrapper.h23
-rw-r--r--pokescripting/MapEffectWrapper.cpp14
-rw-r--r--pokescripting/MapEffectWrapper.h22
-rw-r--r--pokescripting/MapTrainerTeamMemberWrapper.cpp26
-rw-r--r--pokescripting/MapTrainerTeamMemberWrapper.h24
-rw-r--r--pokescripting/MapTrainerWrapper.cpp14
-rw-r--r--pokescripting/MapTrainerWrapper.h26
-rw-r--r--pokescripting/MapWarpWrapper.cpp18
-rw-r--r--pokescripting/MapWarpWrapper.h24
-rw-r--r--pokescripting/MapWildListEncounterWrapper.cpp14
-rw-r--r--pokescripting/MapWildListEncounterWrapper.h18
-rw-r--r--pokescripting/MapWildListWrapper.cpp10
-rw-r--r--pokescripting/MapWildListWrapper.h18
-rw-r--r--pokescripting/MapWrapper.cpp15
-rw-r--r--pokescripting/MapWrapper.h29
-rw-r--r--pokescripting/MoveWrapper.cpp13
-rw-r--r--pokescripting/MoveWrapper.h31
-rw-r--r--pokescripting/NatureWrapper.cpp14
-rw-r--r--pokescripting/NatureWrapper.h17
-rw-r--r--pokescripting/ObjectWrapper.cpp30
-rw-r--r--pokescripting/ObjectWrapper.h18
-rw-r--r--pokescripting/PokemodWrapper.cpp6
-rw-r--r--pokescripting/PokemodWrapper.h60
-rw-r--r--pokescripting/RulesWrapper.cpp12
-rw-r--r--pokescripting/RulesWrapper.h57
-rw-r--r--pokescripting/SkinWrapper.cpp12
-rw-r--r--pokescripting/SkinWrapper.h15
-rw-r--r--pokescripting/SoundWrapper.cpp17
-rw-r--r--pokescripting/SoundWrapper.h16
-rw-r--r--pokescripting/SpeciesAbilityWrapper.cpp14
-rw-r--r--pokescripting/SpeciesAbilityWrapper.h16
-rw-r--r--pokescripting/SpeciesItemWrapper.cpp14
-rw-r--r--pokescripting/SpeciesItemWrapper.h16
-rw-r--r--pokescripting/SpeciesMoveWrapper.cpp14
-rw-r--r--pokescripting/SpeciesMoveWrapper.h20
-rw-r--r--pokescripting/SpeciesWrapper.cpp36
-rw-r--r--pokescripting/SpeciesWrapper.h71
-rw-r--r--pokescripting/SpriteWrapper.cpp12
-rw-r--r--pokescripting/SpriteWrapper.h15
-rw-r--r--pokescripting/StatusWrapper.cpp14
-rw-r--r--pokescripting/StatusWrapper.h15
-rw-r--r--pokescripting/StoreWrapper.cpp13
-rw-r--r--pokescripting/StoreWrapper.h15
-rw-r--r--pokescripting/TileWrapper.cpp19
-rw-r--r--pokescripting/TileWrapper.h19
-rw-r--r--pokescripting/TimeWrapper.cpp12
-rw-r--r--pokescripting/TimeWrapper.h17
-rw-r--r--pokescripting/TrainerWrapper.cpp23
-rw-r--r--pokescripting/TrainerWrapper.h29
-rw-r--r--pokescripting/TypeWrapper.cpp12
-rw-r--r--pokescripting/TypeWrapper.h15
-rw-r--r--pokescripting/WeatherWrapper.cpp12
-rw-r--r--pokescripting/WeatherWrapper.h15
72 files changed, 759 insertions, 590 deletions
diff --git a/pokescripting/AbilityWrapper.cpp b/pokescripting/AbilityWrapper.cpp
index d66d4fd7..c7641c87 100644
--- a/pokescripting/AbilityWrapper.cpp
+++ b/pokescripting/AbilityWrapper.cpp
@@ -18,7 +18,17 @@
// header include
#include "AbilityWrapper.h"
-Pokescripting::AbilityWrapper::AbilityWrapper(const Pokemod::Ability* ability, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::AbilityWrapper* Pokescripting::AbilityWrapper::create(const Pokemod::Ability* ability, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, ability->id())))
+ m_instances[Signiture(parent, ability->id())] = new AbilityWrapper(ability, parent);
+ return qobject_cast<AbilityWrapper*>(m_instances[Signiture(parent, ability->id())]);
+}
+
+Pokescripting::AbilityWrapper::AbilityWrapper(const Pokemod::Ability* ability, PokemodWrapper* parent) :
ObjectWrapper(ability, parent),
m_ability(ability)
{
diff --git a/pokescripting/AbilityWrapper.h b/pokescripting/AbilityWrapper.h
index 172a8660..88279ab7 100644
--- a/pokescripting/AbilityWrapper.h
+++ b/pokescripting/AbilityWrapper.h
@@ -31,20 +31,15 @@ class POKESCRIPTING_EXPORT AbilityWrapper : public ObjectWrapper
Q_OBJECT
public:
- static AbilityWrapper* create(const Pokemod::Ability* ability, QObject* parent)
- {
- if (!m_instances.contains(ability->id()))
- m_instances[ability->id()] = new AbilityWrapper(ability, parent);
- return qobject_cast<AbilityWrapper*>(m_instances[ability->id()]);
- }
- public slots:
- QString name() const;
- int priority() const;
- QString description() const;
- Pokemod::Script battleScript() const;
- Pokemod::Script worldScript() const;
+ static AbilityWrapper* create(const Pokemod::Ability* ability, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE int priority() const;
+ Q_SCRIPTABLE QString description() const;
+ Q_SCRIPTABLE Pokemod::Script battleScript() const;
+ Q_SCRIPTABLE Pokemod::Script worldScript() const;
private:
- AbilityWrapper(const Pokemod::Ability* ability, QObject* parent);
+ AbilityWrapper(const Pokemod::Ability* ability, PokemodWrapper* parent);
AbilityWrapper& operator=(const AbilityWrapper& rhs);
const Pokemod::Ability* m_ability;
diff --git a/pokescripting/AuthorWrapper.cpp b/pokescripting/AuthorWrapper.cpp
index 693b496e..53834074 100644
--- a/pokescripting/AuthorWrapper.cpp
+++ b/pokescripting/AuthorWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "AuthorWrapper.h"
-Pokescripting::AuthorWrapper::AuthorWrapper(const Pokemod::Author* author, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::AuthorWrapper* Pokescripting::AuthorWrapper::create(const Pokemod::Author* author, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, author->id())))
+ m_instances[Signiture(parent, author->id())] = new AuthorWrapper(author, parent);
+ return qobject_cast<AuthorWrapper*>(m_instances[Signiture(parent, author->id())]);
+}
+
+Pokescripting::AuthorWrapper::AuthorWrapper(const Pokemod::Author* author, PokemodWrapper* parent) :
ObjectWrapper(author, parent),
m_author(author)
{
diff --git a/pokescripting/AuthorWrapper.h b/pokescripting/AuthorWrapper.h
index 98259c7f..41ef6015 100644
--- a/pokescripting/AuthorWrapper.h
+++ b/pokescripting/AuthorWrapper.h
@@ -31,18 +31,13 @@ class POKESCRIPTING_EXPORT AuthorWrapper : public ObjectWrapper
Q_OBJECT
public:
- static AuthorWrapper* create(const Pokemod::Author* author, QObject* parent)
- {
- if (!m_instances.contains(author->id()))
- m_instances[author->id()] = new AuthorWrapper(author, parent);
- return qobject_cast<AuthorWrapper*>(m_instances[author->id()]);
- }
- public slots:
- QString name() const;
- QString email() const;
- QString role() const;
+ static AuthorWrapper* create(const Pokemod::Author* author, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE QString email() const;
+ Q_SCRIPTABLE QString role() const;
private:
- AuthorWrapper(const Pokemod::Author* author, QObject* parent);
+ AuthorWrapper(const Pokemod::Author* author, PokemodWrapper* parent);
AuthorWrapper& operator=(const AuthorWrapper& rhs);
const Pokemod::Author* m_author;
diff --git a/pokescripting/BadgeWrapper.cpp b/pokescripting/BadgeWrapper.cpp
index 7fdcfef7..0d495a15 100644
--- a/pokescripting/BadgeWrapper.cpp
+++ b/pokescripting/BadgeWrapper.cpp
@@ -19,9 +19,16 @@
#include "BadgeWrapper.h"
// Pokescripting includes
-#include "SpriteWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::BadgeWrapper::BadgeWrapper(const Pokemod::Badge* badge, QObject* parent) :
+Pokescripting::BadgeWrapper* Pokescripting::BadgeWrapper::create(const Pokemod::Badge* badge, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, badge->id())))
+ m_instances[Signiture(parent, badge->id())] = new BadgeWrapper(badge, parent);
+ return qobject_cast<BadgeWrapper*>(m_instances[Signiture(parent, badge->id())]);
+}
+
+Pokescripting::BadgeWrapper::BadgeWrapper(const Pokemod::Badge* badge, PokemodWrapper* parent) :
ObjectWrapper(badge, parent),
m_badge(badge)
{
@@ -34,12 +41,12 @@ QString Pokescripting::BadgeWrapper::name() const
Pokescripting::SpriteWrapper* Pokescripting::BadgeWrapper::face()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_badge->face()), this);
+ return pokemod()->sprite(m_badge->face());
}
Pokescripting::SpriteWrapper* Pokescripting::BadgeWrapper::badge()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_badge->badge()), this);
+ return pokemod()->sprite(m_badge->badge());
}
int Pokescripting::BadgeWrapper::obey() const
@@ -47,7 +54,7 @@ int Pokescripting::BadgeWrapper::obey() const
return m_badge->obey();
}
-Pokemod::Fraction Pokescripting::BadgeWrapper::stat(const int stat) const
+Pokemod::Fraction Pokescripting::BadgeWrapper::stat(const Pokemod::Stat stat) const
{
return m_badge->stat(stat);
}
diff --git a/pokescripting/BadgeWrapper.h b/pokescripting/BadgeWrapper.h
index fa518e7a..6aafd808 100644
--- a/pokescripting/BadgeWrapper.h
+++ b/pokescripting/BadgeWrapper.h
@@ -34,20 +34,15 @@ class POKESCRIPTING_EXPORT BadgeWrapper : public ObjectWrapper
Q_OBJECT
public:
- static BadgeWrapper* create(const Pokemod::Badge* badge, QObject* parent)
- {
- if (!m_instances.contains(badge->id()))
- m_instances[badge->id()] = new BadgeWrapper(badge, parent);
- return qobject_cast<BadgeWrapper*>(m_instances[badge->id()]);
- }
- public slots:
- QString name() const;
- SpriteWrapper* face();
- SpriteWrapper* badge();
- int obey() const;
- Pokemod::Fraction stat(const int stat) const;
+ static BadgeWrapper* create(const Pokemod::Badge* badge, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE SpriteWrapper* face();
+ Q_SCRIPTABLE SpriteWrapper* badge();
+ Q_SCRIPTABLE int obey() const;
+ Q_SCRIPTABLE Pokemod::Fraction stat(const Pokemod::Stat stat) const;
private:
- BadgeWrapper(const Pokemod::Badge* badge, QObject* parent);
+ BadgeWrapper(const Pokemod::Badge* badge, PokemodWrapper* parent);
BadgeWrapper& operator=(const BadgeWrapper& rhs);
const Pokemod::Badge* m_badge;
diff --git a/pokescripting/CMakeLists.txt b/pokescripting/CMakeLists.txt
index 0a827711..30afbb0e 100644
--- a/pokescripting/CMakeLists.txt
+++ b/pokescripting/CMakeLists.txt
@@ -98,9 +98,11 @@ SET_TARGET_PROPERTIES(pokescripting
PROPERTIES
VERSION ${POKEGEN_VERSION}
SOVERSION ${POKEGEN_SOVERSION}
+ LINK_INTERFACE_LIBRARIES ""
)
TARGET_LINK_LIBRARIES(pokescripting
${QT_QTCORE_LIBRARY}
+ ${QT_QTGUI_LIBRARY}
${PHONON_LIBRARY}
${KDE4_KROSSCORE_LIBRARY}
pokemod
diff --git a/pokescripting/CoinListObjectWrapper.cpp b/pokescripting/CoinListObjectWrapper.cpp
index 06ab5dc8..fc33444d 100644
--- a/pokescripting/CoinListObjectWrapper.cpp
+++ b/pokescripting/CoinListObjectWrapper.cpp
@@ -19,16 +19,23 @@
#include "CoinListObjectWrapper.h"
// Pokescripting includes
-#include "ItemWrapper.h"
-#include "SpeciesWrapper.h"
+#include "CoinListWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::CoinListObjectWrapper::CoinListObjectWrapper(const Pokemod::CoinListObject* object, QObject* parent) :
+Pokescripting::CoinListObjectWrapper* Pokescripting::CoinListObjectWrapper::create(const Pokemod::CoinListObject* object, CoinListWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, object->id())))
+ m_instances[Signiture(parent, object->id())] = new CoinListObjectWrapper(object, parent);
+ return qobject_cast<CoinListObjectWrapper*>(m_instances[Signiture(parent, object->id())]);
+}
+
+Pokescripting::CoinListObjectWrapper::CoinListObjectWrapper(const Pokemod::CoinListObject* object, CoinListWrapper* parent) :
ObjectWrapper(object, parent),
m_object(object)
{
}
-int Pokescripting::CoinListObjectWrapper::type() const
+Pokemod::CoinListObject::Type Pokescripting::CoinListObjectWrapper::type() const
{
return m_object->type();
}
@@ -36,14 +43,14 @@ int Pokescripting::CoinListObjectWrapper::type() const
Pokescripting::ItemWrapper* Pokescripting::CoinListObjectWrapper::itemObject()
{
if (m_object->type() == Pokemod::CoinListObject::Item)
- return ItemWrapper::create(pokemod()->itemById(m_object->object()), this);
+ return pokemod()->item(m_object->object());
return NULL;
}
Pokescripting::SpeciesWrapper* Pokescripting::CoinListObjectWrapper::speciesObject()
{
if (m_object->type() == Pokemod::CoinListObject::Species)
- return SpeciesWrapper::create(pokemod()->speciesById(m_object->object()), this);
+ return pokemod()->species(m_object->object());
return NULL;
}
diff --git a/pokescripting/CoinListObjectWrapper.h b/pokescripting/CoinListObjectWrapper.h
index 1b86840f..f8de0489 100644
--- a/pokescripting/CoinListObjectWrapper.h
+++ b/pokescripting/CoinListObjectWrapper.h
@@ -27,6 +27,7 @@
namespace Pokescripting
{
// Forward declarations
+class CoinListWrapper;
class ItemWrapper;
class SpeciesWrapper;
@@ -35,20 +36,15 @@ class POKESCRIPTING_EXPORT CoinListObjectWrapper : public ObjectWrapper
Q_OBJECT
public:
- static CoinListObjectWrapper* create(const Pokemod::CoinListObject* object, QObject* parent)
- {
- if (!m_instances.contains(object->id()))
- m_instances[object->id()] = new CoinListObjectWrapper(object, parent);
- return qobject_cast<CoinListObjectWrapper*>(m_instances[object->id()]);
- }
- public slots:
- int type() const;
- ItemWrapper* itemObject();
- SpeciesWrapper* speciesObject();
- int amount() const;
- int cost() const;
+ static CoinListObjectWrapper* create(const Pokemod::CoinListObject* object, CoinListWrapper* parent);
+
+ Q_SCRIPTABLE Pokemod::CoinListObject::Type type() const;
+ Q_SCRIPTABLE ItemWrapper* itemObject();
+ Q_SCRIPTABLE SpeciesWrapper* speciesObject();
+ Q_SCRIPTABLE int amount() const;
+ Q_SCRIPTABLE int cost() const;
private:
- CoinListObjectWrapper(const Pokemod::CoinListObject* object, QObject* parent);
+ CoinListObjectWrapper(const Pokemod::CoinListObject* object, CoinListWrapper* parent);
CoinListObjectWrapper& operator=(const CoinListObjectWrapper& rhs);
const Pokemod::CoinListObject* m_object;
diff --git a/pokescripting/CoinListWrapper.cpp b/pokescripting/CoinListWrapper.cpp
index 86841f2f..38807810 100644
--- a/pokescripting/CoinListWrapper.cpp
+++ b/pokescripting/CoinListWrapper.cpp
@@ -20,8 +20,16 @@
// Pokescripting includes
#include "CoinListObjectWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::CoinListWrapper::CoinListWrapper(const Pokemod::CoinList* coinList, QObject* parent) :
+Pokescripting::CoinListWrapper* Pokescripting::CoinListWrapper::create(const Pokemod::CoinList* coinList, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, coinList->id())))
+ m_instances[Signiture(parent, coinList->id())] = new CoinListWrapper(coinList, parent);
+ return qobject_cast<CoinListWrapper*>(m_instances[Signiture(parent, coinList->id())]);
+}
+
+Pokescripting::CoinListWrapper::CoinListWrapper(const Pokemod::CoinList* coinList, PokemodWrapper* parent) :
ObjectWrapper(coinList, parent),
m_coinList(coinList)
{
diff --git a/pokescripting/CoinListWrapper.h b/pokescripting/CoinListWrapper.h
index 9b9bc63e..d702d585 100644
--- a/pokescripting/CoinListWrapper.h
+++ b/pokescripting/CoinListWrapper.h
@@ -19,7 +19,6 @@
#define __POKESCRIPTING_COINLISTWRAPPER__
// Pokescripting includes
-#include "CoinListObjectWrapper.h"
#include "ObjectWrapper.h"
// Pokemod includes
@@ -27,25 +26,24 @@
namespace Pokescripting
{
+// Forward declarations
+class CoinListObjectWrapper;
+class PokemodWrapper;
+
class POKESCRIPTING_EXPORT CoinListWrapper : public ObjectWrapper
{
Q_OBJECT
public:
- static CoinListWrapper* create(const Pokemod::CoinList* coinList, QObject* parent)
- {
- if (!m_instances.contains(coinList->id()))
- m_instances[coinList->id()] = new CoinListWrapper(coinList, parent);
- return qobject_cast<CoinListWrapper*>(m_instances[coinList->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Script script() const;
+ static CoinListWrapper* create(const Pokemod::CoinList* coinList, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
- CoinListObjectWrapper* object(const int index);
- int objectCount() const;
+ Q_SCRIPTABLE CoinListObjectWrapper* object(const int index);
+ Q_SCRIPTABLE int objectCount() const;
private:
- CoinListWrapper(const Pokemod::CoinList* coinList, QObject* parent);
+ CoinListWrapper(const Pokemod::CoinList* coinList, PokemodWrapper* parent);
CoinListWrapper& operator=(const CoinListWrapper& rhs);
const Pokemod::CoinList* m_coinList;
diff --git a/pokescripting/Config.h b/pokescripting/Config.h
index 338c4bb6..7d66807b 100644
--- a/pokescripting/Config.h
+++ b/pokescripting/Config.h
@@ -41,12 +41,13 @@ class POKESCRIPTING_EXPORT Config : public QObject
public:
Config(QObject* parent);
+
+ Q_SCRIPTABLE QVariant value(const QString& name, const bool recursive = true) const;
+ Q_SCRIPTABLE bool hasValue(const QString& name, const bool recursive = false) const;
public slots:
void addValue(const QString& name, const QVariant& value);
void setValue(const QString& name, const QVariant& value);
void removeValue(const QString& name);
- QVariant value(const QString& name, const bool recursive = true) const;
- bool hasValue(const QString& name, const bool recursive = false) const;
virtual void writeBack();
private:
diff --git a/pokescripting/EggGroupWrapper.cpp b/pokescripting/EggGroupWrapper.cpp
index 217d84a8..2f3f9051 100644
--- a/pokescripting/EggGroupWrapper.cpp
+++ b/pokescripting/EggGroupWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "EggGroupWrapper.h"
-Pokescripting::EggGroupWrapper::EggGroupWrapper(const Pokemod::EggGroup* eggGroup, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::EggGroupWrapper* Pokescripting::EggGroupWrapper::create(const Pokemod::EggGroup* eggGroup, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, eggGroup->id())))
+ m_instances[Signiture(parent, eggGroup->id())] = new EggGroupWrapper(eggGroup, parent);
+ return qobject_cast<EggGroupWrapper*>(m_instances[Signiture(parent, eggGroup->id())]);
+}
+
+Pokescripting::EggGroupWrapper::EggGroupWrapper(const Pokemod::EggGroup* eggGroup, PokemodWrapper* parent) :
ObjectWrapper(eggGroup, parent),
m_eggGroup(eggGroup)
{
diff --git a/pokescripting/EggGroupWrapper.h b/pokescripting/EggGroupWrapper.h
index 53665e3a..c0552b35 100644
--- a/pokescripting/EggGroupWrapper.h
+++ b/pokescripting/EggGroupWrapper.h
@@ -31,16 +31,11 @@ class POKESCRIPTING_EXPORT EggGroupWrapper : public ObjectWrapper
Q_OBJECT
public:
- static EggGroupWrapper* create(const Pokemod::EggGroup* eggGroup, QObject* parent)
- {
- if (!m_instances.contains(eggGroup->id()))
- m_instances[eggGroup->id()] = new EggGroupWrapper(eggGroup, parent);
- return qobject_cast<EggGroupWrapper*>(m_instances[eggGroup->id()]);
- }
- public slots:
- QString name() const;
+ static EggGroupWrapper* create(const Pokemod::EggGroup* eggGroup, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
private:
- EggGroupWrapper(const Pokemod::EggGroup* eggGroup, QObject* parent);
+ EggGroupWrapper(const Pokemod::EggGroup* eggGroup, PokemodWrapper* parent);
EggGroupWrapper& operator=(const EggGroupWrapper& rhs);
const Pokemod::EggGroup* m_eggGroup;
diff --git a/pokescripting/GlobalScriptWrapper.cpp b/pokescripting/GlobalScriptWrapper.cpp
index 5e219aed..34a3fa62 100644
--- a/pokescripting/GlobalScriptWrapper.cpp
+++ b/pokescripting/GlobalScriptWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "GlobalScriptWrapper.h"
-Pokescripting::GlobalScriptWrapper::GlobalScriptWrapper(const Pokemod::GlobalScript* globalScript, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::GlobalScriptWrapper* Pokescripting::GlobalScriptWrapper::create(const Pokemod::GlobalScript* globalScript, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, globalScript->id())))
+ m_instances[Signiture(parent, globalScript->id())] = new GlobalScriptWrapper(globalScript, parent);
+ return qobject_cast<GlobalScriptWrapper*>(m_instances[Signiture(parent, globalScript->id())]);
+}
+
+Pokescripting::GlobalScriptWrapper::GlobalScriptWrapper(const Pokemod::GlobalScript* globalScript, PokemodWrapper* parent) :
ObjectWrapper(globalScript, parent),
m_globalScript(globalScript)
{
diff --git a/pokescripting/GlobalScriptWrapper.h b/pokescripting/GlobalScriptWrapper.h
index 00496e77..739cc60b 100644
--- a/pokescripting/GlobalScriptWrapper.h
+++ b/pokescripting/GlobalScriptWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT GlobalScriptWrapper : public ObjectWrapper
Q_OBJECT
public:
- static GlobalScriptWrapper* create(const Pokemod::GlobalScript* globalScript, QObject* parent)
- {
- if (!m_instances.contains(globalScript->id()))
- m_instances[globalScript->id()] = new GlobalScriptWrapper(globalScript, parent);
- return qobject_cast<GlobalScriptWrapper*>(m_instances[globalScript->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Script script() const;
+ static GlobalScriptWrapper* create(const Pokemod::GlobalScript* globalScript, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- GlobalScriptWrapper(const Pokemod::GlobalScript* globalScript, QObject* parent);
+ GlobalScriptWrapper(const Pokemod::GlobalScript* globalScript, PokemodWrapper* parent);
GlobalScriptWrapper& operator=(const GlobalScriptWrapper& rhs);
const Pokemod::GlobalScript* m_globalScript;
diff --git a/pokescripting/ItemTypeWrapper.cpp b/pokescripting/ItemTypeWrapper.cpp
index 947b148c..f7014d0d 100644
--- a/pokescripting/ItemTypeWrapper.cpp
+++ b/pokescripting/ItemTypeWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "ItemTypeWrapper.h"
-Pokescripting::ItemTypeWrapper::ItemTypeWrapper(const Pokemod::ItemType* itemType, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::ItemTypeWrapper* Pokescripting::ItemTypeWrapper::create(const Pokemod::ItemType* itemType, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, itemType->id())))
+ m_instances[Signiture(parent, itemType->id())] = new ItemTypeWrapper(itemType, parent);
+ return qobject_cast<ItemTypeWrapper*>(m_instances[Signiture(parent, itemType->id())]);
+}
+
+Pokescripting::ItemTypeWrapper::ItemTypeWrapper(const Pokemod::ItemType* itemType, PokemodWrapper* parent) :
ObjectWrapper(itemType, parent),
m_itemType(itemType)
{
diff --git a/pokescripting/ItemTypeWrapper.h b/pokescripting/ItemTypeWrapper.h
index 2669ac25..2570b098 100644
--- a/pokescripting/ItemTypeWrapper.h
+++ b/pokescripting/ItemTypeWrapper.h
@@ -31,19 +31,14 @@ class POKESCRIPTING_EXPORT ItemTypeWrapper : public ObjectWrapper
Q_OBJECT
public:
- static ItemTypeWrapper* create(const Pokemod::ItemType* itemType, QObject* parent)
- {
- if (!m_instances.contains(itemType->id()))
- m_instances[itemType->id()] = new ItemTypeWrapper(itemType, parent);
- return qobject_cast<ItemTypeWrapper*>(m_instances[itemType->id()]);
- }
- public slots:
- QString name() const;
- int computer() const;
- int player() const;
- int count() const;
+ static ItemTypeWrapper* create(const Pokemod::ItemType* itemType, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE int computer() const;
+ Q_SCRIPTABLE int player() const;
+ Q_SCRIPTABLE int count() const;
private:
- ItemTypeWrapper(const Pokemod::ItemType* itemType, QObject* parent);
+ ItemTypeWrapper(const Pokemod::ItemType* itemType, PokemodWrapper* parent);
ItemTypeWrapper& operator=(const ItemTypeWrapper& rhs);
const Pokemod::ItemType* m_itemType;
diff --git a/pokescripting/ItemWrapper.cpp b/pokescripting/ItemWrapper.cpp
index bcb9682a..002efea6 100644
--- a/pokescripting/ItemWrapper.cpp
+++ b/pokescripting/ItemWrapper.cpp
@@ -19,9 +19,16 @@
#include "ItemWrapper.h"
// Pokescripting includes
-#include "ItemTypeWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::ItemWrapper::ItemWrapper(const Pokemod::Item* item, QObject* parent) :
+Pokescripting::ItemWrapper* Pokescripting::ItemWrapper::create(const Pokemod::Item* item, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, item->id())))
+ m_instances[Signiture(parent, item->id())] = new ItemWrapper(item, parent);
+ return qobject_cast<ItemWrapper*>(m_instances[Signiture(parent, item->id())]);
+}
+
+Pokescripting::ItemWrapper::ItemWrapper(const Pokemod::Item* item, PokemodWrapper* parent) :
ObjectWrapper(item, parent),
m_item(item)
{
@@ -39,7 +46,7 @@ bool Pokescripting::ItemWrapper::sellable() const
Pokescripting::ItemTypeWrapper* Pokescripting::ItemWrapper::type()
{
- return ItemTypeWrapper::create(pokemod()->itemTypeById(m_item->type()), this);
+ return pokemod()->itemType(m_item->type());
}
int Pokescripting::ItemWrapper::price() const
diff --git a/pokescripting/ItemWrapper.h b/pokescripting/ItemWrapper.h
index 65b71239..c650ff9b 100644
--- a/pokescripting/ItemWrapper.h
+++ b/pokescripting/ItemWrapper.h
@@ -34,21 +34,16 @@ class POKESCRIPTING_EXPORT ItemWrapper : public ObjectWrapper
Q_OBJECT
public:
- static ItemWrapper* create(const Pokemod::Item* item, QObject* parent)
- {
- if (!m_instances.contains(item->id()))
- m_instances[item->id()] = new ItemWrapper(item, parent);
- return qobject_cast<ItemWrapper*>(m_instances[item->id()]);
- }
- public slots:
- QString name() const;
- bool sellable() const;
- ItemTypeWrapper* type();
- int price() const;
- QString description() const;
- Pokemod::Script script() const;
+ static ItemWrapper* create(const Pokemod::Item* item, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE bool sellable() const;
+ Q_SCRIPTABLE ItemTypeWrapper* type();
+ Q_SCRIPTABLE int price() const;
+ Q_SCRIPTABLE QString description() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- ItemWrapper(const Pokemod::Item* item, QObject* parent);
+ ItemWrapper(const Pokemod::Item* item, PokemodWrapper* parent);
ItemWrapper& operator=(const ItemWrapper& rhs);
const Pokemod::Item* m_item;
diff --git a/pokescripting/MapEffectWrapper.cpp b/pokescripting/MapEffectWrapper.cpp
index 9274ade8..ac1d7c41 100644
--- a/pokescripting/MapEffectWrapper.cpp
+++ b/pokescripting/MapEffectWrapper.cpp
@@ -19,9 +19,17 @@
#include "MapEffectWrapper.h"
// Pokescripting includes
-#include "SkinWrapper.h"
+#include "MapWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MapEffectWrapper::MapEffectWrapper(const Pokemod::MapEffect* effect, QObject* parent) :
+Pokescripting::MapEffectWrapper* Pokescripting::MapEffectWrapper::create(const Pokemod::MapEffect* effect, MapWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, effect->id())))
+ m_instances[Signiture(parent, effect->id())] = new MapEffectWrapper(effect, parent);
+ return qobject_cast<MapEffectWrapper*>(m_instances[Signiture(parent, effect->id())]);
+}
+
+Pokescripting::MapEffectWrapper::MapEffectWrapper(const Pokemod::MapEffect* effect, MapWrapper* parent) :
ObjectWrapper(effect, parent),
m_effect(effect)
{
@@ -41,7 +49,7 @@ QPoint Pokescripting::MapEffectWrapper::coordinate() const
Pokescripting::SkinWrapper* Pokescripting::MapEffectWrapper::skin()
{
- return SkinWrapper::create(pokemod()->skinById(m_effect->skin()), this);
+ return pokemod()->skin(m_effect->skin());
}
bool Pokescripting::MapEffectWrapper::isGhost() const
diff --git a/pokescripting/MapEffectWrapper.h b/pokescripting/MapEffectWrapper.h
index c053937f..1a686bb0 100644
--- a/pokescripting/MapEffectWrapper.h
+++ b/pokescripting/MapEffectWrapper.h
@@ -27,6 +27,7 @@
namespace Pokescripting
{
// Forward declarations
+class MapWrapper;
class SkinWrapper;
class POKESCRIPTING_EXPORT MapEffectWrapper : public ObjectWrapper
@@ -34,20 +35,15 @@ class POKESCRIPTING_EXPORT MapEffectWrapper : public ObjectWrapper
Q_OBJECT
public:
- 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;
- QPoint coordinate() const;
- SkinWrapper* skin();
- bool isGhost() const;
- Pokemod::Script script() const;
+ static MapEffectWrapper* create(const Pokemod::MapEffect* effect, MapWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE QPoint coordinate() const;
+ Q_SCRIPTABLE SkinWrapper* skin();
+ Q_SCRIPTABLE bool isGhost() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- MapEffectWrapper(const Pokemod::MapEffect* effect, QObject* parent);
+ MapEffectWrapper(const Pokemod::MapEffect* effect, MapWrapper* parent);
MapEffectWrapper& operator=(const MapEffectWrapper& rhs);
const Pokemod::MapEffect* m_effect;
diff --git a/pokescripting/MapTrainerTeamMemberWrapper.cpp b/pokescripting/MapTrainerTeamMemberWrapper.cpp
index 38609e3d..a7b52c35 100644
--- a/pokescripting/MapTrainerTeamMemberWrapper.cpp
+++ b/pokescripting/MapTrainerTeamMemberWrapper.cpp
@@ -19,13 +19,17 @@
#include "MapTrainerTeamMemberWrapper.h"
// Pokescripting includes
-#include "AbilityWrapper.h"
-#include "ItemWrapper.h"
-#include "MoveWrapper.h"
-#include "NatureWrapper.h"
-#include "SpeciesWrapper.h"
+#include "MapTrainerWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MapTrainerTeamMemberWrapper::MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent) :
+Pokescripting::MapTrainerTeamMemberWrapper* Pokescripting::MapTrainerTeamMemberWrapper::create(const Pokemod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, teamMember->id())))
+ m_instances[Signiture(parent, teamMember->id())] = new MapTrainerTeamMemberWrapper(teamMember, parent);
+ return qobject_cast<MapTrainerTeamMemberWrapper*>(m_instances[Signiture(parent, teamMember->id())]);
+}
+
+Pokescripting::MapTrainerTeamMemberWrapper::MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent) :
ObjectWrapper(teamMember, parent),
m_teamMember(teamMember)
{
@@ -33,7 +37,7 @@ Pokescripting::MapTrainerTeamMemberWrapper::MapTrainerTeamMemberWrapper(const Po
Pokescripting::SpeciesWrapper* Pokescripting::MapTrainerTeamMemberWrapper::species()
{
- return SpeciesWrapper::create(pokemod()->speciesById(m_teamMember->species()), this);
+ return pokemod()->species(m_teamMember->species());
}
int Pokescripting::MapTrainerTeamMemberWrapper::level() const
@@ -48,7 +52,7 @@ QList<Pokescripting::AbilityWrapper*> Pokescripting::MapTrainerTeamMemberWrapper
QList<int> abilityIds = m_teamMember->abilities();
QList<AbilityWrapper*> abilities;
foreach (int id, abilityIds)
- abilities.append(AbilityWrapper::create(pokemod()->abilityById(id), this));
+ abilities.append(pokemod()->ability(id));
return abilities;
}
@@ -57,7 +61,7 @@ QList<Pokescripting::ItemWrapper*> Pokescripting::MapTrainerTeamMemberWrapper::i
QList<int> itemIds = m_teamMember->items();
QList<ItemWrapper*> items;
foreach (int id, itemIds)
- items.append(ItemWrapper::create(pokemod()->itemById(id), this));
+ items.append(pokemod()->item(id));
return items;
}
@@ -66,7 +70,7 @@ QList<Pokescripting::MoveWrapper*> Pokescripting::MapTrainerTeamMemberWrapper::m
QList<int> moveIds = m_teamMember->moves();
QList<MoveWrapper*> moves;
foreach (int id, moveIds)
- moves.append(MoveWrapper::create(pokemod()->moveById(id), this));
+ moves.append(pokemod()->move(id));
return moves;
}
@@ -75,6 +79,6 @@ QList<Pokescripting::NatureWrapper*> Pokescripting::MapTrainerTeamMemberWrapper:
QList<int> natureIds = m_teamMember->natures();
QList<NatureWrapper*> natures;
foreach (int id, natureIds)
- natures.append(NatureWrapper::create(pokemod()->natureById(id), this));
+ natures.append(pokemod()->nature(id));
return natures;
}
diff --git a/pokescripting/MapTrainerTeamMemberWrapper.h b/pokescripting/MapTrainerTeamMemberWrapper.h
index cfc264f8..0e9e3ea7 100644
--- a/pokescripting/MapTrainerTeamMemberWrapper.h
+++ b/pokescripting/MapTrainerTeamMemberWrapper.h
@@ -29,6 +29,7 @@ namespace Pokescripting
// Forward declarations
class AbilityWrapper;
class ItemWrapper;
+class MapTrainerWrapper;
class MoveWrapper;
class NatureWrapper;
class SpeciesWrapper;
@@ -38,21 +39,16 @@ class POKESCRIPTING_EXPORT MapTrainerTeamMemberWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MapTrainerTeamMemberWrapper* create(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent)
- {
- if (!m_instances.contains(teamMember->id()))
- m_instances[teamMember->id()] = new MapTrainerTeamMemberWrapper(teamMember, parent);
- return qobject_cast<MapTrainerTeamMemberWrapper*>(m_instances[teamMember->id()]);
- }
- public slots:
- SpeciesWrapper* species();
- int level() const;
- QList<AbilityWrapper*> abilities();
- QList<ItemWrapper*> items();
- QList<MoveWrapper*> moves();
- QList<NatureWrapper*> natures();
+ static MapTrainerTeamMemberWrapper* create(const Pokemod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent);
+
+ Q_SCRIPTABLE SpeciesWrapper* species();
+ Q_SCRIPTABLE int level() const;
+ Q_SCRIPTABLE QList<AbilityWrapper*> abilities();
+ Q_SCRIPTABLE QList<ItemWrapper*> items();
+ Q_SCRIPTABLE QList<MoveWrapper*> moves();
+ Q_SCRIPTABLE QList<NatureWrapper*> natures();
private:
- MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, QObject* parent);
+ MapTrainerTeamMemberWrapper(const Pokemod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent);
MapTrainerTeamMemberWrapper& operator=(const MapTrainerTeamMemberWrapper& rhs);
const Pokemod::MapTrainerTeamMember* m_teamMember;
diff --git a/pokescripting/MapTrainerWrapper.cpp b/pokescripting/MapTrainerWrapper.cpp
index d4d71914..a3ac6050 100644
--- a/pokescripting/MapTrainerWrapper.cpp
+++ b/pokescripting/MapTrainerWrapper.cpp
@@ -19,10 +19,18 @@
#include "MapTrainerWrapper.h"
// Pokescripting includes
+#include "MapWrapper.h"
#include "MapTrainerTeamMemberWrapper.h"
-#include "TrainerWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MapTrainerWrapper::MapTrainerWrapper(const Pokemod::MapTrainer* trainer, QObject* parent) :
+Pokescripting::MapTrainerWrapper* Pokescripting::MapTrainerWrapper::create(const Pokemod::MapTrainer* trainer, MapWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, trainer->id())))
+ m_instances[Signiture(parent, trainer->id())] = new MapTrainerWrapper(trainer, parent);
+ return qobject_cast<MapTrainerWrapper*>(m_instances[Signiture(parent, trainer->id())]);
+}
+
+Pokescripting::MapTrainerWrapper::MapTrainerWrapper(const Pokemod::MapTrainer* trainer, MapWrapper* parent) :
ObjectWrapper(trainer, parent),
m_trainer(trainer)
{
@@ -35,7 +43,7 @@ QString Pokescripting::MapTrainerWrapper::name() const
Pokescripting::TrainerWrapper* Pokescripting::MapTrainerWrapper::trainerClass()
{
- return TrainerWrapper::create(pokemod()->trainerById(m_trainer->trainerClass()), this);
+ return pokemod()->trainer(m_trainer->trainerClass());
}
int Pokescripting::MapTrainerWrapper::numberFight() const
diff --git a/pokescripting/MapTrainerWrapper.h b/pokescripting/MapTrainerWrapper.h
index 8a3e061d..9d74709e 100644
--- a/pokescripting/MapTrainerWrapper.h
+++ b/pokescripting/MapTrainerWrapper.h
@@ -27,6 +27,7 @@
namespace Pokescripting
{
// Forward declarations
+class MapWrapper;
class MapTrainerTeamMemberWrapper;
class TrainerWrapper;
@@ -35,23 +36,18 @@ class POKESCRIPTING_EXPORT MapTrainerWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MapTrainerWrapper* create(const Pokemod::MapTrainer* trainer, QObject* parent)
- {
- if (!m_instances.contains(trainer->id()))
- m_instances[trainer->id()] = new MapTrainerWrapper(trainer, parent);
- return qobject_cast<MapTrainerWrapper*>(m_instances[trainer->id()]);
- }
- public slots:
- QString name() const;
- TrainerWrapper* trainerClass();
- int numberFight() const;
- MapTrainerTeamMemberWrapper* leadTeamMember();
- Pokemod::Script script() const;
+ static MapTrainerWrapper* create(const Pokemod::MapTrainer* trainer, MapWrapper* parent);
- MapTrainerTeamMemberWrapper* teamMember(const int index);
- int teamMemberCount() const;
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE TrainerWrapper* trainerClass();
+ Q_SCRIPTABLE int numberFight() const;
+ Q_SCRIPTABLE MapTrainerTeamMemberWrapper* leadTeamMember();
+ Q_SCRIPTABLE Pokemod::Script script() const;
+
+ Q_SCRIPTABLE MapTrainerTeamMemberWrapper* teamMember(const int index);
+ Q_SCRIPTABLE int teamMemberCount() const;
private:
- MapTrainerWrapper(const Pokemod::MapTrainer* trainer, QObject* parent);
+ MapTrainerWrapper(const Pokemod::MapTrainer* trainer, MapWrapper* parent);
MapTrainerWrapper& operator=(const MapTrainerWrapper& rhs);
const Pokemod::MapTrainer* m_trainer;
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
diff --git a/pokescripting/MapWarpWrapper.h b/pokescripting/MapWarpWrapper.h
index aefbd18b..02988a39 100644
--- a/pokescripting/MapWarpWrapper.h
+++ b/pokescripting/MapWarpWrapper.h
@@ -26,25 +26,23 @@
namespace Pokescripting
{
+// Forward declartions
+class MapWrapper;
+
class POKESCRIPTING_EXPORT MapWarpWrapper : public ObjectWrapper
{
Q_OBJECT
public:
- static MapWarpWrapper* create(const Pokemod::MapWarp* warp, QObject* parent)
- {
- if (!m_instances.contains(warp->id()))
- m_instances[warp->id()] = new MapWarpWrapper(warp, parent);
- return qobject_cast<MapWarpWrapper*>(m_instances[warp->id()]);
- }
- public slots:
- QString name() const;
- QPoint coordinate() const;
- int type() const;
- MapWarpWrapper* toWarp();
- Pokemod::Script script() const;
+ static MapWarpWrapper* create(const Pokemod::MapWarp* warp, MapWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE QPoint coordinate() const;
+ Q_SCRIPTABLE Pokemod::MapWarp::Type type() const;
+ Q_SCRIPTABLE MapWarpWrapper* toWarp();
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- MapWarpWrapper(const Pokemod::MapWarp* warp, QObject* parent);
+ MapWarpWrapper(const Pokemod::MapWarp* warp, MapWrapper* parent);
MapWarpWrapper& operator=(const MapWarpWrapper& rhs);
const Pokemod::MapWarp* m_warp;
diff --git a/pokescripting/MapWildListEncounterWrapper.cpp b/pokescripting/MapWildListEncounterWrapper.cpp
index 372db561..6d37d5ae 100644
--- a/pokescripting/MapWildListEncounterWrapper.cpp
+++ b/pokescripting/MapWildListEncounterWrapper.cpp
@@ -19,9 +19,17 @@
#include "MapWildListEncounterWrapper.h"
// Pokescripting includes
-#include "SpeciesWrapper.h"
+#include "MapWildListWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MapWildListEncounterWrapper::MapWildListEncounterWrapper(const Pokemod::MapWildListEncounter* encounter, QObject* parent) :
+Pokescripting::MapWildListEncounterWrapper* Pokescripting::MapWildListEncounterWrapper::create(const Pokemod::MapWildListEncounter* encounter, MapWildListWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, encounter->id())))
+ m_instances[Signiture(parent, encounter->id())] = new MapWildListEncounterWrapper(encounter, parent);
+ return qobject_cast<MapWildListEncounterWrapper*>(m_instances[Signiture(parent, encounter->id())]);
+}
+
+Pokescripting::MapWildListEncounterWrapper::MapWildListEncounterWrapper(const Pokemod::MapWildListEncounter* encounter, MapWildListWrapper* parent) :
ObjectWrapper(encounter, parent),
m_encounter(encounter)
{
@@ -29,7 +37,7 @@ Pokescripting::MapWildListEncounterWrapper::MapWildListEncounterWrapper(const Po
Pokescripting::SpeciesWrapper* Pokescripting::MapWildListEncounterWrapper::species()
{
- return SpeciesWrapper::create(pokemod()->speciesById(m_encounter->species()), this);
+ return pokemod()->species(m_encounter->species());
}
int Pokescripting::MapWildListEncounterWrapper::level() const
diff --git a/pokescripting/MapWildListEncounterWrapper.h b/pokescripting/MapWildListEncounterWrapper.h
index 8bd518b3..fb760bc2 100644
--- a/pokescripting/MapWildListEncounterWrapper.h
+++ b/pokescripting/MapWildListEncounterWrapper.h
@@ -27,6 +27,7 @@
namespace Pokescripting
{
// Forward declarations
+class MapWildListWrapper;
class SpeciesWrapper;
class POKESCRIPTING_EXPORT MapWildListEncounterWrapper : public ObjectWrapper
@@ -34,18 +35,13 @@ class POKESCRIPTING_EXPORT MapWildListEncounterWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MapWildListEncounterWrapper* create(const Pokemod::MapWildListEncounter* encounter, QObject* parent)
- {
- if (!m_instances.contains(encounter->id()))
- m_instances[encounter->id()] = new MapWildListEncounterWrapper(encounter, parent);
- return qobject_cast<MapWildListEncounterWrapper*>(m_instances[encounter->id()]);
- }
- public slots:
- SpeciesWrapper* species();
- int level() const;
- int weight() const;
+ static MapWildListEncounterWrapper* create(const Pokemod::MapWildListEncounter* encounter, MapWildListWrapper* parent);
+
+ Q_SCRIPTABLE SpeciesWrapper* species();
+ Q_SCRIPTABLE int level() const;
+ Q_SCRIPTABLE int weight() const;
private:
- MapWildListEncounterWrapper(const Pokemod::MapWildListEncounter* encounter, QObject* parent);
+ MapWildListEncounterWrapper(const Pokemod::MapWildListEncounter* encounter, MapWildListWrapper* parent);
MapWildListEncounterWrapper& operator=(const MapWildListEncounterWrapper& rhs);
const Pokemod::MapWildListEncounter* m_encounter;
diff --git a/pokescripting/MapWildListWrapper.cpp b/pokescripting/MapWildListWrapper.cpp
index 3689cc1e..3b725b34 100644
--- a/pokescripting/MapWildListWrapper.cpp
+++ b/pokescripting/MapWildListWrapper.cpp
@@ -19,9 +19,17 @@
#include "MapWildListWrapper.h"
// Pokescripting includes
+#include "MapWrapper.h"
#include "MapWildListEncounterWrapper.h"
-Pokescripting::MapWildListWrapper::MapWildListWrapper(const Pokemod::MapWildList* wildList, QObject* parent) :
+Pokescripting::MapWildListWrapper* Pokescripting::MapWildListWrapper::create(const Pokemod::MapWildList* wildList, MapWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, wildList->id())))
+ m_instances[Signiture(parent, wildList->id())] = new MapWildListWrapper(wildList, parent);
+ return qobject_cast<MapWildListWrapper*>(m_instances[Signiture(parent, wildList->id())]);
+}
+
+Pokescripting::MapWildListWrapper::MapWildListWrapper(const Pokemod::MapWildList* wildList, MapWrapper* parent) :
ObjectWrapper(wildList, parent),
m_wildList(wildList)
{
diff --git a/pokescripting/MapWildListWrapper.h b/pokescripting/MapWildListWrapper.h
index 56ecb721..a7bd74f5 100644
--- a/pokescripting/MapWildListWrapper.h
+++ b/pokescripting/MapWildListWrapper.h
@@ -28,6 +28,7 @@
namespace Pokescripting
{
// Forward declarations
+class MapWrapper;
class MapWildListEncounterWrapper;
class POKESCRIPTING_EXPORT MapWildListWrapper : public ObjectWrapper
@@ -35,21 +36,16 @@ class POKESCRIPTING_EXPORT MapWildListWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MapWildListWrapper* create(const Pokemod::MapWildList* wildList, QObject* parent)
- {
- if (!m_instances.contains(wildList->id()))
- m_instances[wildList->id()] = new MapWildListWrapper(wildList, parent);
- return qobject_cast<MapWildListWrapper*>(m_instances[wildList->id()]);
- }
+ static MapWildListWrapper* create(const Pokemod::MapWildList* wildList, MapWrapper* parent);
Pokemod::Hat<MapWildListEncounterWrapper*> encounterHat();
- public slots:
- QString name() const;
- MapWildListEncounterWrapper* encounter(const int index);
- int encounterCount() const;
+ Q_SCRIPTABLE QString name() const;
+
+ Q_SCRIPTABLE MapWildListEncounterWrapper* encounter(const int index);
+ Q_SCRIPTABLE int encounterCount() const;
private:
- MapWildListWrapper(const Pokemod::MapWildList* wildList, QObject* parent);
+ MapWildListWrapper(const Pokemod::MapWildList* wildList, MapWrapper* parent);
MapWildListWrapper& operator=(const MapWildListWrapper& rhs);
const Pokemod::MapWildList* m_wildList;
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<MapWrapper*>(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
diff --git a/pokescripting/MapWrapper.h b/pokescripting/MapWrapper.h
index 573dce4d..71b55270 100644
--- a/pokescripting/MapWrapper.h
+++ b/pokescripting/MapWrapper.h
@@ -38,30 +38,25 @@ class POKESCRIPTING_EXPORT MapWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MapWrapper* create(const Pokemod::Map* map, QObject* parent)
- {
- if (!m_instances.contains(map->id()))
- m_instances[map->id()] = new MapWrapper(map, parent);
- return qobject_cast<MapWrapper*>(m_instances[map->id()]);
- }
+ static MapWrapper* create(const Pokemod::Map* map, PokemodWrapper* parent);
MapEffectWrapper* effect(const int id);
MapTrainerWrapper* trainer(const int id);
MapWarpWrapper* warp(const int id);
MapWildListWrapper* wildList(const int id);
- public slots:
- QString name() const;
- MapWarpWrapper* flyWarp();
- int type() const;
- TileWrapper* tile(const int row, const int column);
- QPoint mapSize() const;
- MapEffectWrapper* effect(const QString& name);
- MapTrainerWrapper* trainer(const QString& name);
- MapWarpWrapper* warp(const QString& name);
- MapWildListWrapper* wildList(const QString& name);
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE MapWarpWrapper* flyWarp();
+ Q_SCRIPTABLE Pokemod::Map::Type type() const;
+ Q_SCRIPTABLE TileWrapper* tile(const int row, const int column);
+ Q_SCRIPTABLE QPoint mapSize() const;
+
+ Q_SCRIPTABLE MapEffectWrapper* effect(const QString& name);
+ Q_SCRIPTABLE MapTrainerWrapper* trainer(const QString& name);
+ Q_SCRIPTABLE MapWarpWrapper* warp(const QString& name);
+ Q_SCRIPTABLE MapWildListWrapper* wildList(const QString& name);
private:
- MapWrapper(const Pokemod::Map* map, QObject* parent);
+ MapWrapper(const Pokemod::Map* map, PokemodWrapper* parent);
MapWrapper& operator=(const MapWrapper& rhs);
const Pokemod::Map* m_map;
diff --git a/pokescripting/MoveWrapper.cpp b/pokescripting/MoveWrapper.cpp
index 10ca5032..1bf5d3f8 100644
--- a/pokescripting/MoveWrapper.cpp
+++ b/pokescripting/MoveWrapper.cpp
@@ -19,9 +19,16 @@
#include "MoveWrapper.h"
// Pokescripting includes
-#include "TypeWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::MoveWrapper::MoveWrapper(const Pokemod::Move* move, QObject* parent) :
+Pokescripting::MoveWrapper* Pokescripting::MoveWrapper::create(const Pokemod::Move* move, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, move->id())))
+ m_instances[Signiture(parent, move->id())] = new MoveWrapper(move, parent);
+ return qobject_cast<MoveWrapper*>(m_instances[Signiture(parent, move->id())]);
+}
+
+Pokescripting::MoveWrapper::MoveWrapper(const Pokemod::Move* move, PokemodWrapper* parent) :
ObjectWrapper(move, parent),
m_move(move)
{
@@ -48,7 +55,7 @@ int Pokescripting::MoveWrapper::power() const
Pokescripting::TypeWrapper* Pokescripting::MoveWrapper::type()
{
- return TypeWrapper::create(pokemod()->typeById(m_move->type()), this);
+ return pokemod()->type(m_move->type());
}
bool Pokescripting::MoveWrapper::special() const
diff --git a/pokescripting/MoveWrapper.h b/pokescripting/MoveWrapper.h
index cd5d0f43..c17ff555 100644
--- a/pokescripting/MoveWrapper.h
+++ b/pokescripting/MoveWrapper.h
@@ -34,25 +34,20 @@ class POKESCRIPTING_EXPORT MoveWrapper : public ObjectWrapper
Q_OBJECT
public:
- static MoveWrapper* create(const Pokemod::Move* move, QObject* parent)
- {
- if (!m_instances.contains(move->id()))
- m_instances[move->id()] = new MoveWrapper(move, parent);
- return qobject_cast<MoveWrapper*>(m_instances[move->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Fraction accuracy() const;
- int power() const;
- TypeWrapper* type();
- bool special() const;
- int powerPoints() const;
- int priority() const;
- QString description() const;
- Pokemod::Script battleScript() const;
- Pokemod::Script worldScript() const;
+ static MoveWrapper* create(const Pokemod::Move* move, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Fraction accuracy() const;
+ Q_SCRIPTABLE int power() const;
+ Q_SCRIPTABLE TypeWrapper* type();
+ Q_SCRIPTABLE bool special() const;
+ Q_SCRIPTABLE int powerPoints() const;
+ Q_SCRIPTABLE int priority() const;
+ Q_SCRIPTABLE QString description() const;
+ Q_SCRIPTABLE Pokemod::Script battleScript() const;
+ Q_SCRIPTABLE Pokemod::Script worldScript() const;
private:
- MoveWrapper(const Pokemod::Move* move, QObject* parent);
+ MoveWrapper(const Pokemod::Move* move, PokemodWrapper* parent);
MoveWrapper& operator=(const MoveWrapper& rhs);
const Pokemod::Move* m_move;
diff --git a/pokescripting/NatureWrapper.cpp b/pokescripting/NatureWrapper.cpp
index d4fc7efd..fa9f1c06 100644
--- a/pokescripting/NatureWrapper.cpp
+++ b/pokescripting/NatureWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "NatureWrapper.h"
-Pokescripting::NatureWrapper::NatureWrapper(const Pokemod::Nature* nature, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::NatureWrapper* Pokescripting::NatureWrapper::create(const Pokemod::Nature* nature, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, nature->id())))
+ m_instances[Signiture(parent, nature->id())] = new NatureWrapper(nature, parent);
+ return qobject_cast<NatureWrapper*>(m_instances[Signiture(parent, nature->id())]);
+}
+
+Pokescripting::NatureWrapper::NatureWrapper(const Pokemod::Nature* nature, PokemodWrapper* parent) :
ObjectWrapper(nature, parent),
m_nature(nature)
{
@@ -29,7 +39,7 @@ QString Pokescripting::NatureWrapper::name() const
return m_nature->name();
}
-Pokemod::Fraction Pokescripting::NatureWrapper::stat(const int stat) const
+Pokemod::Fraction Pokescripting::NatureWrapper::stat(const Pokemod::Stat stat) const
{
return m_nature->stat(stat);
}
diff --git a/pokescripting/NatureWrapper.h b/pokescripting/NatureWrapper.h
index c7feed18..9fa71fe6 100644
--- a/pokescripting/NatureWrapper.h
+++ b/pokescripting/NatureWrapper.h
@@ -31,18 +31,13 @@ class POKESCRIPTING_EXPORT NatureWrapper : public ObjectWrapper
Q_OBJECT
public:
- static NatureWrapper* create(const Pokemod::Nature* nature, QObject* parent)
- {
- if (!m_instances.contains(nature->id()))
- m_instances[nature->id()] = new NatureWrapper(nature, parent);
- return qobject_cast<NatureWrapper*>(m_instances[nature->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Fraction stat(const int stat) const;
- int weight() const;
+ static NatureWrapper* create(const Pokemod::Nature* nature, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Fraction stat(const Pokemod::Stat stat) const;
+ Q_SCRIPTABLE int weight() const;
private:
- NatureWrapper(const Pokemod::Nature* nature, QObject* parent);
+ NatureWrapper(const Pokemod::Nature* nature, PokemodWrapper* parent);
NatureWrapper& operator=(const NatureWrapper& rhs);
const Pokemod::Nature* m_nature;
diff --git a/pokescripting/ObjectWrapper.cpp b/pokescripting/ObjectWrapper.cpp
index 1158c46f..d1af3220 100644
--- a/pokescripting/ObjectWrapper.cpp
+++ b/pokescripting/ObjectWrapper.cpp
@@ -18,9 +18,12 @@
// Header include
#include "ObjectWrapper.h"
-QMap<int, Pokescripting::ObjectWrapper*> Pokescripting::ObjectWrapper::m_instances;
+// Pokescripting includes
+#include "PokemodWrapper.h"
-Pokescripting::ObjectWrapper::ObjectWrapper(const Pokemod::Object* object, QObject* parent) :
+QMap<Pokescripting::ObjectWrapper::Signiture, Pokescripting::ObjectWrapper*> Pokescripting::ObjectWrapper::m_instances;
+
+Pokescripting::ObjectWrapper::ObjectWrapper(const Pokemod::Object* object, ObjectWrapper* parent) :
Config(parent),
m_object(object)
{
@@ -31,7 +34,26 @@ int Pokescripting::ObjectWrapper::id() const
return m_object->id();
}
-const Pokemod::Pokemod* Pokescripting::ObjectWrapper::pokemod() const
+const Pokescripting::ObjectWrapper* Pokescripting::ObjectWrapper::parent() const
+{
+ return m_parent;
+}
+
+Pokescripting::ObjectWrapper* Pokescripting::ObjectWrapper::parent()
+{
+ return m_parent;
+}
+
+const Pokescripting::PokemodWrapper* Pokescripting::ObjectWrapper::pokemod() const
+{
+ if (m_parent)
+ return m_parent->pokemod();
+ return qobject_cast<const PokemodWrapper*>(m_parent);
+}
+
+Pokescripting::PokemodWrapper* Pokescripting::ObjectWrapper::pokemod()
{
- return qobject_cast<const Pokemod::Pokemod*>(m_object->pokemod());
+ if (m_parent)
+ return m_parent->pokemod();
+ return qobject_cast<PokemodWrapper*>(m_parent);
}
diff --git a/pokescripting/ObjectWrapper.h b/pokescripting/ObjectWrapper.h
index 69a15150..648b693b 100644
--- a/pokescripting/ObjectWrapper.h
+++ b/pokescripting/ObjectWrapper.h
@@ -28,22 +28,34 @@
// Qt includes
#include <QtCore/QMap>
#include <QtCore/QObject>
+#include <QtCore/QPair>
namespace Pokescripting
{
+// Forward declarations
+class PokemodWrapper;
+
class POKESCRIPTING_EXPORT ObjectWrapper : public Config
{
Q_OBJECT
Q_PROPERTY(int id READ id)
public:
- ObjectWrapper(const Pokemod::Object* object, QObject* parent);
+ typedef QPair<ObjectWrapper*, int> Signiture;
+
+ ObjectWrapper(const Pokemod::Object* object, ObjectWrapper* parent);
int id() const;
- const Pokemod::Pokemod* pokemod() const;
+
+ const ObjectWrapper* parent() const;
+ ObjectWrapper* parent();
+
+ const PokemodWrapper* pokemod() const;
+ PokemodWrapper* pokemod();
protected:
- static QMap<int, ObjectWrapper*> m_instances;
+ static QMap<Signiture, ObjectWrapper*> m_instances;
private:
+ ObjectWrapper* m_parent;
const Pokemod::Object* m_object;
};
}
diff --git a/pokescripting/PokemodWrapper.cpp b/pokescripting/PokemodWrapper.cpp
index 4e17f4f6..65befc51 100644
--- a/pokescripting/PokemodWrapper.cpp
+++ b/pokescripting/PokemodWrapper.cpp
@@ -44,8 +44,8 @@
#include "TypeWrapper.h"
#include "WeatherWrapper.h"
-Pokescripting::PokemodWrapper::PokemodWrapper(const Pokemod::Pokemod* pokemod, QObject* parent) :
- ObjectWrapper(pokemod, parent),
+Pokescripting::PokemodWrapper::PokemodWrapper(const Pokemod::Pokemod* pokemod) :
+ ObjectWrapper(pokemod, NULL),
m_pokemod(pokemod)
{
}
@@ -188,7 +188,7 @@ QString Pokescripting::PokemodWrapper::description() const
Pokescripting::MapWarpWrapper* Pokescripting::PokemodWrapper::startWarp()
{
- return MapWarpWrapper::create(m_pokemod->mapById(m_pokemod->startMap())->warpById(m_pokemod->startWarp()), this);
+ return map(m_pokemod->startMap())->warp(m_pokemod->startWarp());
}
Pokemod::Fraction Pokescripting::PokemodWrapper::effectiveness(const TypeWrapper* attacker, const TypeWrapper* defender) const
diff --git a/pokescripting/PokemodWrapper.h b/pokescripting/PokemodWrapper.h
index f30891b4..27dc56e0 100644
--- a/pokescripting/PokemodWrapper.h
+++ b/pokescripting/PokemodWrapper.h
@@ -58,7 +58,7 @@ class POKESCRIPTING_EXPORT PokemodWrapper : public ObjectWrapper
Q_OBJECT
public:
- PokemodWrapper(const Pokemod::Pokemod* pokemod, QObject* parent);
+ PokemodWrapper(const Pokemod::Pokemod* pokemod);
Pokemod::Hat<NatureWrapper*> natureHat();
@@ -84,36 +84,36 @@ class POKESCRIPTING_EXPORT PokemodWrapper : public ObjectWrapper
TrainerWrapper* trainer(const int id);
TypeWrapper* type(const int id);
WeatherWrapper* weather(const int id);
- public slots:
- QString title() const;
- QString version() const;
- QString description() const;
- MapWarpWrapper* startWarp();
- Pokemod::Fraction effectiveness(const TypeWrapper* attacker, const TypeWrapper* defender) const;
- RulesWrapper* rules();
- AbilityWrapper* ability(const QString& name);
- AuthorWrapper* author(const QString& name);
- BadgeWrapper* badge(const QString& name);
- CoinListWrapper* coinList(const QString& name);
- EggGroupWrapper* eggGroup(const QString& name);
- GlobalScriptWrapper* globalScript(const QString& name);
- ItemWrapper* item(const QString& name);
- ItemTypeWrapper* itemType(const QString& name);
- MapWrapper* map(const QString& name);
- MoveWrapper* move(const QString& name);
- NatureWrapper* nature(const QString& name);
- SkinWrapper* skin(const QString& name);
- SoundWrapper* sound(const QString& name);
- SpeciesWrapper* species(const QString& name);
- SpriteWrapper* sprite(const QString& name);
- StatusWrapper* status(const QString& name);
- StoreWrapper* store(const QString& name);
- TileWrapper* tile(const QString& name);
- TimeWrapper* time(const QString& name);
- TrainerWrapper* trainer(const QString& name);
- TypeWrapper* type(const QString& name);
- WeatherWrapper* weather(const QString& name);
+ Q_SCRIPTABLE QString title() const;
+ Q_SCRIPTABLE QString version() const;
+ Q_SCRIPTABLE QString description() const;
+ Q_SCRIPTABLE MapWarpWrapper* startWarp();
+ Q_SCRIPTABLE Pokemod::Fraction effectiveness(const TypeWrapper* attacker, const TypeWrapper* defender) const;
+ Q_SCRIPTABLE RulesWrapper* rules();
+
+ Q_SCRIPTABLE AbilityWrapper* ability(const QString& name);
+ Q_SCRIPTABLE AuthorWrapper* author(const QString& name);
+ Q_SCRIPTABLE BadgeWrapper* badge(const QString& name);
+ Q_SCRIPTABLE CoinListWrapper* coinList(const QString& name);
+ Q_SCRIPTABLE EggGroupWrapper* eggGroup(const QString& name);
+ Q_SCRIPTABLE GlobalScriptWrapper* globalScript(const QString& name);
+ Q_SCRIPTABLE ItemWrapper* item(const QString& name);
+ Q_SCRIPTABLE ItemTypeWrapper* itemType(const QString& name);
+ Q_SCRIPTABLE MapWrapper* map(const QString& name);
+ Q_SCRIPTABLE MoveWrapper* move(const QString& name);
+ Q_SCRIPTABLE NatureWrapper* nature(const QString& name);
+ Q_SCRIPTABLE SkinWrapper* skin(const QString& name);
+ Q_SCRIPTABLE SoundWrapper* sound(const QString& name);
+ Q_SCRIPTABLE SpeciesWrapper* species(const QString& name);
+ Q_SCRIPTABLE SpriteWrapper* sprite(const QString& name);
+ Q_SCRIPTABLE StatusWrapper* status(const QString& name);
+ Q_SCRIPTABLE StoreWrapper* store(const QString& name);
+ Q_SCRIPTABLE TileWrapper* tile(const QString& name);
+ Q_SCRIPTABLE TimeWrapper* time(const QString& name);
+ Q_SCRIPTABLE TrainerWrapper* trainer(const QString& name);
+ Q_SCRIPTABLE TypeWrapper* type(const QString& name);
+ Q_SCRIPTABLE WeatherWrapper* weather(const QString& name);
private:
PokemodWrapper& operator=(const PokemodWrapper& rhs);
diff --git a/pokescripting/RulesWrapper.cpp b/pokescripting/RulesWrapper.cpp
index 86a40f88..e70e4af0 100644
--- a/pokescripting/RulesWrapper.cpp
+++ b/pokescripting/RulesWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "RulesWrapper.h"
-Pokescripting::RulesWrapper::RulesWrapper(const Pokemod::Rules* rules, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::RulesWrapper* Pokescripting::RulesWrapper::create(const Pokemod::Rules* rules, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, rules->id())))
+ m_instances[Signiture(parent, rules->id())] = new RulesWrapper(rules, parent);
+ return qobject_cast<RulesWrapper*>(m_instances[Signiture(parent, rules->id())]);
+}
+
+Pokescripting::RulesWrapper::RulesWrapper(const Pokemod::Rules* rules, PokemodWrapper* parent) :
ObjectWrapper(rules, parent),
m_rules(rules)
{
diff --git a/pokescripting/RulesWrapper.h b/pokescripting/RulesWrapper.h
index db6d1afc..56af49a3 100644
--- a/pokescripting/RulesWrapper.h
+++ b/pokescripting/RulesWrapper.h
@@ -31,38 +31,33 @@ class POKESCRIPTING_EXPORT RulesWrapper : public ObjectWrapper
Q_OBJECT
public:
- static RulesWrapper* create(const Pokemod::Rules* rules, QObject* parent)
- {
- if (!m_instances.contains(rules->id()))
- m_instances[rules->id()] = new RulesWrapper(rules, parent);
- return qobject_cast<RulesWrapper*>(m_instances[rules->id()]);
- }
- public slots:
- bool genderAllowed() const;
- bool breedingAllowed() const;
- bool criticalDomains() const;
- bool useTurns() const;
- int numBoxes() const;
- int boxSize() const;
- int maxParty() const;
- int maxFight() const;
- int maxPlayers() const;
- int maxHeldItems() const;
- int maxAbilities() const;
- int maxNatures() const;
- int maxMoves() const;
- int maxLevel() const;
- int maxStages() const;
- int maxMoney() const;
- bool hardCash() const;
- bool allowSwitchStyle() const;
- bool specialSplit() const;
- bool specialDVSplit() const;
- bool effortValuesAllowed() const;
- int maxTotalEV() const;
- int maxEVPerStat() const;
+ static RulesWrapper* create(const Pokemod::Rules* rules, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE bool genderAllowed() const;
+ Q_SCRIPTABLE bool breedingAllowed() const;
+ Q_SCRIPTABLE bool criticalDomains() const;
+ Q_SCRIPTABLE bool useTurns() const;
+ Q_SCRIPTABLE int numBoxes() const;
+ Q_SCRIPTABLE int boxSize() const;
+ Q_SCRIPTABLE int maxParty() const;
+ Q_SCRIPTABLE int maxFight() const;
+ Q_SCRIPTABLE int maxPlayers() const;
+ Q_SCRIPTABLE int maxHeldItems() const;
+ Q_SCRIPTABLE int maxAbilities() const;
+ Q_SCRIPTABLE int maxNatures() const;
+ Q_SCRIPTABLE int maxMoves() const;
+ Q_SCRIPTABLE int maxLevel() const;
+ Q_SCRIPTABLE int maxStages() const;
+ Q_SCRIPTABLE int maxMoney() const;
+ Q_SCRIPTABLE bool hardCash() const;
+ Q_SCRIPTABLE bool allowSwitchStyle() const;
+ Q_SCRIPTABLE bool specialSplit() const;
+ Q_SCRIPTABLE bool specialDVSplit() const;
+ Q_SCRIPTABLE bool effortValuesAllowed() const;
+ Q_SCRIPTABLE int maxTotalEV() const;
+ Q_SCRIPTABLE int maxEVPerStat() const;
private:
- RulesWrapper(const Pokemod::Rules* rules, QObject* parent);
+ RulesWrapper(const Pokemod::Rules* rules, PokemodWrapper* parent);
RulesWrapper& operator=(const RulesWrapper& rhs);
const Pokemod::Rules* m_rules;
diff --git a/pokescripting/SkinWrapper.cpp b/pokescripting/SkinWrapper.cpp
index 8e9a8454..be19a8f1 100644
--- a/pokescripting/SkinWrapper.cpp
+++ b/pokescripting/SkinWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "SkinWrapper.h"
-Pokescripting::SkinWrapper::SkinWrapper(const Pokemod::Skin* skin, QObject* parent) :
+// Pokemod scripting
+#include "PokemodWrapper.h"
+
+Pokescripting::SkinWrapper* Pokescripting::SkinWrapper::create(const Pokemod::Skin* skin, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, skin->id())))
+ m_instances[Signiture(parent, skin->id())] = new SkinWrapper(skin, parent);
+ return qobject_cast<SkinWrapper*>(m_instances[Signiture(parent, skin->id())]);
+}
+
+Pokescripting::SkinWrapper::SkinWrapper(const Pokemod::Skin* skin, PokemodWrapper* parent) :
ObjectWrapper(skin, parent),
m_skin(skin)
{
diff --git a/pokescripting/SkinWrapper.h b/pokescripting/SkinWrapper.h
index 8212befa..f1274791 100644
--- a/pokescripting/SkinWrapper.h
+++ b/pokescripting/SkinWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT SkinWrapper : public ObjectWrapper
Q_OBJECT
public:
- static SkinWrapper* create(const Pokemod::Skin* skin, QObject* parent)
- {
- if (!m_instances.contains(skin->id()))
- m_instances[skin->id()] = new SkinWrapper(skin, parent);
- return qobject_cast<SkinWrapper*>(m_instances[skin->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Script script() const;
+ static SkinWrapper* create(const Pokemod::Skin* skin, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- SkinWrapper(const Pokemod::Skin* skin, QObject* parent);
+ SkinWrapper(const Pokemod::Skin* skin, PokemodWrapper* parent);
SkinWrapper& operator=(const SkinWrapper& rhs);
const Pokemod::Skin* m_skin;
diff --git a/pokescripting/SoundWrapper.cpp b/pokescripting/SoundWrapper.cpp
index 62a092a5..4075f387 100644
--- a/pokescripting/SoundWrapper.cpp
+++ b/pokescripting/SoundWrapper.cpp
@@ -18,6 +18,9 @@
// Header include
#include "SoundWrapper.h"
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
// Qt includes
#include <QtCore/QBuffer>
@@ -25,7 +28,14 @@
#include <Phonon/MediaObject>
#include <Phonon/MediaSource>
-Pokescripting::SoundWrapper::SoundWrapper(const Pokemod::Sound* sound, QObject* parent) :
+Pokescripting::SoundWrapper* Pokescripting::SoundWrapper::create(const Pokemod::Sound* sound, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, sound->id())))
+ m_instances[Signiture(parent, sound->id())] = new SoundWrapper(sound, parent);
+ return qobject_cast<SoundWrapper*>(m_instances[Signiture(parent, sound->id())]);
+}
+
+Pokescripting::SoundWrapper::SoundWrapper(const Pokemod::Sound* sound, PokemodWrapper* parent) :
ObjectWrapper(sound, parent),
m_sound(sound)
{
@@ -36,6 +46,11 @@ QString Pokescripting::SoundWrapper::name() const
return m_sound->name();
}
+Pokemod::Sound::Type Pokescripting::SoundWrapper::type() const
+{
+ return m_sound->type();
+}
+
Phonon::MediaObject* Pokescripting::SoundWrapper::data()
{
Phonon::MediaObject* media = new Phonon::MediaObject(this);
diff --git a/pokescripting/SoundWrapper.h b/pokescripting/SoundWrapper.h
index 7ad98e49..3af17f0c 100644
--- a/pokescripting/SoundWrapper.h
+++ b/pokescripting/SoundWrapper.h
@@ -37,17 +37,13 @@ class POKESCRIPTING_EXPORT SoundWrapper : public ObjectWrapper
Q_OBJECT
public:
- static SoundWrapper* create(const Pokemod::Sound* sound, QObject* parent)
- {
- if (!m_instances.contains(sound->id()))
- m_instances[sound->id()] = new SoundWrapper(sound, parent);
- return qobject_cast<SoundWrapper*>(m_instances[sound->id()]);
- }
- public slots:
- QString name() const;
- Phonon::MediaObject* data();
+ static SoundWrapper* create(const Pokemod::Sound* sound, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Sound::Type type() const;
+ Q_SCRIPTABLE Phonon::MediaObject* data();
private:
- SoundWrapper(const Pokemod::Sound* sound, QObject* parent);
+ SoundWrapper(const Pokemod::Sound* sound, PokemodWrapper* parent);
SoundWrapper& operator=(const SoundWrapper& rhs);
const Pokemod::Sound* m_sound;
diff --git a/pokescripting/SpeciesAbilityWrapper.cpp b/pokescripting/SpeciesAbilityWrapper.cpp
index a3ae9ef4..fb392653 100644
--- a/pokescripting/SpeciesAbilityWrapper.cpp
+++ b/pokescripting/SpeciesAbilityWrapper.cpp
@@ -19,9 +19,17 @@
#include "SpeciesAbilityWrapper.h"
// Pokescripting includes
-#include "AbilityWrapper.h"
+#include "PokemodWrapper.h"
+#include "SpeciesWrapper.h"
-Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, QObject* parent) :
+Pokescripting::SpeciesAbilityWrapper* Pokescripting::SpeciesAbilityWrapper::create(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, ability->id())))
+ m_instances[Signiture(parent, ability->id())] = new SpeciesAbilityWrapper(ability, parent);
+ return qobject_cast<SpeciesAbilityWrapper*>(m_instances[Signiture(parent, ability->id())]);
+}
+
+Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent) :
ObjectWrapper(ability, parent),
m_ability(ability)
{
@@ -29,7 +37,7 @@ Pokescripting::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Pokemod::Speci
Pokescripting::AbilityWrapper* Pokescripting::SpeciesAbilityWrapper::ability()
{
- return AbilityWrapper::create(pokemod()->abilityById(m_ability->ability()), this);
+ return pokemod()->ability(m_ability->ability());
}
int Pokescripting::SpeciesAbilityWrapper::weight() const
diff --git a/pokescripting/SpeciesAbilityWrapper.h b/pokescripting/SpeciesAbilityWrapper.h
index 96cfb390..62b0ee71 100644
--- a/pokescripting/SpeciesAbilityWrapper.h
+++ b/pokescripting/SpeciesAbilityWrapper.h
@@ -28,23 +28,19 @@ namespace Pokescripting
{
// Forward declarations
class AbilityWrapper;
+class SpeciesWrapper;
class POKESCRIPTING_EXPORT SpeciesAbilityWrapper : public ObjectWrapper
{
Q_OBJECT
public:
- static SpeciesAbilityWrapper* create(const Pokemod::SpeciesAbility* ability, QObject* parent)
- {
- if (!m_instances.contains(ability->id()))
- m_instances[ability->id()] = new SpeciesAbilityWrapper(ability, parent);
- return qobject_cast<SpeciesAbilityWrapper*>(m_instances[ability->id()]);
- }
- public slots:
- AbilityWrapper* ability();
- int weight() const;
+ static SpeciesAbilityWrapper* create(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent);
+
+ Q_SCRIPTABLE AbilityWrapper* ability();
+ Q_SCRIPTABLE int weight() const;
private:
- SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, QObject* parent);
+ SpeciesAbilityWrapper(const Pokemod::SpeciesAbility* ability, SpeciesWrapper* parent);
SpeciesAbilityWrapper& operator=(const SpeciesAbilityWrapper& rhs);
const Pokemod::SpeciesAbility* m_ability;
diff --git a/pokescripting/SpeciesItemWrapper.cpp b/pokescripting/SpeciesItemWrapper.cpp
index dcab30a0..23d4afa1 100644
--- a/pokescripting/SpeciesItemWrapper.cpp
+++ b/pokescripting/SpeciesItemWrapper.cpp
@@ -19,9 +19,17 @@
#include "SpeciesItemWrapper.h"
// Pokescripting includes
-#include "ItemWrapper.h"
+#include "PokemodWrapper.h"
+#include "SpeciesWrapper.h"
-Pokescripting::SpeciesItemWrapper::SpeciesItemWrapper(const Pokemod::SpeciesItem* item, QObject* parent) :
+Pokescripting::SpeciesItemWrapper* Pokescripting::SpeciesItemWrapper::create(const Pokemod::SpeciesItem* item, SpeciesWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, item->id())))
+ m_instances[Signiture(parent, item->id())] = new SpeciesItemWrapper(item, parent);
+ return qobject_cast<SpeciesItemWrapper*>(m_instances[Signiture(parent, item->id())]);
+}
+
+Pokescripting::SpeciesItemWrapper::SpeciesItemWrapper(const Pokemod::SpeciesItem* item, SpeciesWrapper* parent) :
ObjectWrapper(item, parent),
m_item(item)
{
@@ -29,7 +37,7 @@ Pokescripting::SpeciesItemWrapper::SpeciesItemWrapper(const Pokemod::SpeciesItem
Pokescripting::ItemWrapper* Pokescripting::SpeciesItemWrapper::item()
{
- return ItemWrapper::create(pokemod()->itemById(m_item->item()), this);
+ return pokemod()->item(m_item->item());
}
int Pokescripting::SpeciesItemWrapper::weight() const
diff --git a/pokescripting/SpeciesItemWrapper.h b/pokescripting/SpeciesItemWrapper.h
index 51b426e9..713c48bb 100644
--- a/pokescripting/SpeciesItemWrapper.h
+++ b/pokescripting/SpeciesItemWrapper.h
@@ -28,23 +28,19 @@ namespace Pokescripting
{
// Forward declarations
class ItemWrapper;
+class SpeciesWrapper;
class POKESCRIPTING_EXPORT SpeciesItemWrapper : public ObjectWrapper
{
Q_OBJECT
public:
- static SpeciesItemWrapper* create(const Pokemod::SpeciesItem* item, QObject* parent)
- {
- if (!m_instances.contains(item->id()))
- m_instances[item->id()] = new SpeciesItemWrapper(item, parent);
- return qobject_cast<SpeciesItemWrapper*>(m_instances[item->id()]);
- }
- public slots:
- ItemWrapper* item();
- int weight() const;
+ static SpeciesItemWrapper* create(const Pokemod::SpeciesItem* item, SpeciesWrapper* parent);
+
+ Q_SCRIPTABLE ItemWrapper* item();
+ Q_SCRIPTABLE int weight() const;
private:
- SpeciesItemWrapper(const Pokemod::SpeciesItem* item, QObject* parent);
+ SpeciesItemWrapper(const Pokemod::SpeciesItem* item, SpeciesWrapper* parent);
SpeciesItemWrapper& operator=(const SpeciesItemWrapper& rhs);
const Pokemod::SpeciesItem* m_item;
diff --git a/pokescripting/SpeciesMoveWrapper.cpp b/pokescripting/SpeciesMoveWrapper.cpp
index 671f0e43..d1c33864 100644
--- a/pokescripting/SpeciesMoveWrapper.cpp
+++ b/pokescripting/SpeciesMoveWrapper.cpp
@@ -19,9 +19,17 @@
#include "SpeciesMoveWrapper.h"
// Pokescripting includes
-#include "MoveWrapper.h"
+#include "PokemodWrapper.h"
+#include "SpeciesWrapper.h"
-Pokescripting::SpeciesMoveWrapper::SpeciesMoveWrapper(const Pokemod::SpeciesMove* move, QObject* parent) :
+Pokescripting::SpeciesMoveWrapper* Pokescripting::SpeciesMoveWrapper::create(const Pokemod::SpeciesMove* move, SpeciesWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, move->id())))
+ m_instances[Signiture(parent, move->id())] = new SpeciesMoveWrapper(move, parent);
+ return qobject_cast<SpeciesMoveWrapper*>(m_instances[Signiture(parent, move->id())]);
+}
+
+Pokescripting::SpeciesMoveWrapper::SpeciesMoveWrapper(const Pokemod::SpeciesMove* move, SpeciesWrapper* parent) :
ObjectWrapper(move, parent),
m_move(move)
{
@@ -29,7 +37,7 @@ Pokescripting::SpeciesMoveWrapper::SpeciesMoveWrapper(const Pokemod::SpeciesMove
Pokescripting::MoveWrapper* Pokescripting::SpeciesMoveWrapper::move()
{
- return MoveWrapper::create(pokemod()->moveById(m_move->move()), this);
+ return pokemod()->move(m_move->move());
}
int Pokescripting::SpeciesMoveWrapper::level() const
diff --git a/pokescripting/SpeciesMoveWrapper.h b/pokescripting/SpeciesMoveWrapper.h
index 713514b4..08094ee0 100644
--- a/pokescripting/SpeciesMoveWrapper.h
+++ b/pokescripting/SpeciesMoveWrapper.h
@@ -27,23 +27,21 @@
namespace Pokescripting
{
+// Forward declarations
+class SpeciesWrapper;
+
class POKESCRIPTING_EXPORT SpeciesMoveWrapper : public ObjectWrapper
{
Q_OBJECT
public:
- static SpeciesMoveWrapper* create(const Pokemod::SpeciesMove* move, QObject* parent)
- {
- if (!m_instances.contains(move->id()))
- m_instances[move->id()] = new SpeciesMoveWrapper(move, parent);
- return qobject_cast<SpeciesMoveWrapper*>(m_instances[move->id()]);
- }
- public slots:
- MoveWrapper* move();
- int level() const;
- int wild() const;
+ static SpeciesMoveWrapper* create(const Pokemod::SpeciesMove* move, SpeciesWrapper* parent);
+
+ Q_SCRIPTABLE MoveWrapper* move();
+ Q_SCRIPTABLE int level() const;
+ Q_SCRIPTABLE int wild() const;
private:
- SpeciesMoveWrapper(const Pokemod::SpeciesMove* move, QObject* parent);
+ SpeciesMoveWrapper(const Pokemod::SpeciesMove* move, SpeciesWrapper* parent);
SpeciesMoveWrapper& operator=(const SpeciesMoveWrapper& rhs);
const Pokemod::SpeciesMove* m_move;
diff --git a/pokescripting/SpeciesWrapper.cpp b/pokescripting/SpeciesWrapper.cpp
index 9c2737e4..23f76082 100644
--- a/pokescripting/SpeciesWrapper.cpp
+++ b/pokescripting/SpeciesWrapper.cpp
@@ -19,17 +19,19 @@
#include "SpeciesWrapper.h"
// Pokescripting includes
-#include "AbilityWrapper.h"
-#include "EggGroupWrapper.h"
-#include "ItemWrapper.h"
-#include "SkinWrapper.h"
+#include "PokemodWrapper.h"
#include "SpeciesAbilityWrapper.h"
#include "SpeciesItemWrapper.h"
#include "SpeciesMoveWrapper.h"
-#include "SpriteWrapper.h"
-#include "TypeWrapper.h"
-Pokescripting::SpeciesWrapper::SpeciesWrapper(const Pokemod::Species* species, QObject* parent) :
+Pokescripting::SpeciesWrapper* Pokescripting::SpeciesWrapper::create(const Pokemod::Species* species, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, species->id())))
+ m_instances[Signiture(parent, species->id())] = new SpeciesWrapper(species, parent);
+ return qobject_cast<SpeciesWrapper*>(m_instances[Signiture(parent, species->id())]);
+}
+
+Pokescripting::SpeciesWrapper::SpeciesWrapper(const Pokemod::Species* species, PokemodWrapper* parent) :
ObjectWrapper(species, parent),
m_species(species)
{
@@ -56,17 +58,17 @@ QString Pokescripting::SpeciesWrapper::name() const
return m_species->name();
}
-int Pokescripting::SpeciesWrapper::baseStat(const int stat) const
+int Pokescripting::SpeciesWrapper::baseStat(const Pokemod::Stat stat) const
{
return m_species->baseStat(stat);
}
-int Pokescripting::SpeciesWrapper::effortValue(const int stat) const
+int Pokescripting::SpeciesWrapper::effortValue(const Pokemod::Stat stat) const
{
return m_species->effortValue(stat);
}
-int Pokescripting::SpeciesWrapper::growth() const
+Pokemod::Species::Style Pokescripting::SpeciesWrapper::growth() const
{
return m_species->growth();
}
@@ -124,27 +126,27 @@ QString Pokescripting::SpeciesWrapper::pokedexEntry() const
Pokescripting::SpriteWrapper* Pokescripting::SpeciesWrapper::frontMaleSprite()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_species->frontMaleSprite()), this);
+ return pokemod()->sprite(m_species->frontMaleSprite());
}
Pokescripting::SpriteWrapper* Pokescripting::SpeciesWrapper::backMaleSprite()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_species->backMaleSprite()), this);
+ return pokemod()->sprite(m_species->backMaleSprite());
}
Pokescripting::SpriteWrapper* Pokescripting::SpeciesWrapper::frontFemaleSprite()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_species->frontFemaleSprite()), this);
+ return pokemod()->sprite(m_species->frontFemaleSprite());
}
Pokescripting::SpriteWrapper* Pokescripting::SpeciesWrapper::backFemaleSprite()
{
- return SpriteWrapper::create(pokemod()->spriteById(m_species->backFemaleSprite()), this);
+ return pokemod()->sprite(m_species->backFemaleSprite());
}
Pokescripting::SkinWrapper* Pokescripting::SpeciesWrapper::skin()
{
- return SkinWrapper::create(pokemod()->skinById(m_species->skin()), this);
+ return pokemod()->skin(m_species->skin());
}
Pokemod::Fraction Pokescripting::SpeciesWrapper::genderFactor() const
@@ -169,7 +171,7 @@ QList<Pokescripting::TypeWrapper*> Pokescripting::SpeciesWrapper::types()
QList<int> typeIds = m_species->types();
QList<TypeWrapper*> types;
foreach (int id, typeIds)
- types.append(TypeWrapper::create(pokemod()->typeById(id), this));
+ types.append(pokemod()->type(id));
return types;
}
@@ -178,7 +180,7 @@ QList<Pokescripting::EggGroupWrapper*> Pokescripting::SpeciesWrapper::eggGroups(
QList<int> eggGroupIds = m_species->eggGroups();
QList<EggGroupWrapper*> eggGroups;
foreach (int id, eggGroupIds)
- eggGroups.append(EggGroupWrapper::create(pokemod()->eggGroupById(id), this));
+ eggGroups.append(pokemod()->eggGroup(id));
return eggGroups;
}
diff --git a/pokescripting/SpeciesWrapper.h b/pokescripting/SpeciesWrapper.h
index bec1e688..f7837d3b 100644
--- a/pokescripting/SpeciesWrapper.h
+++ b/pokescripting/SpeciesWrapper.h
@@ -43,51 +43,46 @@ class POKESCRIPTING_EXPORT SpeciesWrapper : public ObjectWrapper
Q_OBJECT
public:
- static SpeciesWrapper* create(const Pokemod::Species* species, QObject* parent)
- {
- if (!m_instances.contains(species->id()))
- m_instances[species->id()] = new SpeciesWrapper(species, parent);
- return qobject_cast<SpeciesWrapper*>(m_instances[species->id()]);
- }
+ static SpeciesWrapper* create(const Pokemod::Species* species, PokemodWrapper* parent);
Pokemod::Hat<AbilityWrapper*> abilityHat();
Pokemod::Hat<ItemWrapper*> itemHat();
- public slots:
- QString name() const;
- int baseStat(const int stat) const;
- int effortValue(const int stat) const;
- int growth() const;
- int experienceValue() const;
- int catchValue() const;
- Pokemod::Fraction runChance() const;
- Pokemod::Fraction fleeChance() const;
- Pokemod::Fraction itemChance() const;
- int pokedexNumber() const;
- int weight() const;
- int height() const;
- QString pokedexEntry() const;
- SpriteWrapper* frontMaleSprite();
- SpriteWrapper* backMaleSprite();
- SpriteWrapper* frontFemaleSprite();
- SpriteWrapper* backFemaleSprite();
- SkinWrapper* skin();
- Pokemod::Fraction genderFactor() const;
- int eggSpecies() const;
- int eggSteps() const;
- QList<TypeWrapper*> types();
- QList<EggGroupWrapper*> eggGroups();
- Pokemod::Script evolution() const;
- SpeciesAbilityWrapper* ability(const int index);
- int abilityCount() const;
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE int baseStat(const Pokemod::Stat stat) const;
+ Q_SCRIPTABLE int effortValue(const Pokemod::Stat stat) const;
+ Q_SCRIPTABLE Pokemod::Species::Style growth() const;
+ Q_SCRIPTABLE int experienceValue() const;
+ Q_SCRIPTABLE int catchValue() const;
+ Q_SCRIPTABLE Pokemod::Fraction runChance() const;
+ Q_SCRIPTABLE Pokemod::Fraction fleeChance() const;
+ Q_SCRIPTABLE Pokemod::Fraction itemChance() const;
+ Q_SCRIPTABLE int pokedexNumber() const;
+ Q_SCRIPTABLE int weight() const;
+ Q_SCRIPTABLE int height() const;
+ Q_SCRIPTABLE QString pokedexEntry() const;
+ Q_SCRIPTABLE SpriteWrapper* frontMaleSprite();
+ Q_SCRIPTABLE SpriteWrapper* backMaleSprite();
+ Q_SCRIPTABLE SpriteWrapper* frontFemaleSprite();
+ Q_SCRIPTABLE SpriteWrapper* backFemaleSprite();
+ Q_SCRIPTABLE SkinWrapper* skin();
+ Q_SCRIPTABLE Pokemod::Fraction genderFactor() const;
+ Q_SCRIPTABLE int eggSpecies() const;
+ Q_SCRIPTABLE int eggSteps() const;
+ Q_SCRIPTABLE QList<TypeWrapper*> types();
+ Q_SCRIPTABLE QList<EggGroupWrapper*> eggGroups();
+ Q_SCRIPTABLE Pokemod::Script evolution() const;
- SpeciesItemWrapper* item(const int index);
- int itemCount() const;
+ Q_SCRIPTABLE SpeciesAbilityWrapper* ability(const int index);
+ Q_SCRIPTABLE int abilityCount() const;
+
+ Q_SCRIPTABLE SpeciesItemWrapper* item(const int index);
+ Q_SCRIPTABLE int itemCount() const;
- SpeciesMoveWrapper* move(const int index);
- int moveCount() const;
+ Q_SCRIPTABLE SpeciesMoveWrapper* move(const int index);
+ Q_SCRIPTABLE int moveCount() const;
private:
- SpeciesWrapper(const Pokemod::Species* species, QObject* parent);
+ SpeciesWrapper(const Pokemod::Species* species, PokemodWrapper* parent);
SpeciesWrapper& operator=(const SpeciesWrapper& rhs);
const Pokemod::Species* m_species;
diff --git a/pokescripting/SpriteWrapper.cpp b/pokescripting/SpriteWrapper.cpp
index 7c0bc396..47fd585b 100644
--- a/pokescripting/SpriteWrapper.cpp
+++ b/pokescripting/SpriteWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "SpriteWrapper.h"
-Pokescripting::SpriteWrapper::SpriteWrapper(const Pokemod::Sprite* sprite, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::SpriteWrapper* Pokescripting::SpriteWrapper::create(const Pokemod::Sprite* sprite, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, sprite->id())))
+ m_instances[Signiture(parent, sprite->id())] = new SpriteWrapper(sprite, parent);
+ return qobject_cast<SpriteWrapper*>(m_instances[Signiture(parent, sprite->id())]);
+}
+
+Pokescripting::SpriteWrapper::SpriteWrapper(const Pokemod::Sprite* sprite, PokemodWrapper* parent) :
ObjectWrapper(sprite, parent),
m_sprite(sprite)
{
diff --git a/pokescripting/SpriteWrapper.h b/pokescripting/SpriteWrapper.h
index 5a579d29..87b101d5 100644
--- a/pokescripting/SpriteWrapper.h
+++ b/pokescripting/SpriteWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT SpriteWrapper : public ObjectWrapper
Q_OBJECT
public:
- static SpriteWrapper* create(const Pokemod::Sprite* sprite, QObject* parent)
- {
- if (!m_instances.contains(sprite->id()))
- m_instances[sprite->id()] = new SpriteWrapper(sprite, parent);
- return qobject_cast<SpriteWrapper*>(m_instances[sprite->id()]);
- }
- public slots:
- QString name() const;
- QPixmap sprite() const;
+ static SpriteWrapper* create(const Pokemod::Sprite* sprite, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE QPixmap sprite() const;
private:
- SpriteWrapper(const Pokemod::Sprite* sprite, QObject* parent);
+ SpriteWrapper(const Pokemod::Sprite* sprite, PokemodWrapper* parent);
SpriteWrapper& operator=(const SpriteWrapper& rhs);
const Pokemod::Sprite* m_sprite;
diff --git a/pokescripting/StatusWrapper.cpp b/pokescripting/StatusWrapper.cpp
index 2cfd0d30..0b662efe 100644
--- a/pokescripting/StatusWrapper.cpp
+++ b/pokescripting/StatusWrapper.cpp
@@ -18,9 +18,19 @@
// Header include
#include "StatusWrapper.h"
-Pokescripting::StatusWrapper::StatusWrapper(const Pokemod::Status* status, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::StatusWrapper* Pokescripting::StatusWrapper::create(const Pokemod::Status* status, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, status->id())))
+ m_instances[Signiture(parent, status->id())] = new StatusWrapper(status, parent);
+ return qobject_cast<StatusWrapper*>(m_instances[Signiture(parent, status->id())]);
+}
+
+Pokescripting::StatusWrapper::StatusWrapper(const Pokemod::Status* status, PokemodWrapper* parent) :
ObjectWrapper(status, parent),
- m_status(status)
+ m_status(status)
{
}
diff --git a/pokescripting/StatusWrapper.h b/pokescripting/StatusWrapper.h
index d06ecdae..2b6bafba 100644
--- a/pokescripting/StatusWrapper.h
+++ b/pokescripting/StatusWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT StatusWrapper : public ObjectWrapper
Q_OBJECT
public:
- static StatusWrapper* create(const Pokemod::Status* status, QObject* parent)
- {
- if (!m_instances.contains(status->id()))
- m_instances[status->id()] = new StatusWrapper(status, parent);
- return qobject_cast<StatusWrapper*>(m_instances[status->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Script script() const;
+ static StatusWrapper* create(const Pokemod::Status* status, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- StatusWrapper(const Pokemod::Status* status, QObject* parent);
+ StatusWrapper(const Pokemod::Status* status, PokemodWrapper* parent);
StatusWrapper& operator=(const StatusWrapper& rhs);
const Pokemod::Status* m_status;
diff --git a/pokescripting/StoreWrapper.cpp b/pokescripting/StoreWrapper.cpp
index cb368703..111d0bd0 100644
--- a/pokescripting/StoreWrapper.cpp
+++ b/pokescripting/StoreWrapper.cpp
@@ -19,9 +19,16 @@
#include "StoreWrapper.h"
// Pokescripting includes
-#include "ItemWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::StoreWrapper::StoreWrapper(const Pokemod::Store* store, QObject* parent) :
+Pokescripting::StoreWrapper* Pokescripting::StoreWrapper::create(const Pokemod::Store* store, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, store->id())))
+ m_instances[Signiture(parent, store->id())] = new StoreWrapper(store, parent);
+ return qobject_cast<StoreWrapper*>(m_instances[Signiture(parent, store->id())]);
+}
+
+Pokescripting::StoreWrapper::StoreWrapper(const Pokemod::Store* store, PokemodWrapper* parent) :
ObjectWrapper(store, parent),
m_store(store)
{
@@ -37,6 +44,6 @@ QList<Pokescripting::ItemWrapper*> Pokescripting::StoreWrapper::items()
QList<int> itemIds = m_store->items();
QList<ItemWrapper*> items;
foreach (int id, itemIds)
- items.append(ItemWrapper::create(pokemod()->itemById(id), this));
+ items.append(pokemod()->item(id));
return items;
}
diff --git a/pokescripting/StoreWrapper.h b/pokescripting/StoreWrapper.h
index c6ee315c..caf458b3 100644
--- a/pokescripting/StoreWrapper.h
+++ b/pokescripting/StoreWrapper.h
@@ -34,17 +34,12 @@ class POKESCRIPTING_EXPORT StoreWrapper : public ObjectWrapper
Q_OBJECT
public:
- static StoreWrapper* create(const Pokemod::Store* store, QObject* parent)
- {
- if (!m_instances.contains(store->id()))
- m_instances[store->id()] = new StoreWrapper(store, parent);
- return qobject_cast<StoreWrapper*>(m_instances[store->id()]);
- }
- public slots:
- QString name() const;
- QList<ItemWrapper*> items();
+ static StoreWrapper* create(const Pokemod::Store* store, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE QList<ItemWrapper*> items();
private:
- StoreWrapper(const Pokemod::Store* store, QObject* parent);
+ StoreWrapper(const Pokemod::Store* store, PokemodWrapper* parent);
StoreWrapper& operator=(const StoreWrapper& rhs);
const Pokemod::Store* m_store;
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);
}
diff --git a/pokescripting/TileWrapper.h b/pokescripting/TileWrapper.h
index 57722df3..0075b965 100644
--- a/pokescripting/TileWrapper.h
+++ b/pokescripting/TileWrapper.h
@@ -34,19 +34,14 @@ class POKESCRIPTING_EXPORT TileWrapper : public ObjectWrapper
Q_OBJECT
public:
- static TileWrapper* create(const Pokemod::Tile* tile, QObject* parent)
- {
- if (!m_instances.contains(tile->id()))
- m_instances[tile->id()] = new TileWrapper(tile, parent);
- return qobject_cast<TileWrapper*>(m_instances[tile->id()]);
- }
- public slots:
- QString name() const;
- SpriteWrapper* sprite();
- bool from(const int direction) const;
- Pokemod::Script script() const;
+ static TileWrapper* create(const Pokemod::Tile* tile, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE SpriteWrapper* sprite();
+ Q_SCRIPTABLE bool from(const Pokemod::Direction direction) const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- TileWrapper(const Pokemod::Tile* tile, QObject* parent);
+ TileWrapper(const Pokemod::Tile* tile, PokemodWrapper* parent);
TileWrapper& operator=(const TileWrapper& rhs);
const Pokemod::Tile* m_tile;
diff --git a/pokescripting/TimeWrapper.cpp b/pokescripting/TimeWrapper.cpp
index 0efd4237..1971582b 100644
--- a/pokescripting/TimeWrapper.cpp
+++ b/pokescripting/TimeWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "TimeWrapper.h"
-Pokescripting::TimeWrapper::TimeWrapper(const Pokemod::Time* time, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::TimeWrapper* Pokescripting::TimeWrapper::create(const Pokemod::Time* time, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, time->id())))
+ m_instances[Signiture(parent, time->id())] = new TimeWrapper(time, parent);
+ return qobject_cast<TimeWrapper*>(m_instances[Signiture(parent, time->id())]);
+}
+
+Pokescripting::TimeWrapper::TimeWrapper(const Pokemod::Time* time, PokemodWrapper* parent) :
ObjectWrapper(time, parent),
m_time(time)
{
diff --git a/pokescripting/TimeWrapper.h b/pokescripting/TimeWrapper.h
index 9337f80d..d234d9f5 100644
--- a/pokescripting/TimeWrapper.h
+++ b/pokescripting/TimeWrapper.h
@@ -31,18 +31,13 @@ class POKESCRIPTING_EXPORT TimeWrapper : public ObjectWrapper
Q_OBJECT
public:
- static TimeWrapper* create(const Pokemod::Time* time, QObject* parent)
- {
- if (!m_instances.contains(time->id()))
- m_instances[time->id()] = new TimeWrapper(time, parent);
- return qobject_cast<TimeWrapper*>(m_instances[time->id()]);
- }
- public slots:
- QString name() const;
- int hour() const;
- int minute() const;
+ static TimeWrapper* create(const Pokemod::Time* time, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE int hour() const;
+ Q_SCRIPTABLE int minute() const;
private:
- TimeWrapper(const Pokemod::Time* time, QObject* parent);
+ TimeWrapper(const Pokemod::Time* time, PokemodWrapper* parent);
TimeWrapper& operator=(const TimeWrapper& rhs);
const Pokemod::Time* m_time;
diff --git a/pokescripting/TrainerWrapper.cpp b/pokescripting/TrainerWrapper.cpp
index 0c30ceb0..7f19bfb1 100644
--- a/pokescripting/TrainerWrapper.cpp
+++ b/pokescripting/TrainerWrapper.cpp
@@ -19,9 +19,16 @@
#include "TrainerWrapper.h"
// Pokescripting includes
-#include "SkinWrapper.h"
+#include "PokemodWrapper.h"
-Pokescripting::TrainerWrapper::TrainerWrapper(const Pokemod::Trainer* trainer, QObject* parent) :
+Pokescripting::TrainerWrapper* Pokescripting::TrainerWrapper::create(const Pokemod::Trainer* trainer, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, trainer->id())))
+ m_instances[Signiture(parent, trainer->id())] = new TrainerWrapper(trainer, parent);
+ return qobject_cast<TrainerWrapper*>(m_instances[Signiture(parent, trainer->id())]);
+}
+
+Pokescripting::TrainerWrapper::TrainerWrapper(const Pokemod::Trainer* trainer, PokemodWrapper* parent) :
ObjectWrapper(trainer, parent),
m_trainer(trainer)
{
@@ -41,7 +48,7 @@ int Pokescripting::TrainerWrapper::TrainerWrapper::moneyFactor() const
Pokescripting::SkinWrapper* Pokescripting::TrainerWrapper::TrainerWrapper::skin()
{
- return SkinWrapper::create(pokemod()->skinById(m_trainer->skin()), this);
+ return pokemod()->skin(m_trainer->skin());
}
int Pokescripting::TrainerWrapper::TrainerWrapper::depth() const
@@ -51,27 +58,27 @@ int Pokescripting::TrainerWrapper::TrainerWrapper::depth() const
return m_trainer->depth();
}
-int Pokescripting::TrainerWrapper::TrainerWrapper::teamIntel() const
+Pokemod::Trainer::Intelligence Pokescripting::TrainerWrapper::TrainerWrapper::teamIntel() const
{
return m_trainer->teamIntel();
}
-int Pokescripting::TrainerWrapper::TrainerWrapper::moveIntel() const
+Pokemod::Trainer::Intelligence Pokescripting::TrainerWrapper::TrainerWrapper::moveIntel() const
{
return m_trainer->moveIntel();
}
-int Pokescripting::TrainerWrapper::TrainerWrapper::itemIntel() const
+Pokemod::Trainer::Intelligence Pokescripting::TrainerWrapper::TrainerWrapper::itemIntel() const
{
return m_trainer->itemIntel();
}
-int Pokescripting::TrainerWrapper::TrainerWrapper::abilityIntel() const
+Pokemod::Trainer::Intelligence Pokescripting::TrainerWrapper::TrainerWrapper::abilityIntel() const
{
return m_trainer->abilityIntel();
}
-int Pokescripting::TrainerWrapper::TrainerWrapper::statIntel() const
+Pokemod::Trainer::Intelligence Pokescripting::TrainerWrapper::TrainerWrapper::statIntel() const
{
return m_trainer->statIntel();
}
diff --git a/pokescripting/TrainerWrapper.h b/pokescripting/TrainerWrapper.h
index e55497cb..da84fdbb 100644
--- a/pokescripting/TrainerWrapper.h
+++ b/pokescripting/TrainerWrapper.h
@@ -34,24 +34,19 @@ class POKESCRIPTING_EXPORT TrainerWrapper : public ObjectWrapper
Q_OBJECT
public:
- static TrainerWrapper* create(const Pokemod::Trainer* trainer, QObject* parent)
- {
- if (!m_instances.contains(trainer->id()))
- m_instances[trainer->id()] = new TrainerWrapper(trainer, parent);
- return qobject_cast<TrainerWrapper*>(m_instances[trainer->id()]);
- }
- public slots:
- QString name() const;
- int moneyFactor() const;
- SkinWrapper* skin();
- int depth() const;
- int teamIntel() const;
- int moveIntel() const;
- int itemIntel() const;
- int abilityIntel() const;
- int statIntel() const;
+ static TrainerWrapper* create(const Pokemod::Trainer* trainer, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE int moneyFactor() const;
+ Q_SCRIPTABLE SkinWrapper* skin();
+ Q_SCRIPTABLE int depth() const;
+ Q_SCRIPTABLE Pokemod::Trainer::Intelligence teamIntel() const;
+ Q_SCRIPTABLE Pokemod::Trainer::Intelligence moveIntel() const;
+ Q_SCRIPTABLE Pokemod::Trainer::Intelligence itemIntel() const;
+ Q_SCRIPTABLE Pokemod::Trainer::Intelligence abilityIntel() const;
+ Q_SCRIPTABLE Pokemod::Trainer::Intelligence statIntel() const;
private:
- TrainerWrapper(const Pokemod::Trainer* trainer, QObject* parent);
+ TrainerWrapper(const Pokemod::Trainer* trainer, PokemodWrapper* parent);
TrainerWrapper& operator=(const TrainerWrapper& rhs);
const Pokemod::Trainer* m_trainer;
diff --git a/pokescripting/TypeWrapper.cpp b/pokescripting/TypeWrapper.cpp
index 5cc8323f..d752a9fa 100644
--- a/pokescripting/TypeWrapper.cpp
+++ b/pokescripting/TypeWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "TypeWrapper.h"
-Pokescripting::TypeWrapper::TypeWrapper(const Pokemod::Type* type, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::TypeWrapper* Pokescripting::TypeWrapper::create(const Pokemod::Type* type, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, type->id())))
+ m_instances[Signiture(parent, type->id())] = new TypeWrapper(type, parent);
+ return qobject_cast<TypeWrapper*>(m_instances[Signiture(parent, type->id())]);
+}
+
+Pokescripting::TypeWrapper::TypeWrapper(const Pokemod::Type* type, PokemodWrapper* parent) :
ObjectWrapper(type, parent),
m_type(type)
{
diff --git a/pokescripting/TypeWrapper.h b/pokescripting/TypeWrapper.h
index ee56d2f4..2c55de63 100644
--- a/pokescripting/TypeWrapper.h
+++ b/pokescripting/TypeWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT TypeWrapper : public ObjectWrapper
Q_OBJECT
public:
- static TypeWrapper* create(const Pokemod::Type* type, QObject* parent)
- {
- if (!m_instances.contains(type->id()))
- m_instances[type->id()] = new TypeWrapper(type, parent);
- return qobject_cast<TypeWrapper*>(m_instances[type->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Fraction stab() const;
+ static TypeWrapper* create(const Pokemod::Type* type, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Fraction stab() const;
private:
- TypeWrapper(const Pokemod::Type* type, QObject* parent);
+ TypeWrapper(const Pokemod::Type* type, PokemodWrapper* parent);
TypeWrapper& operator=(const TypeWrapper& rhs);
const Pokemod::Type* m_type;
diff --git a/pokescripting/WeatherWrapper.cpp b/pokescripting/WeatherWrapper.cpp
index 08e0e272..ad7bc990 100644
--- a/pokescripting/WeatherWrapper.cpp
+++ b/pokescripting/WeatherWrapper.cpp
@@ -18,7 +18,17 @@
// Header include
#include "WeatherWrapper.h"
-Pokescripting::WeatherWrapper::WeatherWrapper(const Pokemod::Weather* weather, QObject* parent) :
+// Pokescripting includes
+#include "PokemodWrapper.h"
+
+Pokescripting::WeatherWrapper* Pokescripting::WeatherWrapper::create(const Pokemod::Weather* weather, PokemodWrapper* parent)
+{
+ if (!m_instances.contains(Signiture(parent, weather->id())))
+ m_instances[Signiture(parent, weather->id())] = new WeatherWrapper(weather, parent);
+ return qobject_cast<WeatherWrapper*>(m_instances[Signiture(parent, weather->id())]);
+}
+
+Pokescripting::WeatherWrapper::WeatherWrapper(const Pokemod::Weather* weather, PokemodWrapper* parent) :
ObjectWrapper(weather, parent),
m_weather(weather)
{
diff --git a/pokescripting/WeatherWrapper.h b/pokescripting/WeatherWrapper.h
index bcc22e3f..75140120 100644
--- a/pokescripting/WeatherWrapper.h
+++ b/pokescripting/WeatherWrapper.h
@@ -31,17 +31,12 @@ class POKESCRIPTING_EXPORT WeatherWrapper : public ObjectWrapper
Q_OBJECT
public:
- static WeatherWrapper* create(const Pokemod::Weather* weather, QObject* parent)
- {
- if (!m_instances.contains(weather->id()))
- m_instances[weather->id()] = new WeatherWrapper(weather, parent);
- return qobject_cast<WeatherWrapper*>(m_instances[weather->id()]);
- }
- public slots:
- QString name() const;
- Pokemod::Script script() const;
+ static WeatherWrapper* create(const Pokemod::Weather* weather, PokemodWrapper* parent);
+
+ Q_SCRIPTABLE QString name() const;
+ Q_SCRIPTABLE Pokemod::Script script() const;
private:
- WeatherWrapper(const Pokemod::Weather* weather, QObject* parent);
+ WeatherWrapper(const Pokemod::Weather* weather, PokemodWrapper* parent);
WeatherWrapper& operator=(const WeatherWrapper& rhs);
const Pokemod::Weather* m_weather;