diff options
| author | Carbenium <carbenium@outlook.com> | 2015-04-23 01:19:23 +0200 |
|---|---|---|
| committer | Carbenium <carbenium@outlook.com> | 2015-04-23 01:19:23 +0200 |
| commit | 915828bb1ff3d8c8c43c253a4b645abbf5efa4f0 (patch) | |
| tree | 320eec9039891d80910f8648f818fa2f9d04ec53 /src/server/game/Server | |
| parent | ac318ae517361e7f5f43466993da92fa643b92c4 (diff) | |
| parent | 1c13154e0b2268f817f7eb9892ce9e6d6ec5b6d6 (diff) | |
Merge pull request #14593 from DJScias/factionopcodes
Core/PacketIO: Updated and enabled CMSG_SET_FACTION_AT_WAR, CMSG_SET_FAC...
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 27 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 51 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 11 |
4 files changed, 92 insertions, 9 deletions
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 8d6a54aed40..be84b41cf08 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -464,3 +464,30 @@ WorldPacket const* WorldPackets::Character::TitleEarned::Write() return &_worldPacket; } + +void WorldPackets::Character::SetFactionAtWar::Read() +{ + _worldPacket >> FactionIndex; +} + +void WorldPackets::Character::SetFactionNotAtWar::Read() +{ + _worldPacket >> FactionIndex; +} + +void WorldPackets::Character::SetFactionInactive::Read() +{ + _worldPacket >> Index; + State = _worldPacket.ReadBit(); +} + +void WorldPackets::Character::SetWatchedFaction::Read() +{ + _worldPacket >> FactionIndex; +} + +WorldPacket const* WorldPackets::Character::SetFactionVisible::Write() +{ + _worldPacket << FactionIndex; + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 52d4d946db6..cee4f5edb5c 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -635,6 +635,57 @@ namespace WorldPackets uint32 Index = 0; }; + + class SetFactionAtWar final : public ClientPacket + { + public: + SetFactionAtWar(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_AT_WAR, std::move(packet)) { } + + void Read() override; + + uint8 FactionIndex = 0; + }; + + class SetFactionNotAtWar final : public ClientPacket + { + public: + SetFactionNotAtWar(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_NOT_AT_WAR, std::move(packet)) { } + + void Read() override; + + uint8 FactionIndex = 0; + }; + + class SetFactionInactive final : public ClientPacket + { + public: + SetFactionInactive(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_INACTIVE, std::move(packet)) { } + + void Read() override; + + uint32 Index = 0; + bool State = false; + }; + + class SetWatchedFaction final : public ClientPacket + { + public: + SetWatchedFaction(WorldPacket&& packet) : ClientPacket(CMSG_SET_WATCHED_FACTION, std::move(packet)) { } + + void Read() override; + + uint32 FactionIndex = 0; + }; + + class SetFactionVisible : public ServerPacket + { + public: + SetFactionVisible(bool visible) : ServerPacket(visible ? SMSG_SET_FACTION_VISIBLE : SMSG_SET_FACTION_NOT_VISIBLE, 4) { } + + WorldPacket const* Write() override; + + uint32 FactionIndex = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 97c583287ca..37358fd9759 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -723,9 +723,9 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_SET_DIFFICULTY_ID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetDungeonDifficulty, &WorldSession::HandleSetDungeonDifficultyOpcode); DEFINE_HANDLER(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); - DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode ); - DEFINE_HANDLER(CMSG_SET_FACTION_NOT_AT_WAR, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_SET_FACTION_AT_WAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionAtWar, &WorldSession::HandleSetFactionAtWar); + DEFINE_HANDLER(CMSG_SET_FACTION_INACTIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionInactive, &WorldSession::HandleSetFactionInactiveOpcode); + DEFINE_HANDLER(CMSG_SET_FACTION_NOT_AT_WAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionNotAtWar, &WorldSession::HandleSetFactionNotAtWar); DEFINE_HANDLER(CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_LFG_BONUS_FACTION_ID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_LOOT_METHOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMethodOpcode ); @@ -749,7 +749,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_SET_TRADE_GOLD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Trade::SetTradeGold, &WorldSession::HandleSetTradeGoldOpcode); DEFINE_HANDLER(CMSG_SET_TRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Trade::SetTradeItem, &WorldSession::HandleSetTradeItemOpcode); DEFINE_HANDLER(CMSG_SET_USING_PARTY_GARRISON, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); - DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_WATCHED_FACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode ); + DEFINE_HANDLER(CMSG_SET_WATCHED_FACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetWatchedFaction, &WorldSession::HandleSetWatchedFactionOpcode); DEFINE_HANDLER(CMSG_SHOWING_CLOAK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingCloak, &WorldSession::HandleShowingCloakOpcode); DEFINE_HANDLER(CMSG_SHOWING_HELM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingHelm, &WorldSession::HandleShowingHelmOpcode); DEFINE_HANDLER(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); @@ -1609,9 +1609,9 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DUNGEON_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FORCED_REACTIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ITEM_PURCHASE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 97db720c32e..efa3a7cb90e 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -152,6 +152,10 @@ namespace WorldPackets class ShowingCloak; class ShowingHelm; class SetTitle; + class SetFactionAtWar; + class SetFactionNotAtWar; + class SetFactionInactive; + class SetWatchedFaction; enum class LoginFailureReason : uint8; } @@ -991,10 +995,11 @@ class WorldSession void HandleAreaTriggerOpcode(WorldPackets::Misc::AreaTrigger& packet); - void HandleSetFactionAtWar(WorldPacket& recvData); + void HandleSetFactionAtWar(WorldPackets::Character::SetFactionAtWar& packet); + void HandleSetFactionNotAtWar(WorldPackets::Character::SetFactionNotAtWar& packet); void HandleSetFactionCheat(WorldPacket& recvData); - void HandleSetWatchedFactionOpcode(WorldPacket& recvData); - void HandleSetFactionInactiveOpcode(WorldPacket& recvData); + void HandleSetWatchedFactionOpcode(WorldPackets::Character::SetWatchedFaction& packet); + void HandleSetFactionInactiveOpcode(WorldPackets::Character::SetFactionInactive& packet); void HandleRequestForcedReactionsOpcode(WorldPackets::Reputation::RequestForcedReactions& requestForcedReactions); void HandleUpdateAccountData(WorldPackets::ClientConfig::UserClientUpdateAccountData& packet); |
