aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMitchesD <majklprofik@seznam.cz>2015-09-14 20:51:52 +0200
committerMitchesD <majklprofik@seznam.cz>2015-09-14 20:51:52 +0200
commit64ec9299e5706fdcb9330ae54c64440d38ebf4f0 (patch)
treeab07f5624d281b6bf418e9067042e7d12d1854d5 /src
parent9e31bb0cbf88c95116eb0670fe32c32196d0e495 (diff)
parent14e4c52c3b23e4cfb49924209086944e6e4b4460 (diff)
Merge pull request #15510 from horn/6.x
Core/BattlePets: Added missing casts in packets and forgotten state from BattlePetSpeciesState.db2
Diffstat (limited to 'src')
-rw-r--r--src/server/game/BattlePets/BattlePetMgr.h6
-rw-r--r--src/server/game/Server/Packets/BattlePetPackets.cpp42
-rw-r--r--src/server/game/Server/Packets/BattlePetPackets.h1
3 files changed, 26 insertions, 23 deletions
diff --git a/src/server/game/BattlePets/BattlePetMgr.h b/src/server/game/BattlePets/BattlePetMgr.h
index 97b1b34c13c..09823ccc2a7 100644
--- a/src/server/game/BattlePets/BattlePetMgr.h
+++ b/src/server/game/BattlePets/BattlePetMgr.h
@@ -29,7 +29,7 @@ enum BattlePetMisc
DEFAULT_SUMMON_BATTLE_PET_SPELL = 118301
};
-// TODO: fix values in this enum
+// TODO: fix undefined values in this enum
enum BattlePetError
{
BATTLEPETRESULT_CANT_HAVE_MORE_PETS_OF_THAT_TYPE = 9,
@@ -67,7 +67,9 @@ enum BattlePetState
STATE_COSMETIC_TREASURE_GOBLIN = 176,
// these are not in BattlePetState.db2 but are used in BattlePetSpeciesState.db2
STATE_START_WITH_BUFF = 183,
- STATE_START_WITH_BUFF_2 = 184
+ STATE_START_WITH_BUFF_2 = 184,
+ //
+ STATE_COSMETIC_SPECTRAL_BLUE = 196
};
enum BattlePetSaveInfo
diff --git a/src/server/game/Server/Packets/BattlePetPackets.cpp b/src/server/game/Server/Packets/BattlePetPackets.cpp
index 435b9f54338..43e08e75eea 100644
--- a/src/server/game/Server/Packets/BattlePetPackets.cpp
+++ b/src/server/game/Server/Packets/BattlePetPackets.cpp
@@ -21,8 +21,8 @@
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePetSlot const& slot)
{
data << (slot.Pet.Guid.IsEmpty() ? ObjectGuid::Create<HighGuid::BattlePet>(0) : slot.Pet.Guid);
- data << slot.CollarID;
- data << slot.Index;
+ data << uint32(slot.CollarID);
+ data << uint8(slot.Index);
data.WriteBit(slot.Locked);
data.FlushBits();
@@ -32,18 +32,18 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePetSlot
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePet const& pet)
{
data << pet.Guid;
- data << pet.Species;
- data << pet.CreatureID;
- data << pet.CollarID;
- data << pet.Breed;
- data << pet.Level;
- data << pet.Exp;
- data << pet.Flags;
- data << pet.Power;
- data << pet.Health;
- data << pet.MaxHealth;
- data << pet.Speed;
- data << pet.Quality;
+ data << uint32(pet.Species);
+ data << uint32(pet.CreatureID);
+ data << uint32(pet.CollarID);
+ data << uint16(pet.Breed);
+ data << uint16(pet.Level);
+ data << uint16(pet.Exp);
+ data << uint16(pet.Flags);
+ data << uint32(pet.Power);
+ data << uint32(pet.Health);
+ data << uint32(pet.MaxHealth);
+ data << uint32(pet.Speed);
+ data << uint8(pet.Quality);
data.WriteBits(pet.Name.size(), 7);
data.WriteBit(!pet.Owner.IsEmpty()); // HasOwnerInfo
data.WriteBit(pet.Name.empty()); // NoRename
@@ -52,8 +52,8 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePet cons
if (!pet.Owner.IsEmpty())
{
data << pet.Owner;
- data << GetVirtualRealmAddress(); // Virtual
- data << GetVirtualRealmAddress(); // Native
+ data << uint32(GetVirtualRealmAddress()); // Virtual
+ data << uint32(GetVirtualRealmAddress()); // Native
}
data.WriteString(pet.Name);
@@ -63,9 +63,9 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::BattlePet::BattlePet cons
WorldPacket const* WorldPackets::BattlePet::BattlePetJournal::Write()
{
- _worldPacket << Trap;
- _worldPacket << Slots.size();
- _worldPacket << Pets.size();
+ _worldPacket << uint16(Trap);
+ _worldPacket << uint32(Slots.size());
+ _worldPacket << uint32(Pets.size());
for (auto const& slot : Slots)
_worldPacket << slot;
@@ -73,7 +73,7 @@ WorldPacket const* WorldPackets::BattlePet::BattlePetJournal::Write()
for (auto const& pet : Pets)
_worldPacket << pet;
- _worldPacket.WriteBit(1); // HasJournalLock
+ _worldPacket.WriteBit(HasJournalLock);
_worldPacket.FlushBits();
return &_worldPacket;
@@ -160,7 +160,7 @@ WorldPacket const* WorldPackets::BattlePet::BattlePetError::Write()
{
_worldPacket.WriteBits(Result, 4);
_worldPacket.FlushBits();
- _worldPacket << CreatureID;
+ _worldPacket << uint32(CreatureID);
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/BattlePetPackets.h b/src/server/game/Server/Packets/BattlePetPackets.h
index 98112f23d5d..85edc748184 100644
--- a/src/server/game/Server/Packets/BattlePetPackets.h
+++ b/src/server/game/Server/Packets/BattlePetPackets.h
@@ -63,6 +63,7 @@ namespace WorldPackets
uint16 Trap = 0;
std::vector<BattlePetSlot> Slots;
std::vector<BattlePet> Pets;
+ bool HasJournalLock = true;
};
class BattlePetJournalLockAcquired final : public ServerPacket