aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-02-02 00:08:37 +0100
committerShauren <shauren.trinity@gmail.com>2022-02-02 00:08:37 +0100
commit950db60435e7e513633ff5b22ad7f0ed8b1147e4 (patch)
treecb5b9e47570528dea0374f804f829512c89a5410 /src/server/game/Server
parentd6a2461fc77f156dfe9e62c1c2387815c27e43de (diff)
Core/Pets: Updated pet summoning for latest client version (5 Call Pet spells and stable size 200)
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/NPCPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/NPCPackets.h12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h5
4 files changed, 22 insertions, 4 deletions
diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp
index fc7bd406588..1ddf5378c4e 100644
--- a/src/server/game/Server/Packets/NPCPackets.cpp
+++ b/src/server/game/Server/Packets/NPCPackets.cpp
@@ -224,5 +224,12 @@ void RequestStabledPets::Read()
{
_worldPacket >> StableMaster;
}
+
+void SetPetSlot::Read()
+{
+ _worldPacket >> PetNumber;
+ _worldPacket >> DestSlot;
+ _worldPacket >> StableMaster;
+}
}
}
diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h
index bf16a355b42..320594ffd2f 100644
--- a/src/server/game/Server/Packets/NPCPackets.h
+++ b/src/server/game/Server/Packets/NPCPackets.h
@@ -264,6 +264,18 @@ namespace WorldPackets
ObjectGuid StableMaster;
};
+
+ class SetPetSlot final : public ClientPacket
+ {
+ public:
+ SetPetSlot(WorldPacket&& packet) : ClientPacket(CMSG_SET_PET_SLOT, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid StableMaster;
+ uint32 PetNumber = 0;
+ uint8 DestSlot = 0;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 22b2b2bef06..6be93de627c 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -808,7 +808,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_SET_LOOT_SPECIALIZATION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetLootSpecialization);
DEFINE_HANDLER(CMSG_SET_PARTY_ASSIGNMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPartyAssignment);
DEFINE_HANDLER(CMSG_SET_PARTY_LEADER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetPartyLeaderOpcode);
- DEFINE_HANDLER(CMSG_SET_PET_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_SET_PET_SLOT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetPetSlot);
DEFINE_HANDLER(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames);
DEFINE_HANDLER(CMSG_SET_PREFERRED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SET_PVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPvP);
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index ace0b3931bb..3e71131fff0 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -547,6 +547,7 @@ namespace WorldPackets
class SpiritHealerActivate;
class TrainerBuySpell;
class RequestStabledPets;
+ class SetPetSlot;
}
namespace Party
@@ -1403,9 +1404,7 @@ class TC_GAME_API WorldSession
void HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText& packet);
void HandleBinderActivateOpcode(WorldPackets::NPC::Hello& packet);
void HandleRequestStabledPets(WorldPackets::NPC::RequestStabledPets& packet);
- void HandleStablePet(WorldPacket& recvPacket);
- void HandleUnstablePet(WorldPacket& recvPacket);
- void HandleStableSwapPet(WorldPacket& recvPacket);
+ void HandleSetPetSlot(WorldPackets::NPC::SetPetSlot& setPetSlot);
void HandleCanDuel(WorldPackets::Duel::CanDuel& packet);
void HandleDuelResponseOpcode(WorldPackets::Duel::DuelResponse& duelResponse);