summaryrefslogtreecommitdiffstats
path: root/sigmod/MapTrainerTeamMember.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-09-25 22:55:25 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-09-25 22:55:25 +0000
commit64730b32e2c595469eb23e9cd40332b4a80e3e27 (patch)
treea75a17a7c7ac78e2e323e1cdecef8f6a3939f844 /sigmod/MapTrainerTeamMember.cpp
parent4c4fdc8d4540bd1bd52021b502f05f27a8ef98e1 (diff)
[FIX] Removed *_End defines
[FIX] Added weights to items and associated fields [FIX] Option for pausing during ATB battles when choosing moves added git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@267 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'sigmod/MapTrainerTeamMember.cpp')
-rw-r--r--sigmod/MapTrainerTeamMember.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/sigmod/MapTrainerTeamMember.cpp b/sigmod/MapTrainerTeamMember.cpp
index beab6d54..595277df 100644
--- a/sigmod/MapTrainerTeamMember.cpp
+++ b/sigmod/MapTrainerTeamMember.cpp
@@ -144,8 +144,13 @@ void Sigmod::MapTrainerTeamMember::setItem(const int item, const bool state)
{
if (m_item.size() < qobject_cast<const Sigmod*>(sigmod())->rules()->maxHeldItems())
{
- m_item.append(item);
- emit(changed());
+ if (checkWeight(item))
+ {
+ m_item.append(item);
+ emit(changed());
+ }
+ else
+ emit(error("Cannot carry that much weight"));
}
else
emit(error("Cannot hold any more items"));
@@ -271,3 +276,18 @@ Sigmod::MapTrainerTeamMember& Sigmod::MapTrainerTeamMember::operator=(const MapT
COPY(nature);
return *this;
}
+
+bool Sigmod::MapTrainerTeamMember::checkWeight(const int item)
+{
+ const int speciesIndex = qobject_cast<const Sigmod*>(sigmod())->speciesIndex(m_species);
+ if (speciesIndex == INT_MAX)
+ return true;
+ int totalWeight = qobject_cast<const Sigmod*>(sigmod())->itemById(item)->weight();
+ foreach (int item, m_item)
+ {
+ const int itemIndex = qobject_cast<const Sigmod*>(sigmod())->itemIndex(item);
+ if (itemIndex != INT_MAX)
+ totalWeight += qobject_cast<const Sigmod*>(sigmod())->item(itemIndex)->weight();
+ }
+ return (totalWeight <= qobject_cast<const Sigmod*>(sigmod())->species(speciesIndex)->maxHoldWeight());
+}