summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-10-16 23:36:56 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-10-16 23:36:56 +0000
commit3b83cc89885788de19b09f5e9e55c5d3ad7c60c9 (patch)
tree5de86af20055a96c81952fb44a0e0193681b9762
parent460e7bdf3f6c1de69f41b02a16deb85522ae3c49 (diff)
downloadsigen-3b83cc89885788de19b09f5e9e55c5d3ad7c60c9.tar.gz
sigen-3b83cc89885788de19b09f5e9e55c5d3ad7c60c9.tar.xz
sigen-3b83cc89885788de19b09f5e9e55c5d3ad7c60c9.zip
[FIX] Signature is fixed in Sigscript
[FIX] Hat cleaned up a bit git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@279 6ecfd1a5-f3ed-3746-8530-beee90d26b22
-rw-r--r--Changelog8
-rw-r--r--sigmod/Hat.h20
-rw-r--r--sigmod/Object.h2
-rw-r--r--sigscript/AbilityWrapper.cpp7
-rw-r--r--sigscript/AuthorWrapper.cpp7
-rw-r--r--sigscript/BadgeWrapper.cpp7
-rw-r--r--sigscript/CoinListObjectWrapper.cpp7
-rw-r--r--sigscript/CoinListWrapper.cpp7
-rw-r--r--sigscript/EggGroupWrapper.cpp7
-rw-r--r--sigscript/GlobalScriptWrapper.cpp7
-rw-r--r--sigscript/ItemTypeWrapper.cpp7
-rw-r--r--sigscript/ItemWrapper.cpp7
-rw-r--r--sigscript/MapEffectWrapper.cpp7
-rw-r--r--sigscript/MapTrainerTeamMemberWrapper.cpp7
-rw-r--r--sigscript/MapTrainerWrapper.cpp7
-rw-r--r--sigscript/MapWarpWrapper.cpp7
-rw-r--r--sigscript/MapWildListEncounterWrapper.cpp7
-rw-r--r--sigscript/MapWildListWrapper.cpp7
-rw-r--r--sigscript/MapWrapper.cpp7
-rw-r--r--sigscript/MoveWrapper.cpp7
-rw-r--r--sigscript/NatureWrapper.cpp7
-rw-r--r--sigscript/ObjectWrapper.h3
-rw-r--r--sigscript/RulesWrapper.cpp7
-rw-r--r--sigscript/SkinWrapper.cpp7
-rw-r--r--sigscript/SoundWrapper.cpp7
-rw-r--r--sigscript/SpeciesAbilityWrapper.cpp7
-rw-r--r--sigscript/SpeciesItemWrapper.cpp7
-rw-r--r--sigscript/SpeciesMoveWrapper.cpp7
-rw-r--r--sigscript/SpeciesWrapper.cpp7
-rw-r--r--sigscript/SpriteWrapper.cpp12
-rw-r--r--sigscript/SpriteWrapper.h1
-rw-r--r--sigscript/StatusWrapper.cpp7
-rw-r--r--sigscript/StoreWrapper.cpp7
-rw-r--r--sigscript/TileWrapper.cpp7
-rw-r--r--sigscript/TimeWrapper.cpp7
-rw-r--r--sigscript/TrainerWrapper.cpp7
-rw-r--r--sigscript/TypeWrapper.cpp7
-rw-r--r--sigscript/WeatherWrapper.cpp7
38 files changed, 156 insertions, 114 deletions
diff --git a/Changelog b/Changelog
index 8ea25e14..bd440dc2 100644
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,12 @@
-----------------
+Rev: 279
+Date: 16 October 2008
+User: MathStuf
+-----------------
+[FIX] Signature is fixed in Sigscript
+[FIX] Hat cleaned up a bit
+
+-----------------
Rev: 278
Date: 13 October 2008
User: MathStuf
diff --git a/sigmod/Hat.h b/sigmod/Hat.h
index 20514412..1b8facdf 100644
--- a/sigmod/Hat.h
+++ b/sigmod/Hat.h
@@ -111,7 +111,7 @@ template<class T> inline Hat<T>::Hat() :
template<class T> inline T Hat<T>::pick() const
{
int choice = qrand() % m_count;
- foreach (T key, m_objects.keys())
+ foreach (const T& key, m_objects.keys())
{
choice -= m_objects[key];
if (choice < 0)
@@ -140,21 +140,21 @@ template<class T> inline T Hat<T>::takeAndClear()
template<class T> inline void Hat<T>::setCount(const T& key, const int weight)
{
if (m_objects.contains(key))
- m_count -= m_objects[key];
- if (weight)
{
- m_objects[key] = weight;
- m_count += weight;
+ m_count -= m_objects[key];
+ if (!weight)
+ m_objects.remove(key);
}
- else
- m_objects.remove(key);
+ add(key, weight);
}
template<class T> inline void Hat<T>::add(const T& key, const int weight)
{
- Q_ASSERT(0 < weight);
- m_objects[key] += weight;
- m_count += weight;
+ if (weight)
+ {
+ m_objects[key] += weight;
+ m_count += weight;
+ }
}
template<class T> inline int Hat<T>::distinctCount() const
diff --git a/sigmod/Object.h b/sigmod/Object.h
index 6e0390a7..63409e58 100644
--- a/sigmod/Object.h
+++ b/sigmod/Object.h
@@ -87,7 +87,7 @@ class SIGMOD_EXPORT Object : public QObject
QString className() const;
/**
- * Convenience function to create a QDomDocument from the QDomElement that is returned from \link Object::save save \endlink .
+ * Convenience function to create a QDomDocument from the QDomElement that is returned from \link Object::save save \endlink.
*
* \param object The object to create an XML structure from.
* \return The XML representation of \p object.
diff --git a/sigscript/AbilityWrapper.cpp b/sigscript/AbilityWrapper.cpp
index 42a40541..19fb9734 100644
--- a/sigscript/AbilityWrapper.cpp
+++ b/sigscript/AbilityWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::AbilityWrapper* Sigscript::AbilityWrapper::create(const Sigmod::Ability* ability, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, ability->id())))
- m_instances[Signature(parent, ability->id())] = new AbilityWrapper(ability, parent);
- return qobject_cast<AbilityWrapper*>(m_instances[Signature(parent, ability->id())]);
+ Signature sig = Signature(parent, Subsignature(ability->className(), ability->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new AbilityWrapper(ability, parent);
+ return qobject_cast<AbilityWrapper*>(m_instances[sig]);
}
Sigscript::AbilityWrapper::AbilityWrapper(const Sigmod::Ability* ability, SigmodWrapper* parent) :
diff --git a/sigscript/AuthorWrapper.cpp b/sigscript/AuthorWrapper.cpp
index 1715ca90..22f08b5c 100644
--- a/sigscript/AuthorWrapper.cpp
+++ b/sigscript/AuthorWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::AuthorWrapper* Sigscript::AuthorWrapper::create(const Sigmod::Author* author, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, author->id())))
- m_instances[Signature(parent, author->id())] = new AuthorWrapper(author, parent);
- return qobject_cast<AuthorWrapper*>(m_instances[Signature(parent, author->id())]);
+ Signature sig = Signature(parent, Subsignature(author->className(), author->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new AuthorWrapper(author, parent);
+ return qobject_cast<AuthorWrapper*>(m_instances[sig]);
}
Sigscript::AuthorWrapper::AuthorWrapper(const Sigmod::Author* author, SigmodWrapper* parent) :
diff --git a/sigscript/BadgeWrapper.cpp b/sigscript/BadgeWrapper.cpp
index abb16d6c..2c0b4116 100644
--- a/sigscript/BadgeWrapper.cpp
+++ b/sigscript/BadgeWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::BadgeWrapper* Sigscript::BadgeWrapper::create(const Sigmod::Badge* badge, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, badge->id())))
- m_instances[Signature(parent, badge->id())] = new BadgeWrapper(badge, parent);
- return qobject_cast<BadgeWrapper*>(m_instances[Signature(parent, badge->id())]);
+ Signature sig = Signature(parent, Subsignature(badge->className(), badge->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new BadgeWrapper(badge, parent);
+ return qobject_cast<BadgeWrapper*>(m_instances[sig]);
}
Sigscript::BadgeWrapper::BadgeWrapper(const Sigmod::Badge* badge, SigmodWrapper* parent) :
diff --git a/sigscript/CoinListObjectWrapper.cpp b/sigscript/CoinListObjectWrapper.cpp
index 6520b8d1..c04e90f1 100644
--- a/sigscript/CoinListObjectWrapper.cpp
+++ b/sigscript/CoinListObjectWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::CoinListObjectWrapper* Sigscript::CoinListObjectWrapper::create(const Sigmod::CoinListObject* object, CoinListWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, object->id())))
- m_instances[Signature(parent, object->id())] = new CoinListObjectWrapper(object, parent);
- return qobject_cast<CoinListObjectWrapper*>(m_instances[Signature(parent, object->id())]);
+ Signature sig = Signature(parent, Subsignature(object->className(), object->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new CoinListObjectWrapper(object, parent);
+ return qobject_cast<CoinListObjectWrapper*>(m_instances[sig]);
}
Sigscript::CoinListObjectWrapper::CoinListObjectWrapper(const Sigmod::CoinListObject* object, CoinListWrapper* parent) :
diff --git a/sigscript/CoinListWrapper.cpp b/sigscript/CoinListWrapper.cpp
index 623476d4..67221bdd 100644
--- a/sigscript/CoinListWrapper.cpp
+++ b/sigscript/CoinListWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::CoinListWrapper* Sigscript::CoinListWrapper::create(const Sigmod::CoinList* coinList, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, coinList->id())))
- m_instances[Signature(parent, coinList->id())] = new CoinListWrapper(coinList, parent);
- return qobject_cast<CoinListWrapper*>(m_instances[Signature(parent, coinList->id())]);
+ Signature sig = Signature(parent, Subsignature(coinList->className(), coinList->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new CoinListWrapper(coinList, parent);
+ return qobject_cast<CoinListWrapper*>(m_instances[sig]);
}
Sigscript::CoinListWrapper::CoinListWrapper(const Sigmod::CoinList* coinList, SigmodWrapper* parent) :
diff --git a/sigscript/EggGroupWrapper.cpp b/sigscript/EggGroupWrapper.cpp
index fee20d84..0c18289b 100644
--- a/sigscript/EggGroupWrapper.cpp
+++ b/sigscript/EggGroupWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::EggGroupWrapper* Sigscript::EggGroupWrapper::create(const Sigmod::EggGroup* eggGroup, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, eggGroup->id())))
- m_instances[Signature(parent, eggGroup->id())] = new EggGroupWrapper(eggGroup, parent);
- return qobject_cast<EggGroupWrapper*>(m_instances[Signature(parent, eggGroup->id())]);
+ Signature sig = Signature(parent, Subsignature(eggGroup->className(), eggGroup->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new EggGroupWrapper(eggGroup, parent);
+ return qobject_cast<EggGroupWrapper*>(m_instances[sig]);
}
Sigscript::EggGroupWrapper::EggGroupWrapper(const Sigmod::EggGroup* eggGroup, SigmodWrapper* parent) :
diff --git a/sigscript/GlobalScriptWrapper.cpp b/sigscript/GlobalScriptWrapper.cpp
index abef6aad..e7d773af 100644
--- a/sigscript/GlobalScriptWrapper.cpp
+++ b/sigscript/GlobalScriptWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::GlobalScriptWrapper* Sigscript::GlobalScriptWrapper::create(const Sigmod::GlobalScript* globalScript, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, globalScript->id())))
- m_instances[Signature(parent, globalScript->id())] = new GlobalScriptWrapper(globalScript, parent);
- return qobject_cast<GlobalScriptWrapper*>(m_instances[Signature(parent, globalScript->id())]);
+ Signature sig = Signature(parent, Subsignature(globalScript->className(), globalScript->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new GlobalScriptWrapper(globalScript, parent);
+ return qobject_cast<GlobalScriptWrapper*>(m_instances[sig]);
}
Sigscript::GlobalScriptWrapper::GlobalScriptWrapper(const Sigmod::GlobalScript* globalScript, SigmodWrapper* parent) :
diff --git a/sigscript/ItemTypeWrapper.cpp b/sigscript/ItemTypeWrapper.cpp
index ae3fb45a..8201a33b 100644
--- a/sigscript/ItemTypeWrapper.cpp
+++ b/sigscript/ItemTypeWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::ItemTypeWrapper* Sigscript::ItemTypeWrapper::create(const Sigmod::ItemType* itemType, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, itemType->id())))
- m_instances[Signature(parent, itemType->id())] = new ItemTypeWrapper(itemType, parent);
- return qobject_cast<ItemTypeWrapper*>(m_instances[Signature(parent, itemType->id())]);
+ Signature sig = Signature(parent, Subsignature(itemType->className(), itemType->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new ItemTypeWrapper(itemType, parent);
+ return qobject_cast<ItemTypeWrapper*>(m_instances[sig]);
}
Sigscript::ItemTypeWrapper::ItemTypeWrapper(const Sigmod::ItemType* itemType, SigmodWrapper* parent) :
diff --git a/sigscript/ItemWrapper.cpp b/sigscript/ItemWrapper.cpp
index 642b6303..1768ccd8 100644
--- a/sigscript/ItemWrapper.cpp
+++ b/sigscript/ItemWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::ItemWrapper* Sigscript::ItemWrapper::create(const Sigmod::Item* item, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, item->id())))
- m_instances[Signature(parent, item->id())] = new ItemWrapper(item, parent);
- return qobject_cast<ItemWrapper*>(m_instances[Signature(parent, item->id())]);
+ Signature sig = Signature(parent, Subsignature(item->className(), item->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new ItemWrapper(item, parent);
+ return qobject_cast<ItemWrapper*>(m_instances[sig]);
}
Sigscript::ItemWrapper::ItemWrapper(const Sigmod::Item* item, SigmodWrapper* parent) :
diff --git a/sigscript/MapEffectWrapper.cpp b/sigscript/MapEffectWrapper.cpp
index c06d7c10..a8379407 100644
--- a/sigscript/MapEffectWrapper.cpp
+++ b/sigscript/MapEffectWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::MapEffectWrapper* Sigscript::MapEffectWrapper::create(const Sigmod::MapEffect* effect, MapWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, effect->id())))
- m_instances[Signature(parent, effect->id())] = new MapEffectWrapper(effect, parent);
- return qobject_cast<MapEffectWrapper*>(m_instances[Signature(parent, effect->id())]);
+ Signature sig = Signature(parent, Subsignature(effect->className(), effect->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapEffectWrapper(effect, parent);
+ return qobject_cast<MapEffectWrapper*>(m_instances[sig]);
}
Sigscript::MapEffectWrapper::MapEffectWrapper(const Sigmod::MapEffect* effect, MapWrapper* parent) :
diff --git a/sigscript/MapTrainerTeamMemberWrapper.cpp b/sigscript/MapTrainerTeamMemberWrapper.cpp
index 74e500c4..3159ad5e 100644
--- a/sigscript/MapTrainerTeamMemberWrapper.cpp
+++ b/sigscript/MapTrainerTeamMemberWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::MapTrainerTeamMemberWrapper* Sigscript::MapTrainerTeamMemberWrapper::create(const Sigmod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, teamMember->id())))
- m_instances[Signature(parent, teamMember->id())] = new MapTrainerTeamMemberWrapper(teamMember, parent);
- return qobject_cast<MapTrainerTeamMemberWrapper*>(m_instances[Signature(parent, teamMember->id())]);
+ Signature sig = Signature(parent, Subsignature(teamMember->className(), teamMember->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapTrainerTeamMemberWrapper(teamMember, parent);
+ return qobject_cast<MapTrainerTeamMemberWrapper*>(m_instances[sig]);
}
Sigscript::MapTrainerTeamMemberWrapper::MapTrainerTeamMemberWrapper(const Sigmod::MapTrainerTeamMember* teamMember, MapTrainerWrapper* parent) :
diff --git a/sigscript/MapTrainerWrapper.cpp b/sigscript/MapTrainerWrapper.cpp
index 39ce9a46..b7df74f2 100644
--- a/sigscript/MapTrainerWrapper.cpp
+++ b/sigscript/MapTrainerWrapper.cpp
@@ -25,9 +25,10 @@
Sigscript::MapTrainerWrapper* Sigscript::MapTrainerWrapper::create(const Sigmod::MapTrainer* trainer, MapWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, trainer->id())))
- m_instances[Signature(parent, trainer->id())] = new MapTrainerWrapper(trainer, parent);
- return qobject_cast<MapTrainerWrapper*>(m_instances[Signature(parent, trainer->id())]);
+ Signature sig = Signature(parent, Subsignature(trainer->className(), trainer->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapTrainerWrapper(trainer, parent);
+ return qobject_cast<MapTrainerWrapper*>(m_instances[sig]);
}
Sigscript::MapTrainerWrapper::MapTrainerWrapper(const Sigmod::MapTrainer* trainer, MapWrapper* parent) :
diff --git a/sigscript/MapWarpWrapper.cpp b/sigscript/MapWarpWrapper.cpp
index d09646cf..63e3a53e 100644
--- a/sigscript/MapWarpWrapper.cpp
+++ b/sigscript/MapWarpWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::MapWarpWrapper* Sigscript::MapWarpWrapper::create(const Sigmod::MapWarp* warp, MapWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, warp->id())))
- m_instances[Signature(parent, warp->id())] = new MapWarpWrapper(warp, parent);
- return qobject_cast<MapWarpWrapper*>(m_instances[Signature(parent, warp->id())]);
+ Signature sig = Signature(parent, Subsignature(warp->className(), warp->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapWarpWrapper(warp, parent);
+ return qobject_cast<MapWarpWrapper*>(m_instances[sig]);
}
Sigscript::MapWarpWrapper::MapWarpWrapper(const Sigmod::MapWarp* warp, MapWrapper* parent) :
diff --git a/sigscript/MapWildListEncounterWrapper.cpp b/sigscript/MapWildListEncounterWrapper.cpp
index 3fd49c9c..1d2b7904 100644
--- a/sigscript/MapWildListEncounterWrapper.cpp
+++ b/sigscript/MapWildListEncounterWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::MapWildListEncounterWrapper* Sigscript::MapWildListEncounterWrapper::create(const Sigmod::MapWildListEncounter* encounter, MapWildListWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, encounter->id())))
- m_instances[Signature(parent, encounter->id())] = new MapWildListEncounterWrapper(encounter, parent);
- return qobject_cast<MapWildListEncounterWrapper*>(m_instances[Signature(parent, encounter->id())]);
+ Signature sig = Signature(parent, Subsignature(encounter->className(), encounter->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapWildListEncounterWrapper(encounter, parent);
+ return qobject_cast<MapWildListEncounterWrapper*>(m_instances[sig]);
}
Sigscript::MapWildListEncounterWrapper::MapWildListEncounterWrapper(const Sigmod::MapWildListEncounter* encounter, MapWildListWrapper* parent) :
diff --git a/sigscript/MapWildListWrapper.cpp b/sigscript/MapWildListWrapper.cpp
index 2271e60f..29484d88 100644
--- a/sigscript/MapWildListWrapper.cpp
+++ b/sigscript/MapWildListWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::MapWildListWrapper* Sigscript::MapWildListWrapper::create(const Sigmod::MapWildList* wildList, MapWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, wildList->id())))
- m_instances[Signature(parent, wildList->id())] = new MapWildListWrapper(wildList, parent);
- return qobject_cast<MapWildListWrapper*>(m_instances[Signature(parent, wildList->id())]);
+ Signature sig = Signature(parent, Subsignature(wildList->className(), wildList->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapWildListWrapper(wildList, parent);
+ return qobject_cast<MapWildListWrapper*>(m_instances[sig]);
}
Sigscript::MapWildListWrapper::MapWildListWrapper(const Sigmod::MapWildList* wildList, MapWrapper* parent) :
diff --git a/sigscript/MapWrapper.cpp b/sigscript/MapWrapper.cpp
index d3f32823..09167f68 100644
--- a/sigscript/MapWrapper.cpp
+++ b/sigscript/MapWrapper.cpp
@@ -27,9 +27,10 @@
Sigscript::MapWrapper* Sigscript::MapWrapper::create(const Sigmod::Map* map, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, map->id())))
- m_instances[Signature(parent, map->id())] = new MapWrapper(map, parent);
- return qobject_cast<MapWrapper*>(m_instances[Signature(parent, map->id())]);
+ Signature sig = Signature(parent, Subsignature(map->className(), map->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MapWrapper(map, parent);
+ return qobject_cast<MapWrapper*>(m_instances[sig]);
}
Sigscript::MapWrapper::MapWrapper(const Sigmod::Map* map, SigmodWrapper* parent) :
diff --git a/sigscript/MoveWrapper.cpp b/sigscript/MoveWrapper.cpp
index 60dc2729..1848fc33 100644
--- a/sigscript/MoveWrapper.cpp
+++ b/sigscript/MoveWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::MoveWrapper* Sigscript::MoveWrapper::create(const Sigmod::Move* move, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, move->id())))
- m_instances[Signature(parent, move->id())] = new MoveWrapper(move, parent);
- return qobject_cast<MoveWrapper*>(m_instances[Signature(parent, move->id())]);
+ Signature sig = Signature(parent, Subsignature(move->className(), move->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new MoveWrapper(move, parent);
+ return qobject_cast<MoveWrapper*>(m_instances[sig]);
}
Sigscript::MoveWrapper::MoveWrapper(const Sigmod::Move* move, SigmodWrapper* parent) :
diff --git a/sigscript/NatureWrapper.cpp b/sigscript/NatureWrapper.cpp
index 16e0f772..5c6fe3b7 100644
--- a/sigscript/NatureWrapper.cpp
+++ b/sigscript/NatureWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::NatureWrapper* Sigscript::NatureWrapper::create(const Sigmod::Nature* nature, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, nature->id())))
- m_instances[Signature(parent, nature->id())] = new NatureWrapper(nature, parent);
- return qobject_cast<NatureWrapper*>(m_instances[Signature(parent, nature->id())]);
+ Signature sig = Signature(parent, Subsignature(nature->className(), nature->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new NatureWrapper(nature, parent);
+ return qobject_cast<NatureWrapper*>(m_instances[sig]);
}
Sigscript::NatureWrapper::NatureWrapper(const Sigmod::Nature* nature, SigmodWrapper* parent) :
diff --git a/sigscript/ObjectWrapper.h b/sigscript/ObjectWrapper.h
index 1f1bc5c8..4e9f4050 100644
--- a/sigscript/ObjectWrapper.h
+++ b/sigscript/ObjectWrapper.h
@@ -41,7 +41,8 @@ class SIGSCRIPT_EXPORT ObjectWrapper : public Config
Q_PROPERTY(int id READ id)
public:
- typedef QPair<ObjectWrapper*, int> Signature;
+ typedef QPair<QString, int> Subsignature;
+ typedef QPair<ObjectWrapper*, Subsignature> Signature;
ObjectWrapper(const Sigmod::Object* object, ObjectWrapper* parent);
diff --git a/sigscript/RulesWrapper.cpp b/sigscript/RulesWrapper.cpp
index 662383f3..6355e600 100644
--- a/sigscript/RulesWrapper.cpp
+++ b/sigscript/RulesWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::RulesWrapper* Sigscript::RulesWrapper::create(const Sigmod::Rules* rules, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, rules->id())))
- m_instances[Signature(parent, rules->id())] = new RulesWrapper(rules, parent);
- return qobject_cast<RulesWrapper*>(m_instances[Signature(parent, rules->id())]);
+ Signature sig = Signature(parent, Subsignature(rules->className(), rules->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new RulesWrapper(rules, parent);
+ return qobject_cast<RulesWrapper*>(m_instances[sig]);
}
Sigscript::RulesWrapper::RulesWrapper(const Sigmod::Rules* rules, SigmodWrapper* parent) :
diff --git a/sigscript/SkinWrapper.cpp b/sigscript/SkinWrapper.cpp
index 60c35dc3..f1761812 100644
--- a/sigscript/SkinWrapper.cpp
+++ b/sigscript/SkinWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::SkinWrapper* Sigscript::SkinWrapper::create(const Sigmod::Skin* skin, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, skin->id())))
- m_instances[Signature(parent, skin->id())] = new SkinWrapper(skin, parent);
- return qobject_cast<SkinWrapper*>(m_instances[Signature(parent, skin->id())]);
+ Signature sig = Signature(parent, Subsignature(skin->className(), skin->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SkinWrapper(skin, parent);
+ return qobject_cast<SkinWrapper*>(m_instances[sig]);
}
Sigscript::SkinWrapper::SkinWrapper(const Sigmod::Skin* skin, SigmodWrapper* parent) :
diff --git a/sigscript/SoundWrapper.cpp b/sigscript/SoundWrapper.cpp
index 1ba51567..12c39393 100644
--- a/sigscript/SoundWrapper.cpp
+++ b/sigscript/SoundWrapper.cpp
@@ -30,9 +30,10 @@
Sigscript::SoundWrapper* Sigscript::SoundWrapper::create(const Sigmod::Sound* sound, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, sound->id())))
- m_instances[Signature(parent, sound->id())] = new SoundWrapper(sound, parent);
- return qobject_cast<SoundWrapper*>(m_instances[Signature(parent, sound->id())]);
+ Signature sig = Signature(parent, Subsignature(sound->className(), sound->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SoundWrapper(sound, parent);
+ return qobject_cast<SoundWrapper*>(m_instances[sig]);
}
Sigscript::SoundWrapper::SoundWrapper(const Sigmod::Sound* sound, SigmodWrapper* parent) :
diff --git a/sigscript/SpeciesAbilityWrapper.cpp b/sigscript/SpeciesAbilityWrapper.cpp
index 71cbe8a3..62306f6c 100644
--- a/sigscript/SpeciesAbilityWrapper.cpp
+++ b/sigscript/SpeciesAbilityWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::SpeciesAbilityWrapper* Sigscript::SpeciesAbilityWrapper::create(const Sigmod::SpeciesAbility* ability, SpeciesWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, ability->id())))
- m_instances[Signature(parent, ability->id())] = new SpeciesAbilityWrapper(ability, parent);
- return qobject_cast<SpeciesAbilityWrapper*>(m_instances[Signature(parent, ability->id())]);
+ Signature sig = Signature(parent, Subsignature(ability->className(), ability->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SpeciesAbilityWrapper(ability, parent);
+ return qobject_cast<SpeciesAbilityWrapper*>(m_instances[sig]);
}
Sigscript::SpeciesAbilityWrapper::SpeciesAbilityWrapper(const Sigmod::SpeciesAbility* ability, SpeciesWrapper* parent) :
diff --git a/sigscript/SpeciesItemWrapper.cpp b/sigscript/SpeciesItemWrapper.cpp
index 8a36ee8b..a41f8dc5 100644
--- a/sigscript/SpeciesItemWrapper.cpp
+++ b/sigscript/SpeciesItemWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::SpeciesItemWrapper* Sigscript::SpeciesItemWrapper::create(const Sigmod::SpeciesItem* item, SpeciesWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, item->id())))
- m_instances[Signature(parent, item->id())] = new SpeciesItemWrapper(item, parent);
- return qobject_cast<SpeciesItemWrapper*>(m_instances[Signature(parent, item->id())]);
+ Signature sig = Signature(parent, Subsignature(item->className(), item->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SpeciesItemWrapper(item, parent);
+ return qobject_cast<SpeciesItemWrapper*>(m_instances[sig]);
}
Sigscript::SpeciesItemWrapper::SpeciesItemWrapper(const Sigmod::SpeciesItem* item, SpeciesWrapper* parent) :
diff --git a/sigscript/SpeciesMoveWrapper.cpp b/sigscript/SpeciesMoveWrapper.cpp
index 6e3c0bca..3fc24a1b 100644
--- a/sigscript/SpeciesMoveWrapper.cpp
+++ b/sigscript/SpeciesMoveWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::SpeciesMoveWrapper* Sigscript::SpeciesMoveWrapper::create(const Sigmod::SpeciesMove* move, SpeciesWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, move->id())))
- m_instances[Signature(parent, move->id())] = new SpeciesMoveWrapper(move, parent);
- return qobject_cast<SpeciesMoveWrapper*>(m_instances[Signature(parent, move->id())]);
+ Signature sig = Signature(parent, Subsignature(move->className(), move->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SpeciesMoveWrapper(move, parent);
+ return qobject_cast<SpeciesMoveWrapper*>(m_instances[sig]);
}
Sigscript::SpeciesMoveWrapper::SpeciesMoveWrapper(const Sigmod::SpeciesMove* move, SpeciesWrapper* parent) :
diff --git a/sigscript/SpeciesWrapper.cpp b/sigscript/SpeciesWrapper.cpp
index d79f2e5f..200f1b52 100644
--- a/sigscript/SpeciesWrapper.cpp
+++ b/sigscript/SpeciesWrapper.cpp
@@ -26,9 +26,10 @@
Sigscript::SpeciesWrapper* Sigscript::SpeciesWrapper::create(const Sigmod::Species* species, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, species->id())))
- m_instances[Signature(parent, species->id())] = new SpeciesWrapper(species, parent);
- return qobject_cast<SpeciesWrapper*>(m_instances[Signature(parent, species->id())]);
+ Signature sig = Signature(parent, Subsignature(species->className(), species->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SpeciesWrapper(species, parent);
+ return qobject_cast<SpeciesWrapper*>(m_instances[sig]);
}
Sigscript::SpeciesWrapper::SpeciesWrapper(const Sigmod::Species* species, SigmodWrapper* parent) :
diff --git a/sigscript/SpriteWrapper.cpp b/sigscript/SpriteWrapper.cpp
index 6a1c9614..7cb2074b 100644
--- a/sigscript/SpriteWrapper.cpp
+++ b/sigscript/SpriteWrapper.cpp
@@ -23,15 +23,17 @@
Sigscript::SpriteWrapper* Sigscript::SpriteWrapper::create(const Sigmod::Sprite* sprite, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, sprite->id())))
- m_instances[Signature(parent, sprite->id())] = new SpriteWrapper(sprite, parent);
- return qobject_cast<SpriteWrapper*>(m_instances[Signature(parent, sprite->id())]);
+ Signature sig = Signature(parent, Subsignature(sprite->className(), sprite->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new SpriteWrapper(sprite, parent);
+ return qobject_cast<SpriteWrapper*>(m_instances[sig]);
}
Sigscript::SpriteWrapper::SpriteWrapper(const Sigmod::Sprite* sprite, SigmodWrapper* parent) :
ObjectWrapper(sprite, parent),
m_sprite(sprite)
{
+ m_pixmap.loadFromData(m_sprite->sprite());
}
QString Sigscript::SpriteWrapper::name() const
@@ -41,7 +43,5 @@ QString Sigscript::SpriteWrapper::name() const
QPixmap Sigscript::SpriteWrapper::sprite() const
{
- QPixmap pixmap;
- pixmap.loadFromData(m_sprite->sprite());
- return pixmap;
+ return m_pixmap;
}
diff --git a/sigscript/SpriteWrapper.h b/sigscript/SpriteWrapper.h
index 4451852e..e09bbef9 100644
--- a/sigscript/SpriteWrapper.h
+++ b/sigscript/SpriteWrapper.h
@@ -42,6 +42,7 @@ class SIGSCRIPT_EXPORT SpriteWrapper : public ObjectWrapper
SpriteWrapper(const Sigmod::Sprite* sprite, SigmodWrapper* parent);
SpriteWrapper& operator=(const SpriteWrapper& rhs);
+ QPixmap m_pixmap;
const Sigmod::Sprite* m_sprite;
};
}
diff --git a/sigscript/StatusWrapper.cpp b/sigscript/StatusWrapper.cpp
index 5988d0bf..274c3e2b 100644
--- a/sigscript/StatusWrapper.cpp
+++ b/sigscript/StatusWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::StatusWrapper* Sigscript::StatusWrapper::create(const Sigmod::Status* status, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, status->id())))
- m_instances[Signature(parent, status->id())] = new StatusWrapper(status, parent);
- return qobject_cast<StatusWrapper*>(m_instances[Signature(parent, status->id())]);
+ Signature sig = Signature(parent, Subsignature(status->className(), status->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new StatusWrapper(status, parent);
+ return qobject_cast<StatusWrapper*>(m_instances[sig]);
}
Sigscript::StatusWrapper::StatusWrapper(const Sigmod::Status* status, SigmodWrapper* parent) :
diff --git a/sigscript/StoreWrapper.cpp b/sigscript/StoreWrapper.cpp
index cf0af548..e3344419 100644
--- a/sigscript/StoreWrapper.cpp
+++ b/sigscript/StoreWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::StoreWrapper* Sigscript::StoreWrapper::create(const Sigmod::Store* store, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, store->id())))
- m_instances[Signature(parent, store->id())] = new StoreWrapper(store, parent);
- return qobject_cast<StoreWrapper*>(m_instances[Signature(parent, store->id())]);
+ Signature sig = Signature(parent, Subsignature(store->className(), store->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new StoreWrapper(store, parent);
+ return qobject_cast<StoreWrapper*>(m_instances[sig]);
}
Sigscript::StoreWrapper::StoreWrapper(const Sigmod::Store* store, SigmodWrapper* parent) :
diff --git a/sigscript/TileWrapper.cpp b/sigscript/TileWrapper.cpp
index 8417b003..65265d9e 100644
--- a/sigscript/TileWrapper.cpp
+++ b/sigscript/TileWrapper.cpp
@@ -24,9 +24,10 @@
Sigscript::TileWrapper* Sigscript::TileWrapper::create(const Sigmod::Tile* tile, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, tile->id())))
- m_instances[Signature(parent, tile->id())] = new TileWrapper(tile, parent);
- return qobject_cast<TileWrapper*>(m_instances[Signature(parent, tile->id())]);
+ Signature sig = Signature(parent, Subsignature(tile->className(), tile->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new TileWrapper(tile, parent);
+ return qobject_cast<TileWrapper*>(m_instances[sig]);
}
Sigscript::TileWrapper::TileWrapper(const Sigmod::Tile* tile, SigmodWrapper* parent) :
diff --git a/sigscript/TimeWrapper.cpp b/sigscript/TimeWrapper.cpp
index 24b5b533..36d64237 100644
--- a/sigscript/TimeWrapper.cpp
+++ b/sigscript/TimeWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::TimeWrapper* Sigscript::TimeWrapper::create(const Sigmod::Time* time, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, time->id())))
- m_instances[Signature(parent, time->id())] = new TimeWrapper(time, parent);
- return qobject_cast<TimeWrapper*>(m_instances[Signature(parent, time->id())]);
+ Signature sig = Signature(parent, Subsignature(time->className(), time->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new TimeWrapper(time, parent);
+ return qobject_cast<TimeWrapper*>(m_instances[sig]);
}
Sigscript::TimeWrapper::TimeWrapper(const Sigmod::Time* time, SigmodWrapper* parent) :
diff --git a/sigscript/TrainerWrapper.cpp b/sigscript/TrainerWrapper.cpp
index 47f27505..34751aa7 100644
--- a/sigscript/TrainerWrapper.cpp
+++ b/sigscript/TrainerWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::TrainerWrapper* Sigscript::TrainerWrapper::create(const Sigmod::Trainer* trainer, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, trainer->id())))
- m_instances[Signature(parent, trainer->id())] = new TrainerWrapper(trainer, parent);
- return qobject_cast<TrainerWrapper*>(m_instances[Signature(parent, trainer->id())]);
+ Signature sig = Signature(parent, Subsignature(trainer->className(), trainer->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new TrainerWrapper(trainer, parent);
+ return qobject_cast<TrainerWrapper*>(m_instances[sig]);
}
Sigscript::TrainerWrapper::TrainerWrapper(const Sigmod::Trainer* trainer, SigmodWrapper* parent) :
diff --git a/sigscript/TypeWrapper.cpp b/sigscript/TypeWrapper.cpp
index 50849ab3..3597ce47 100644
--- a/sigscript/TypeWrapper.cpp
+++ b/sigscript/TypeWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::TypeWrapper* Sigscript::TypeWrapper::create(const Sigmod::Type* type, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, type->id())))
- m_instances[Signature(parent, type->id())] = new TypeWrapper(type, parent);
- return qobject_cast<TypeWrapper*>(m_instances[Signature(parent, type->id())]);
+ Signature sig = Signature(parent, Subsignature(type->className(), type->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new TypeWrapper(type, parent);
+ return qobject_cast<TypeWrapper*>(m_instances[sig]);
}
Sigscript::TypeWrapper::TypeWrapper(const Sigmod::Type* type, SigmodWrapper* parent) :
diff --git a/sigscript/WeatherWrapper.cpp b/sigscript/WeatherWrapper.cpp
index 3473572c..58bc2910 100644
--- a/sigscript/WeatherWrapper.cpp
+++ b/sigscript/WeatherWrapper.cpp
@@ -23,9 +23,10 @@
Sigscript::WeatherWrapper* Sigscript::WeatherWrapper::create(const Sigmod::Weather* weather, SigmodWrapper* parent)
{
- if (!m_instances.contains(Signature(parent, weather->id())))
- m_instances[Signature(parent, weather->id())] = new WeatherWrapper(weather, parent);
- return qobject_cast<WeatherWrapper*>(m_instances[Signature(parent, weather->id())]);
+ Signature sig = Signature(parent, Subsignature(weather->className(), weather->id()));
+ if (!m_instances.contains(sig))
+ m_instances[sig] = new WeatherWrapper(weather, parent);
+ return qobject_cast<WeatherWrapper*>(m_instances[sig]);
}
Sigscript::WeatherWrapper::WeatherWrapper(const Sigmod::Weather* weather, SigmodWrapper* parent) :