summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorJelle Meeus <sogladev@gmail.com>2025-09-06 06:28:01 -0700
committerGitHub <noreply@github.com>2025-09-06 10:28:01 -0300
commitd22f015e52cd43f6a57e988356d5693802ddde9f (patch)
treecc0bdcd10544e6ea4f73fdbcdf7c64f3480b9633 /src/server
parent809a06ad0bf15488698fa08f17d9fe8456230928 (diff)
fix(Core/Player): Haunted Memento aura is present when item is in bank (#22811)
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Entities/Player/Player.cpp8
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Entities/Player/PlayerStorage.cpp7
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;
}