aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2022-09-17 23:54:43 +0200
committerShauren <shauren.trinity@gmail.com>2022-09-18 23:52:17 +0200
commite15898bf560fc8159777a2a29a29d6a91ffdb590 (patch)
treee31bf3f89b4d6809da3b5693645af5b84ed6e5fc
parentcbf2064c62137d9f0c0397956592f3ab9700480c (diff)
Core/Player: Allow companion action buttons to be saved
-rw-r--r--src/server/game/Entities/Player/Player.cpp10
-rw-r--r--src/server/game/Entities/Player/Player.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index e38e45e80a8..9103ac5561b 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -6054,6 +6054,16 @@ bool Player::IsActionButtonDataValid(uint8 button, uint32 action, uint8 type) co
return false;
}
break;
+ case ACTION_BUTTON_COMPANION:
+ {
+ if (!GetSession()->GetBattlePetMgr()->GetPet(ObjectGuid::Create<HighGuid::BattlePet>(action)))
+ {
+ TC_LOG_ERROR("entities.player", "Player::IsActionButtonDataValid: Companion action %u not added into button %u for player %s (%s): companion does not exist",
+ action, button, GetName().c_str(), GetGUID().ToString().c_str());
+ return false;
+ }
+ break;
+ }
case ACTION_BUTTON_MOUNT:
{
auto mount = sDB2Manager.GetMountById(action);
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index d1b716bba3f..f3b6e250726 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -312,6 +312,7 @@ enum ActionButtonType
ACTION_BUTTON_DROPDOWN = 0x30,
ACTION_BUTTON_MACRO = 0x40,
ACTION_BUTTON_CMACRO = ACTION_BUTTON_C | ACTION_BUTTON_MACRO,
+ ACTION_BUTTON_COMPANION = 0x50,
ACTION_BUTTON_MOUNT = 0x60,
ACTION_BUTTON_ITEM = 0x80
};