aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-06-23 23:32:01 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-23 23:32:01 +0200
commit103a6998fc2cefa6976ef5b148fac5d38828114f (patch)
tree8dc06f2d979fc7b6b7ca311992e2741c40b34b24 /src
parentb4e6316ac0622ee5512d088a848b33aae8e79c15 (diff)
Core/PacketIO: Updated and enabled pet and petition packets
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/Packets/PetPackets.cpp26
-rw-r--r--src/server/game/Server/Packets/PetPackets.h4
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp6
3 files changed, 16 insertions, 20 deletions
diff --git a/src/server/game/Server/Packets/PetPackets.cpp b/src/server/game/Server/Packets/PetPackets.cpp
index cb5593167f0..8bedd8f3e4f 100644
--- a/src/server/game/Server/Packets/PetPackets.cpp
+++ b/src/server/game/Server/Packets/PetPackets.cpp
@@ -20,29 +20,25 @@
WorldPacket const* WorldPackets::Pet::PetSpells::Write()
{
_worldPacket << PetGUID;
- _worldPacket << int16(_CreatureFamily);
- _worldPacket << int16(Specialization);
- _worldPacket << int32(TimeLimit);
-
- uint32 petModeAndOrders = ReactState + (CommandState << 8) + (Flag << 16);
- _worldPacket << uint32(petModeAndOrders);
-
- for (uint32 actionButton : ActionButtons)
- _worldPacket << int32(actionButton);
-
- _worldPacket << int32(Actions.size());
- _worldPacket << int32(Cooldowns.size());
- _worldPacket << int32(SpellHistory.size());
+ _worldPacket << uint16(_CreatureFamily);
+ _worldPacket << uint16(Specialization);
+ _worldPacket << uint32(TimeLimit);
+ _worldPacket << uint16(CommandState | (Flag << 16));
+ _worldPacket << uint8(ReactState);
+ _worldPacket.append(ActionButtons.data(), ActionButtons.size());
+ _worldPacket << uint32(Actions.size());
+ _worldPacket << uint32(Cooldowns.size());
+ _worldPacket << uint32(SpellHistory.size());
for (uint32 action : Actions)
- _worldPacket << action;
+ _worldPacket << uint32(action);
for (PetSpellCooldown const& cooldown : Cooldowns)
{
_worldPacket << int32(cooldown.SpellID);
_worldPacket << int32(cooldown.Duration);
_worldPacket << int32(cooldown.CategoryDuration);
- _worldPacket << int16(cooldown.Category);
+ _worldPacket << uint16(cooldown.Category);
}
for (PetSpellHistory const& history : SpellHistory)
diff --git a/src/server/game/Server/Packets/PetPackets.h b/src/server/game/Server/Packets/PetPackets.h
index 813d82d4827..a847d44cd17 100644
--- a/src/server/game/Server/Packets/PetPackets.h
+++ b/src/server/game/Server/Packets/PetPackets.h
@@ -83,7 +83,7 @@ namespace WorldPackets
int32 SpellID = 0;
int32 Duration = 0;
int32 CategoryDuration = 0;
- int Category = 0;
+ uint16 Category = 0;
};
struct PetSpellHistory
@@ -106,7 +106,7 @@ namespace WorldPackets
uint32 TimeLimit = 0;
uint8 ReactState = 0;
uint8 CommandState = 0;
- uint16 Flag = 0;
+ uint8 Flag = 0;
std::array<int, 10> ActionButtons;
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 3273987d75c..f6a5f035732 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -558,7 +558,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_NEXT_CINEMATIC_CAMERA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::NextCinematicCamera, &WorldSession::HandleNextCinematicCamera);
DEFINE_HANDLER(CMSG_OBJECT_UPDATE_FAILED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::ObjectUpdateFailed, &WorldSession::HandleObjectUpdateFailedOpcode);
DEFINE_HANDLER(CMSG_OBJECT_UPDATE_RESCUED, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Misc::ObjectUpdateRescued, &WorldSession::HandleObjectUpdateRescuedOpcode);
- DEFINE_HANDLER(CMSG_OFFER_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Petition::OfferPetition, &WorldSession::HandleOfferPetition);
+ DEFINE_HANDLER(CMSG_OFFER_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Petition::OfferPetition, &WorldSession::HandleOfferPetition);
DEFINE_HANDLER(CMSG_OPENING_CINEMATIC, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::OpeningCinematic, &WorldSession::HandleOpeningCinematic);
DEFINE_HANDLER(CMSG_OPEN_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Spells::OpenItem, &WorldSession::HandleOpenItemOpcode);
DEFINE_HANDLER(CMSG_OPEN_MISSION_NPC, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
@@ -658,7 +658,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_REQUEST_LFG_LIST_BLACKLIST, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_PARTY_JOIN_UPDATES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::RequestPartyJoinUpdates, &WorldSession::HandleRequestPartyJoinUpdates);
DEFINE_HANDLER(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::RequestPartyMemberStats, &WorldSession::HandleRequestPartyMemberStatsOpcode);
- DEFINE_HANDLER(CMSG_REQUEST_PET_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Pet::RequestPetInfo, &WorldSession::HandleRequestPetInfo);
+ DEFINE_HANDLER(CMSG_REQUEST_PET_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Pet::RequestPetInfo, &WorldSession::HandleRequestPetInfo);
DEFINE_HANDLER(CMSG_REQUEST_PLAYED_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::RequestPlayedTime, &WorldSession::HandlePlayedTime);
DEFINE_HANDLER(CMSG_REQUEST_PVP_REWARDS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::RequestPVPRewards, &WorldSession::HandleRequestPvpReward);
DEFINE_HANDLER(CMSG_REQUEST_RAID_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::RequestRaidInfo, &WorldSession::HandleRequestRaidInfoOpcode);
@@ -1469,7 +1469,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_MODE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_NAME_INVALID, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_SLOT_UPDATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_SPELLS_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_SPELLS_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_STABLE_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_STABLE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PET_TAME_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);