Skip to content

Commit 0db0968

Browse files
committed
refactor(Packet): Add nice CMSG_PET_ACTION
1 parent 8f13838 commit 0db0968

5 files changed

Lines changed: 24 additions & 9 deletions

File tree

src/game/Handlers/PetHandler.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,11 @@
3232
#include "Pet.h"
3333
#include "Group.h"
3434

35-
void WorldSession::HandlePetAction(WorldPacket& recv_data)
35+
void WorldSession::HandlePetAction(WorldPackets::Pet::PetAction const& packet)
3636
{
37-
ObjectGuid petGuid;
38-
uint32 data;
39-
ObjectGuid targetGuid;
40-
recv_data >> petGuid;
41-
recv_data >> data;
42-
recv_data >> targetGuid;
37+
ObjectGuid petGuid = packet.petGuid;
38+
uint32 data = packet.data;
39+
ObjectGuid targetGuid = packet.targetGuid;
4340

4441
uint32 spellid = UNIT_ACTION_BUTTON_ACTION(data);
4542
uint8 flag = UNIT_ACTION_BUTTON_TYPE(data); // delete = 0x07 CastSpell = C1

src/game/Server/Packets/Pet.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,10 @@ void WorldPackets::Pet::QueryPetName::ReadFromWorldPacket(WorldPacket& recv_data
55
recv_data >> petNumber;
66
recv_data >> petGuid;
77
}
8+
9+
void WorldPackets::Pet::PetAction::ReadFromWorldPacket(WorldPacket& recv_data)
10+
{
11+
recv_data >> petGuid;
12+
recv_data >> data;
13+
recv_data >> targetGuid;
14+
}

src/game/Server/Packets/Pet.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@ namespace WorldPackets { namespace Pet
1616
explicit QueryPetName() : ClientPacket(CMSG_PET_NAME_QUERY), petNumber(0) {}
1717
void ReadFromWorldPacket(WorldPacket& recv_data) override;
1818
};
19+
20+
class PetAction final : public ClientPacket
21+
{
22+
public:
23+
ObjectGuid petGuid;
24+
uint32 data;
25+
ObjectGuid targetGuid;
26+
27+
explicit PetAction() : ClientPacket(CMSG_PET_ACTION), data(0) {}
28+
void ReadFromWorldPacket(WorldPacket& recv_data) override;
29+
};
1930
}} // namespace WorldPackets::Pet
2031

2132
#endif // MANGOS_PACKETS_PET_H

src/game/Server/Protocol/Opcodes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ constexpr Handlers BuildOpcodeList()
470470
INVALID_PACKET(SMSG_MOUNTSPECIAL_ANIM, Reason::SendByServer);
471471
INVALID_PACKET(SMSG_PET_TAME_FAILURE, Reason::SendByServer);
472472
LEGACY_HANDLER(CMSG_PET_SET_ACTION, STATUS_LOGGEDIN, PACKET_PROCESS_MAP, &WorldSession::HandlePetSetAction);
473-
LEGACY_HANDLER(CMSG_PET_ACTION, STATUS_LOGGEDIN, PACKET_PROCESS_SPELLS, &WorldSession::HandlePetAction);
473+
DEFINE_HANDLER(CMSG_PET_ACTION, STATUS_LOGGEDIN, PACKET_PROCESS_SPELLS, &WorldSession::HandlePetAction);
474474
LEGACY_HANDLER(CMSG_PET_ABANDON, STATUS_LOGGEDIN, PACKET_PROCESS_MAP, &WorldSession::HandlePetAbandon);
475475
LEGACY_HANDLER(CMSG_PET_RENAME, STATUS_LOGGEDIN, PACKET_PROCESS_MAP, &WorldSession::HandlePetRename);
476476
INVALID_PACKET(SMSG_PET_NAME_INVALID, Reason::SendByServer);

src/game/Server/WorldSession.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ class WorldSession
763763
void HandleTutorialResetOpcode(WorldPacket& recv_data);
764764

765765
//Pet
766-
void HandlePetAction(WorldPacket& recv_data);
766+
void HandlePetAction(WorldPackets::Pet::PetAction const& packet);
767767
void HandlePetStopAttack(WorldPacket& recv_data);
768768
void HandlePetNameQueryOpcode(WorldPackets::Pet::QueryPetName const& packet);
769769
void HandlePetSetAction(WorldPacket& recv_data);

0 commit comments

Comments
 (0)