From 7e56f3f1fcd690f1c55f9b06ddcaf1fbd37d53f0 Mon Sep 17 00:00:00 2001 From: Yehonal Date: Sat, 19 Nov 2016 00:18:44 +0100 Subject: Implemented hook for Player::MoveItemFromInventory --- src/game/Entities/Player/Player.cpp | 2 ++ src/game/Scripting/ScriptMgr.cpp | 5 +++++ src/game/Scripting/ScriptMgr.h | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/game/Entities/Player/Player.cpp b/src/game/Entities/Player/Player.cpp index 81efbb048d..06d293073b 100644 --- a/src/game/Entities/Player/Player.cpp +++ b/src/game/Entities/Player/Player.cpp @@ -12820,6 +12820,8 @@ void Player::MoveItemFromInventory(uint8 bag, uint8 slot, bool update) it->RemoveFromWorld(); it->DestroyForPlayer(this); } + + sScriptMgr->OnAfterPlayerMoveItemFromInventory(this,it,bag,slot,update); } } diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 730ce93aa6..d717649c61 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1328,6 +1328,11 @@ void ScriptMgr::OnAfterPlayerSetVisibleItemSlot(Player* player, uint8 slot, Item FOREACH_SCRIPT(PlayerScript)->OnAfterSetVisibleItemSlot(player, slot,item); } +void ScriptMgr::OnAfterPlayerMoveItemFromInventory(Player* player, Item* it, uint8 bag, uint8 slot, bool update) +{ + FOREACH_SCRIPT(PlayerScript)->OnAfterMoveItemFromInventory(player, it, bag, slot, update); +} + // Guild void ScriptMgr::OnGuildAddMember(Guild* guild, Player* player, uint8& plRank) { diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index 98eb5e9fe7..0059fb4dd6 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -788,6 +788,9 @@ class PlayerScript : public ScriptObject // To change behaviour of set visible item slot virtual void OnAfterSetVisibleItemSlot(Player* /*player*/, uint8 /*slot*/, Item* /*item*/) { } + + // After an item has been moved from inventory + virtual void OnAfterMoveItemFromInventory(Player* /*player*/, Item* /*it*/,uint8 /*bag*/, uint8 /*slot*/, bool /*update*/) { } }; class GuildScript : public ScriptObject @@ -1084,7 +1087,8 @@ class ScriptMgr void OnGossipSelect(Player* player, uint32 menu_id, uint32 sender, uint32 action); void OnGossipSelectCode(Player* player, uint32 menu_id, uint32 sender, uint32 action, const char* code); void OnPlayerBeingCharmed(Player* player, Unit* charmer, uint32 oldFactionId, uint32 newFactionId); - void OnAfterPlayerSetVisibleItemSlot(Player* player, uint8 /*slot*/, Item *item); + void OnAfterPlayerSetVisibleItemSlot(Player* player, uint8 slot, Item *item); + void OnAfterPlayerMoveItemFromInventory(Player* player, Item* it, uint8 bag, uint8 slot, bool update); public: /* GuildScript */ -- cgit v1.2.3