diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Server/Packets/TalentPackets.cpp | 24 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/TalentPackets.h | 7 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.h | 3 |
4 files changed, 25 insertions, 20 deletions
diff --git a/src/server/game/Server/Packets/TalentPackets.cpp b/src/server/game/Server/Packets/TalentPackets.cpp index 0a4918c1e23..d715348d90f 100644 --- a/src/server/game/Server/Packets/TalentPackets.cpp +++ b/src/server/game/Server/Packets/TalentPackets.cpp @@ -40,28 +40,34 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Talent::TalentInfo const& ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Talent::TalentGroupInfo const& talentGroupInfo) { - data << uint32(talentGroupInfo.GlyphInfo.size()); - data << uint32(talentGroupInfo.TalentInfos.size()); - data << uint32(talentGroupInfo.SpecID); + data << uint8(talentGroupInfo.Talents.size()); + data << uint32(talentGroupInfo.Talents.size()); - for (uint16 glyph : talentGroupInfo.GlyphInfo) - data << uint16(glyph); + data << uint8(talentGroupInfo.GlyphIDs.size()); + data << uint32(talentGroupInfo.GlyphIDs.size()); - for (auto& talentInfo : talentGroupInfo.TalentInfos) - data << talentInfo; + data << uint8(talentGroupInfo.SpecID); + + for (auto const& talent : talentGroupInfo.Talents) + data << talent; + + for (uint16 glyphId : talentGroupInfo.GlyphIDs) + data << uint16(glyphId); return data; } WorldPacket const* WorldPackets::Talent::UpdateTalentData::Write() { - _worldPacket << uint8(ActiveGroup); _worldPacket << uint32(UnspentTalentPoints); + _worldPacket << uint8(ActiveGroup); _worldPacket << uint32(TalentGroupInfos.size()); - for (auto& talentGroupInfo : TalentGroupInfos) + for (auto const& talentGroupInfo : TalentGroupInfos) _worldPacket << talentGroupInfo; + _worldPacket.WriteBit(IsPetTalents); + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/TalentPackets.h b/src/server/game/Server/Packets/TalentPackets.h index a7e3b0dc01b..3cc97674f18 100644 --- a/src/server/game/Server/Packets/TalentPackets.h +++ b/src/server/game/Server/Packets/TalentPackets.h @@ -41,9 +41,9 @@ namespace WorldPackets struct TalentGroupInfo { - uint8 SpecID = 0; - std::vector<TalentInfo> TalentInfos; - std::vector<uint16> GlyphInfo; + int32 SpecID = 0; + std::vector<uint16> Talents; + std::vector<uint16> GlyphIDs; }; class UpdateTalentData final : public ServerPacket @@ -55,6 +55,7 @@ namespace WorldPackets uint32 UnspentTalentPoints = 0; uint8 ActiveGroup = 0; + bool IsPetTalents = false; std::vector<TalentGroupInfo> TalentGroupInfos; }; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 70e8b9d534c..3a3e5cf054f 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1929,19 +1929,19 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ARENA_TEAM_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PAGE_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_COMPLETION_NPC_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -2196,7 +2196,6 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PET_TALENT_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PRIMARY_SPEC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_REALM_HIDDEN_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_RECENT_PLAYER_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 7e2912d8ef8..3ebb9c101c3 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -1841,10 +1841,9 @@ enum OpcodeServer : uint16 SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A9, SMSG_UPDATE_LAST_INSTANCE = 0x2688, SMSG_UPDATE_OBJECT = 0x27CB, - SMSG_UPDATE_PET_TALENT_DATA = 0x25D7, SMSG_UPDATE_PRIMARY_SPEC = 0x25D8, SMSG_UPDATE_REALM_HIDDEN_INFO = 0x28AC, - SMSG_UPDATE_TALENT_DATA = 0x25D6, + SMSG_UPDATE_TALENT_DATA = 0x25D7, SMSG_UPDATE_WORLD_STATE = 0x2748, SMSG_USERLIST_ADD = 0x2BB9, SMSG_USERLIST_REMOVE = 0x2BBA, |
