aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-24 11:17:03 -0500
committermegamage <none@none>2009-05-24 11:17:03 -0500
commit2fadf3dd77ae4814e7e8c40d4f9d61564f10139b (patch)
tree06d2e0949ef39b942a3b2359685ae5fc993f5ea4
parent35f08f9e21f063f8490ef3e5e714ec7f49af8007 (diff)
Fixed bank bag slot amount achievement statistic. Cleanup related code. Author: VladimirMangos
--HG-- branch : trunk
-rw-r--r--src/game/AchievementMgr.cpp2
-rw-r--r--src/game/ItemHandler.cpp4
-rw-r--r--src/game/Player.cpp28
-rw-r--r--src/game/Player.h3
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;