diff options
author | megamage <none@none> | 2009-05-24 11:17:03 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-24 11:17:03 -0500 |
commit | 2fadf3dd77ae4814e7e8c40d4f9d61564f10139b (patch) | |
tree | 06d2e0949ef39b942a3b2359685ae5fc993f5ea4 /src | |
parent | 35f08f9e21f063f8490ef3e5e714ec7f49af8007 (diff) |
Fixed bank bag slot amount achievement statistic. Cleanup related code. Author: VladimirMangos
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/AchievementMgr.cpp | 2 | ||||
-rw-r--r-- | src/game/ItemHandler.cpp | 4 | ||||
-rw-r--r-- | src/game/Player.cpp | 28 | ||||
-rw-r--r-- | src/game/Player.h | 3 |
4 files changed, 15 insertions, 22 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 84ae9cb659e..9cafe6b835c 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -961,7 +961,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui break; } case ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT: - SetCriteriaProgress(achievementCriteria, GetPlayer()->GetByteValue(PLAYER_BYTES_2, 2)+1); + SetCriteriaProgress(achievementCriteria, GetPlayer()->GetBankBagSlotCount()); break; case ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION: { diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp index 774a6eb8287..3be61c80ea2 100644 --- a/src/game/ItemHandler.cpp +++ b/src/game/ItemHandler.cpp @@ -844,7 +844,7 @@ void WorldSession::HandleBuyBankSlotOpcode(WorldPacket& recvPacket) return; } - uint32 slot = _player->GetByteValue(PLAYER_BYTES_2, 2); + uint32 slot = _player->GetBankBagSlotCount(); // next slot ++slot; @@ -862,7 +862,7 @@ void WorldSession::HandleBuyBankSlotOpcode(WorldPacket& recvPacket) return; _player->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT, slot); - _player->SetByteValue(PLAYER_BYTES_2, 2, slot); + _player->SetBankBagSlotCount(slot); _player->ModifyMoney(-int32(price)); } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index e63b3ab8ff0..b73a49fb990 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -8626,14 +8626,6 @@ uint8 Player::GetAttackBySlot( uint8 slot ) } } -bool Player::HasBankBagSlot( uint8 slot ) const -{ - uint32 maxslot = GetByteValue(PLAYER_BYTES_2, 2) + BANK_SLOT_BAG_START; - if( slot < maxslot ) - return true; - return false; -} - bool Player::IsInventoryPos( uint8 bag, uint8 slot ) { if( bag == INVENTORY_SLOT_BAG_0 && slot == NULL_SLOT ) @@ -10022,44 +10014,44 @@ uint8 Player::CanUnequipItem( uint16 pos, bool swap ) const uint8 Player::CanBankItem( uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *pItem, bool swap, bool not_loading ) const { - if( !pItem ) + if (!pItem) return swap ? EQUIP_ERR_ITEMS_CANT_BE_SWAPPED : EQUIP_ERR_ITEM_NOT_FOUND; uint32 count = pItem->GetCount(); sLog.outDebug( "STORAGE: CanBankItem bag = %u, slot = %u, item = %u, count = %u", bag, slot, pItem->GetEntry(), pItem->GetCount()); ItemPrototype const *pProto = pItem->GetProto(); - if( !pProto ) + if (!pProto) return swap ? EQUIP_ERR_ITEMS_CANT_BE_SWAPPED : EQUIP_ERR_ITEM_NOT_FOUND; - if( pItem->IsBindedNotWith(GetGUID()) ) + if (pItem->IsBindedNotWith(GetGUID())) return EQUIP_ERR_DONT_OWN_THAT_ITEM; // check count of items (skip for auto move for same player from bank) uint8 res = CanTakeMoreSimilarItems(pItem); - if(res != EQUIP_ERR_OK) + if (res != EQUIP_ERR_OK) return res; // in specific slot - if( bag != NULL_BAG && slot != NULL_SLOT ) + if (bag != NULL_BAG && slot != NULL_SLOT) { - if( slot >= BANK_SLOT_BAG_START && slot < BANK_SLOT_BAG_END ) + if (slot >= BANK_SLOT_BAG_START && slot < BANK_SLOT_BAG_END) { if (!pItem->IsBag()) return EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT; - if( !HasBankBagSlot( slot ) ) + if (slot - BANK_SLOT_BAG_START >= GetBankBagSlotCount()) return EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT; - if( uint8 cantuse = CanUseItem( pItem, not_loading ) != EQUIP_ERR_OK ) + if (uint8 cantuse = CanUseItem( pItem, not_loading ) != EQUIP_ERR_OK) return cantuse; } res = _CanStoreItem_InSpecificSlot(bag,slot,dest,pProto,count,swap,pItem); - if(res!=EQUIP_ERR_OK) + if (res!=EQUIP_ERR_OK) return res; - if(count==0) + if (count==0) return EQUIP_ERR_OK; } diff --git a/src/game/Player.h b/src/game/Player.h index 597d1f67244..b657cce7622 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -962,7 +962,8 @@ class TRINITY_DLL_SPEC Player : public Unit static bool IsBankPos( uint8 bag, uint8 slot ); bool IsValidPos( uint16 pos ) { return IsBankPos(pos >> 8,pos & 255); } bool IsValidPos( uint8 bag, uint8 slot ); - bool HasBankBagSlot( uint8 slot ) const; + uint8 GetBankBagSlotCount() const { return GetByteValue(PLAYER_BYTES_2, 2); } + void SetBankBagSlotCount(uint8 count) { SetByteValue(PLAYER_BYTES_2, 2, count); } bool HasItemCount( uint32 item, uint32 count, bool inBankAlso = false ) const; bool HasItemFitToSpellReqirements(SpellEntry const* spellInfo, Item const* ignoreItem = NULL); bool CanNoReagentCast(SpellEntry const* spellInfo) const; |