Core/Packets: update & enabled CMSG_EMOTE

Documentation Used:
- Thank you @MitchesD for providing some extra information, much appreciated.

Core/Packets: Fix CMSG_EMOTE opcode handler

Documentation used:
- Thanks thumsoul from TC IRC for providing extra information.
This commit is contained in:
DJScias
2015-03-10 17:47:34 +01:00
parent 47517b2128
commit 7b9ec7101c
6 changed files with 22 additions and 8 deletions
+3 -5
View File
@@ -524,15 +524,13 @@ void WorldSession::HandleChatMessageDNDOpcode(WorldPackets::Chat::ChatMessageDND
sScriptMgr->OnPlayerChat(sender, CHAT_MSG_DND, LANG_UNIVERSAL, packet.Text);
}
void WorldSession::HandleEmoteOpcode(WorldPacket& recvData)
void WorldSession::HandleEmoteOpcode(WorldPackets::Chat::EmoteClient& packet)
{
if (!GetPlayer()->IsAlive() || GetPlayer()->HasUnitState(UNIT_STATE_DIED))
return;
uint32 emote;
recvData >> emote;
sScriptMgr->OnPlayerEmote(GetPlayer(), emote);
GetPlayer()->HandleEmoteCommand(emote);
sScriptMgr->OnPlayerEmote(GetPlayer(), packet.EmoteID);
GetPlayer()->HandleEmoteCommand(packet.EmoteID);
}
void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet)
@@ -196,3 +196,8 @@ WorldPacket const* WorldPackets::Chat::PrintNotification::Write()
_worldPacket.WriteString(NotifyText);
return &_worldPacket;
}
void WorldPackets::Chat::EmoteClient::Read()
{
_worldPacket >> EmoteID;
}
@@ -207,6 +207,16 @@ namespace WorldPackets
std::string NotifyText;
};
class EmoteClient final : public ClientPacket
{
public:
EmoteClient(WorldPacket&& packet) : ClientPacket(CMSG_EMOTE, std::move(packet)) { }
void Read() override;
uint32 EmoteID = 0;
};
}
}
+1 -1
View File
@@ -345,7 +345,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_DO_READY_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckOpcode );
DEFINE_HANDLER(CMSG_DUEL_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Duel::DuelResponse, &WorldSession::HandleDuelResponseOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_EJECT_PASSENGER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_EMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEmoteOpcode );
DEFINE_HANDLER(CMSG_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::EmoteClient, &WorldSession::HandleEmoteOpcode);
DEFINE_HANDLER(CMSG_ENABLE_NAGLE, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPacket, &WorldSession::Handle_EarlyProccess);
DEFINE_OPCODE_HANDLER_OLD(CMSG_ENABLE_TAXI_NODE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
DEFINE_HANDLER(CMSG_EQUIPMENT_SET_SAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::EquipmentSet::SaveEquipmentSet, &WorldSession::HandleEquipmentSetSave);
+1 -1
View File
@@ -249,7 +249,7 @@ enum OpcodeClient : uint32
CMSG_DO_READY_CHECK = 0xBADD,
CMSG_DUEL_RESPONSE = 0x01A1,
CMSG_EJECT_PASSENGER = 0xBADD,
CMSG_EMOTE = 0xBADD,
CMSG_EMOTE = 0x0B2B,
CMSG_ENABLE_NAGLE = 0xBADD,
CMSG_ENABLE_TAXI_NODE = 0xBADD,
CMSG_EQUIPMENT_SET_SAVE = 0x0A7C,
+2 -1
View File
@@ -149,6 +149,7 @@ namespace WorldPackets
class ChatMessageDND;
class ChatMessageEmote;
class CTextEmote;
class EmoteClient;
}
namespace Combat
@@ -854,7 +855,7 @@ class WorldSession
void HandleZoneUpdateOpcode(WorldPacket& recvPacket);
void HandleSetSelectionOpcode(WorldPackets::Misc::SetSelection& packet);
void HandleStandStateChangeOpcode(WorldPackets::Misc::StandStateChange& packet);
void HandleEmoteOpcode(WorldPacket& recvPacket);
void HandleEmoteOpcode(WorldPackets::Chat::EmoteClient& packet);
// Social
void HandleContactListOpcode(WorldPackets::Social::SendContactList& packet);