diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-09-25 22:55:25 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-09-25 22:55:25 +0000 |
| commit | 64730b32e2c595469eb23e9cd40332b4a80e3e27 (patch) | |
| tree | a75a17a7c7ac78e2e323e1cdecef8f6a3939f844 /sigmod/MapTrainerTeamMember.cpp | |
| parent | 4c4fdc8d4540bd1bd52021b502f05f27a8ef98e1 (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.cpp | 24 |
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()); +} |
