Core/Packets: converted SMSG_PET_ADDED to packet class

This commit is contained in:
Ovahlord committed 2022-12-11 20:43:26 +01:00
1 parent 9455b09518
commit d18768d4e0
3 files changed
+36 -10

No files matched your search

+8 -10
View File
@@ -26,6 +26,7 @@
#include "ObjectMgr.h"
#include "Opcodes.h"
#include "Pet.h"
#include "PetPackets.h"
#include "PetAI.h"
#include "Player.h"
#include "Spell.h"
@@ -957,17 +958,14 @@ void WorldSession::SendPetSlotUpdated(int32 petNumberA, int32 petSlotA, int32 pe
void WorldSession::SendPetAdded(int32 petSlot, int32 petNumber, int32 creatureID, int32 level, std::string name)
{
WorldPacket data(SMSG_PET_ADDED, 4 + 4 + 1 + 4 + 4 + name.length());
WorldPackets::Pet::PetAdded petAdded;
petAdded.Level = level;
petAdded.PetSlot = petSlot;
petAdded.Flags = PET_STABLE_ACTIVE | (petSlot > PET_SLOT_LAST_ACTIVE_SLOT ? PET_STABLE_INACTIVE : 0);
petAdded.CreatureID = creatureID;
petAdded.Name = name;
data << uint32(level);
data << uint32(petSlot);
data << uint8(PET_STABLE_ACTIVE | (petSlot > PET_SLOT_LAST_ACTIVE_SLOT ? PET_STABLE_INACTIVE : 0));
data << uint32(creatureID);
data << uint32(petNumber);
data.WriteBits(uint32(name.length()), 8);
data << name;
SendPacket(&data);
SendPacket(petAdded.Write());
}
void WorldSession::HandleRequestPetInfoOpcode(WorldPacket& /*recvData*/)
@@ -67,3 +67,16 @@ WorldPacket const* WorldPackets::Pet::PetActionSound::Write()
return &_worldPacket;
}
WorldPacket const* WorldPackets::Pet::PetAdded::Write()
{
_worldPacket << int32(Level);
_worldPacket << int32(PetSlot);
_worldPacket << uint8(Flags);
_worldPacket << int32(CreatureID);
_worldPacket << int32(PetNumber);
_worldPacket.WriteBits(Name.length(), 8);
_worldPacket << Name;
return &_worldPacket;
}
@@ -79,6 +79,21 @@ namespace WorldPackets
ObjectGuid UnitGUID;
int32 Action = 0;
};
class PetAdded final : public ServerPacket
{
public:
PetAdded() : ServerPacket(SMSG_PET_ADDED, 4 + 4 + 1 + 4 + 4) { }
WorldPacket const* Write() override;
std::string Name;
int32 CreatureID = 0;
int32 Level = 0;
int32 PetSlot = 0;
uint32 PetNumber = 0;
uint8 Flags = 0;
};
}
}