diff options
author | Jelle Meeus <sogladev@gmail.com> | 2025-09-06 06:28:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-06 10:28:01 -0300 |
commit | d22f015e52cd43f6a57e988356d5693802ddde9f (patch) | |
tree | cc0bdcd10544e6ea4f73fdbcdf7c64f3480b9633 /src | |
parent | 809a06ad0bf15488698fa08f17d9fe8456230928 (diff) |
fix(Core/Player): Haunted Memento aura is present when item is in bank (#22811)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Player/PlayerStorage.cpp | 7 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f9fb147a81..ebb62dbe51 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7067,6 +7067,14 @@ void Player::ApplyItemObtainSpells(Item* item, bool apply) } } +void Player::UpdateItemObtainSpells(Item* item, uint8 bag, uint8 slot) +{ + if (IsBankPos(bag, slot)) + ApplyItemObtainSpells(item, false); + else if (bag == INVENTORY_SLOT_BAG_0 || (bag >= INVENTORY_SLOT_BAG_START && bag < INVENTORY_SLOT_BAG_END)) + ApplyItemObtainSpells(item, true); +} + SpellSchoolMask Player::GetMeleeDamageSchoolMask(WeaponAttackType attackType /*= BASE_ATTACK*/, uint8 damageIndex /*= 0*/) const { if (Item const* weapon = GetWeaponForAttack(attackType, true)) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index a79392e7f5..befde718fc 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2208,6 +2208,7 @@ public: void CastAllObtainSpells(); void ApplyItemObtainSpells(Item* item, bool apply); + void UpdateItemObtainSpells(Item* item, uint8 bag, uint8 slot); SpellSchoolMask GetMeleeDamageSchoolMask(WeaponAttackType attackType = BASE_ATTACK, uint8 damageIndex = 0) const override; diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 4836811e26..1423afc984 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -2654,9 +2654,7 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool AddEnchantmentDurations(pItem); AddItemDurations(pItem); - - if (bag == INVENTORY_SLOT_BAG_0 || (bag >= INVENTORY_SLOT_BAG_START && bag < INVENTORY_SLOT_BAG_END)) - ApplyItemObtainSpells(pItem, true); + UpdateItemObtainSpells(pItem, bag, slot); return pItem; } @@ -2694,8 +2692,7 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool pItem2->SetState(ITEM_CHANGED, this); - if (bag == INVENTORY_SLOT_BAG_0 || (bag >= INVENTORY_SLOT_BAG_START && bag < INVENTORY_SLOT_BAG_END)) - ApplyItemObtainSpells(pItem2, true); + UpdateItemObtainSpells(pItem2, bag, slot); return pItem2; } |