diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-06-23 23:32:01 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-06-23 23:32:01 +0200 |
commit | 103a6998fc2cefa6976ef5b148fac5d38828114f (patch) | |
tree | 8dc06f2d979fc7b6b7ca311992e2741c40b34b24 /src | |
parent | b4e6316ac0622ee5512d088a848b33aae8e79c15 (diff) |
Core/PacketIO: Updated and enabled pet and petition packets
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Server/Packets/PetPackets.cpp | 26 | ||||
-rw-r--r-- | src/server/game/Server/Packets/PetPackets.h | 4 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 6 |
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); |