aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp11
-rw-r--r--src/server/game/Server/Packets/NPCPackets.cpp5
-rw-r--r--src/server/game/Server/Packets/NPCPackets.h10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
-rw-r--r--src/server/game/Server/WorldSession.h3
5 files changed, 21 insertions, 10 deletions
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index e514a1c2767..570e5b4ce48 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -465,14 +465,9 @@ void WorldSession::SendBindPoint(Creature* npc)
_player->PlayerTalkClass->SendCloseGossip();
}
-void WorldSession::HandleListStabledPetsOpcode(WorldPacket& recvData)
+void WorldSession::HandleRequestStabledPets(WorldPackets::NPC::RequestStabledPets& packet)
{
- TC_LOG_DEBUG("network", "WORLD: Recv MSG_LIST_STABLED_PETS");
- ObjectGuid npcGUID;
-
- recvData >> npcGUID;
-
- if (!CheckStableMaster(npcGUID))
+ if (!CheckStableMaster(packet.StableMaster))
return;
// remove fake death
@@ -483,7 +478,7 @@ void WorldSession::HandleListStabledPetsOpcode(WorldPacket& recvData)
if (GetPlayer()->IsMounted())
GetPlayer()->RemoveAurasByType(SPELL_AURA_MOUNTED);
- SendStablePet(npcGUID);
+ SendStablePet(packet.StableMaster);
}
void WorldSession::SendStablePet(ObjectGuid guid)
diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp
index 710a6df42d2..9e8090b03b2 100644
--- a/src/server/game/Server/Packets/NPCPackets.cpp
+++ b/src/server/game/Server/Packets/NPCPackets.cpp
@@ -191,3 +191,8 @@ WorldPacket const* WorldPackets::NPC::TrainerBuyFailed::Write()
return &_worldPacket;
}
+
+void WorldPackets::NPC::RequestStabledPets::Read()
+{
+ _worldPacket >> StableMaster;
+}
diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h
index d20f78f3bf2..28444e87e75 100644
--- a/src/server/game/Server/Packets/NPCPackets.h
+++ b/src/server/game/Server/Packets/NPCPackets.h
@@ -240,6 +240,16 @@ namespace WorldPackets
int32 SpellID = 0;
int32 TrainerFailedReason = 0;
};
+
+ class RequestStabledPets final : public ClientPacket
+ {
+ public:
+ RequestStabledPets(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_STABLED_PETS, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid StableMaster;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 26bc817ba80..1cc7e63a25c 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -643,7 +643,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_REQUEST_RAID_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::RequestRaidInfo, &WorldSession::HandleRequestRaidInfoOpcode);
DEFINE_HANDLER(CMSG_REQUEST_RATED_BATTLEFIELD_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::RequestRatedBattlefieldInfo, &WorldSession::HandleRequestRatedBattlefieldInfo);
DEFINE_HANDLER(CMSG_REQUEST_RESEARCH_HISTORY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode );
+ DEFINE_HANDLER(CMSG_REQUEST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::RequestStabledPets, &WorldSession::HandleRequestStabledPets);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehicleExit, &WorldSession::HandleRequestVehicleExit);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehicleNextSeat, &WorldSession::HandleRequestVehicleNextSeat);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Vehicle::RequestVehiclePrevSeat, &WorldSession::HandleRequestVehiclePrevSeat);
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index f91193decc7..869c2b7304f 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -436,6 +436,7 @@ namespace WorldPackets
class GossipSelectOption;
class SpiritHealerActivate;
class TrainerBuySpell;
+ class RequestStabledPets;
}
namespace Party
@@ -1296,7 +1297,7 @@ class WorldSession
void HandleSpiritHealerActivate(WorldPackets::NPC::SpiritHealerActivate& packet);
void HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText& packet);
void HandleBinderActivateOpcode(WorldPackets::NPC::Hello& packet);
- void HandleListStabledPetsOpcode(WorldPacket& recvPacket);
+ void HandleRequestStabledPets(WorldPackets::NPC::RequestStabledPets& packet);
void HandleStablePet(WorldPacket& recvPacket);
void HandleStablePetCallback(PreparedQueryResult result);
void HandleUnstablePet(WorldPacket& recvPacket);