summaryrefslogtreecommitdiffstats
path: root/sigencore/TeamMember.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-02-21 18:32:12 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-02-21 18:32:12 -0500
commitba85cc4415a2f8c169ae6fa1aa5ab9c36bab426c (patch)
tree04e406480c4b6c1a143f694b761edb63f51b3703 /sigencore/TeamMember.cpp
parent6867a3d1e63909756b9c6935b5d2d6480fafa42f (diff)
downloadsigen-ba85cc4415a2f8c169ae6fa1aa5ab9c36bab426c.tar.gz
sigen-ba85cc4415a2f8c169ae6fa1aa5ab9c36bab426c.tar.xz
sigen-ba85cc4415a2f8c169ae6fa1aa5ab9c36bab426c.zip
Moved item initialization to completeData()
Diffstat (limited to 'sigencore/TeamMember.cpp')
-rw-r--r--sigencore/TeamMember.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/sigencore/TeamMember.cpp b/sigencore/TeamMember.cpp
index e218ab9e..4639bc09 100644
--- a/sigencore/TeamMember.cpp
+++ b/sigencore/TeamMember.cpp
@@ -701,7 +701,21 @@ void Sigencore::TeamMember::completeData()
Sigcore::Hat<Sigscript::AbilityWrapper*> abilityHat = m_species->abilityHat();
while ((m_abilities.size() < sigmod()->rules()->maxAbilities()) && abilityHat.count())
addAbility(abilityHat.takeAndClear());
- // TODO: Item choosing
+ Sigcore::Hat<Sigscript::ItemWrapper*> itemHat = m_species->itemHat();
+ int i = 0;
+ while ((i < m_sigmod->rules()->maxHeldItems()) && itemHat.count())
+ {
+ if (m_species->itemChance().poll())
+ {
+ Sigscript::ItemWrapper* item = itemHat.pick();
+ if (addItems(item, 1))
+ ++i;
+ else
+ itemHat.setCount(item, 0);
+ }
+ else
+ ++i;
+ }
// TODO: Move choosing
Sigcore::Hat<Sigscript::NatureWrapper*> natureHat = sigmod()->natureHat();
while ((m_natures.size() < m_sigmod->rules()->maxNatures()) && natureHat.count())
@@ -719,17 +733,3 @@ void Sigencore::TeamMember::makeConnections()
connect(this, SIGNAL(statExperienceChanged(Sigmod::Stat, long long)), SLOT(recalcStat(Sigmod::Stat)));
connect(this, SIGNAL(statStageChanged(Sigmod::Stat, int)), SLOT(recalcStat(Sigmod::Stat)));
}
-
-void Sigencore::TeamMember::initItems()
-{
- Sigcore::Hat<Sigscript::ItemWrapper*> hat = m_species->itemHat();
- for (int i = 0; i < sigmod()->rules()->maxHeldItems(); ++i)
- {
- if (m_species->itemChance().poll())
- {
- Sigscript::ItemWrapper* item = hat.pick();
- if (checkWeight(item))
- m_items.append(item);
- }
- }
-}