aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp17
-rw-r--r--src/server/game/Entities/Player/Player.h4
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp4
-rw-r--r--src/server/game/Server/Packets/ChannelPackets.cpp2
4 files changed, 18 insertions, 9 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d2013c588bf..fadf944b8b4 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -1127,9 +1127,16 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
LearnDefaultSkills();
LearnCustomSpells();
- // original action bar
+ // Original action bar. Do not use Player::AddActionButton because we do not have skill spells loaded at this time
+ // but checks will still be performed later when loading character from db in Player::_LoadActions
for (PlayerCreateInfoActions::const_iterator action_itr = info->action.begin(); action_itr != info->action.end(); ++action_itr)
- addActionButton(action_itr->button, action_itr->action, action_itr->type);
+ {
+ // create new button
+ ActionButton& ab = m_actionButtons[action_itr->button];
+
+ // set data
+ ab.SetActionAndType(action_itr->action, ActionButtonType(action_itr->type));
+ }
// original items
if (CharStartOutfitEntry const* oEntry = GetCharStartOutfitEntry(createInfo->Race, createInfo->Class, createInfo->Sex))
@@ -6349,7 +6356,7 @@ bool Player::IsActionButtonDataValid(uint8 button, uint32 action, uint8 type)
return true;
}
-ActionButton* Player::addActionButton(uint8 button, uint32 action, uint8 type)
+ActionButton* Player::AddActionButton(uint8 button, uint32 action, uint8 type)
{
if (!IsActionButtonDataValid(button, action, type))
return NULL;
@@ -6364,7 +6371,7 @@ ActionButton* Player::addActionButton(uint8 button, uint32 action, uint8 type)
return &ab;
}
-void Player::removeActionButton(uint8 button)
+void Player::RemoveActionButton(uint8 button)
{
ActionButtonList::iterator buttonItr = m_actionButtons.find(button);
if (buttonItr == m_actionButtons.end() || buttonItr->second.uState == ACTIONBUTTON_DELETED)
@@ -17434,7 +17441,7 @@ void Player::_LoadActions(PreparedQueryResult result)
uint32 action = fields[1].GetUInt32();
uint8 type = fields[2].GetUInt8();
- if (ActionButton* ab = addActionButton(button, action, type))
+ if (ActionButton* ab = AddActionButton(button, action, type))
ab->uState = ACTIONBUTTON_UNCHANGED;
else
{
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 31a145a7147..1c76e594236 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1942,8 +1942,8 @@ class Player : public Unit, public GridObject<Player>
uint8 getCinematic() { return m_cinematic; }
void setCinematic(uint8 cine) { m_cinematic = cine; }
- ActionButton* addActionButton(uint8 button, uint32 action, uint8 type);
- void removeActionButton(uint8 button);
+ ActionButton* AddActionButton(uint8 button, uint32 action, uint8 type);
+ void RemoveActionButton(uint8 button);
ActionButton const* GetActionButton(uint8 button);
void SendInitialActionButtons() const { SendActionButtons(0); }
void SendActionButtons(uint32 state) const;
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 1d5107b6b67..1bdb0fd703e 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -1061,9 +1061,9 @@ void WorldSession::HandleSetActionButtonOpcode(WorldPackets::Spells::SetActionBu
TC_LOG_DEBUG("network", "CMSG_SET_ACTION_BUTTON Button: %u Action: %u Type: %u", packet.Index, action, type);
if (!packet.Action)
- GetPlayer()->removeActionButton(packet.Index);
+ GetPlayer()->RemoveActionButton(packet.Index);
else
- GetPlayer()->addActionButton(packet.Index, action, type);
+ GetPlayer()->AddActionButton(packet.Index, action, type);
}
void WorldSession::HandleCompleteCinematic(WorldPacket& /*recvData*/)
diff --git a/src/server/game/Server/Packets/ChannelPackets.cpp b/src/server/game/Server/Packets/ChannelPackets.cpp
index 9bcb10948d5..92226981df6 100644
--- a/src/server/game/Server/Packets/ChannelPackets.cpp
+++ b/src/server/game/Server/Packets/ChannelPackets.cpp
@@ -127,6 +127,8 @@ void WorldPackets::Channel::ChannelPlayerCommand::Read()
Name = _worldPacket.ReadString(nameLength);
break;
}
+ default:
+ break;
}
}