diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Handlers/AuctionHouseHandler.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 18 | ||||
| -rw-r--r-- | src/server/game/Server/Packet.h | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/AuctionHousePackets.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/AuctionHousePackets.h | 2 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/AuthenticationPackets.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/AuthenticationPackets.h | 4 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 31 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SystemPackets.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SystemPackets.h | 4 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 8 |
15 files changed, 57 insertions, 77 deletions
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp index ca52eeb348f..e35baca3efc 100644 --- a/src/server/game/Handlers/AuctionHouseHandler.cpp +++ b/src/server/game/Handlers/AuctionHouseHandler.cpp @@ -78,8 +78,7 @@ void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 action auctionCommandResult.InitializeAuction(auction); auctionCommandResult.Action = action; auctionCommandResult.ErrorCode = errorCode; - auctionCommandResult.Write(); - SendPacket(&auctionCommandResult.GetWorldPacket()); + SendPacket(auctionCommandResult.Write()); } //this function sends notification, if bidder is online diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index 8cde824c26e..fee7ad2542f 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -44,8 +44,7 @@ void WorldSession::SendAuthResponse(uint8 code, bool queued, uint32 queuePos) response.SuccessInfo.value.AvailableRaces = &sObjectMgr->GetRaceExpansionRequirements(); } - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } void WorldSession::SendAuthWaitQue(uint32 position) @@ -66,8 +65,7 @@ void WorldSession::SendAuthWaitQue(uint32 position) response.Result = AUTH_WAIT_QUEUE; } - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } void WorldSession::SendClientCacheVersion(uint32 version) @@ -84,8 +82,7 @@ void WorldSession::SendSetTimeZoneInformation() packet.ServerTimeTZ = "Europe/Paris"; packet.GameTimeTZ = "Europe/Paris"; - packet.Write(); - SendPacket(&packet.GetWorldPacket()); + SendPacket(packet.Write()); } void WorldSession::SendFeatureSystemStatusGlueScreen() @@ -96,6 +93,5 @@ void WorldSession::SendFeatureSystemStatusGlueScreen() features.CharUndeleteEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_CHARACTER_UNDELETE_ENABLED); features.BpayStoreEnabled = sWorld->getBoolConfig(CONFIG_FEATURE_SYSTEM_BPAY_STORE_ENABLED); - features.Write(); - SendPacket(&features.GetWorldPacket()); + SendPacket(features.Write()); } diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 8593b4352c3..e3192efff29 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -250,8 +250,7 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result) while (result->NextRow()); } - charEnum.Write(); - SendPacket(&charEnum.GetWorldPacket()); + SendPacket(charEnum.Write()); } void WorldSession::HandleCharEnumOpcode(WorldPacket& /*recvData*/) @@ -294,8 +293,7 @@ void WorldSession::HandleCharUndeleteEnum(PreparedQueryResult result) while (result->NextRow()); } - charEnum.Write(); - SendPacket(&charEnum.GetWorldPacket()); + SendPacket(charEnum.Write()); } void WorldSession::HandleCharUndeleteEnumOpcode(WorldPacket& /*recvData*/) @@ -2441,8 +2439,7 @@ void WorldSession::SendCharCreate(ResponseCodes result) WorldPackets::Character::CharacterCreateResponse response; response.Code = result; - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } void WorldSession::SendCharDelete(ResponseCodes result) @@ -2450,8 +2447,7 @@ void WorldSession::SendCharDelete(ResponseCodes result) WorldPackets::Character::CharacterDeleteResponse response; response.Code = result; - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } void WorldSession::SendCharRename(ResponseCodes result, WorldPackets::Character::CharacterRenameInfo const& renameInfo) @@ -2526,8 +2522,7 @@ void WorldSession::SendUndeleteCooldownStatusResponse(uint32 currentCooldown, ui response.MaxCooldown = maxCooldown; response.CurrentCooldown = currentCooldown; - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } void WorldSession::SendUndeleteCharacterResponse(CharacterUndeleteResult result, WorldPackets::Character::CharacterUndeleteInfo const* undeleteInfo) @@ -2536,6 +2531,5 @@ void WorldSession::SendUndeleteCharacterResponse(CharacterUndeleteResult result, response.UndeleteInfo = undeleteInfo; response.Result = result; - response.Write(); - SendPacket(&response.GetWorldPacket()); + SendPacket(response.Write()); } diff --git a/src/server/game/Server/Packet.h b/src/server/game/Server/Packet.h index e7baf830944..ba26b7de82f 100644 --- a/src/server/game/Server/Packet.h +++ b/src/server/game/Server/Packet.h @@ -29,10 +29,9 @@ namespace WorldPackets Packet(Packet const& right) = delete; Packet& operator=(Packet const& right) = delete; - virtual void Write() = 0; + virtual WorldPacket const* Write() = 0; virtual void Read() = 0; - WorldPacket& GetWorldPacket() { return _worldPacket; } size_t GetSize() const { return _worldPacket.size(); } protected: @@ -54,7 +53,12 @@ namespace WorldPackets public: ClientPacket(WorldPacket&& packet) : Packet(std::move(packet)) { } - void Write() override final { ASSERT(!"Write not allowed for client packets."); } + WorldPacket const* Write() override final + { + ASSERT(!"Write not allowed for client packets."); + // Shut up some compilers + return nullptr; + } }; } diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp index e8fd4dfce14..56fa0ed396b 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.cpp +++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp @@ -33,7 +33,7 @@ void WorldPackets::AuctionHousePackets::AuctionCommandResult::InitializeAuction( } } -void WorldPackets::AuctionHousePackets::AuctionCommandResult::Write() +WorldPacket const* WorldPackets::AuctionHousePackets::AuctionCommandResult::Write() { _worldPacket << uint32(AuctionId); _worldPacket << uint32(Action); @@ -54,4 +54,6 @@ void WorldPackets::AuctionHousePackets::AuctionCommandResult::Write() _worldPacket << uint64(Bid ? AuctionOutBid : 0); break; } -}
\ No newline at end of file + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h index 044810ced6c..3713b51e6ef 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.h +++ b/src/server/game/Server/Packets/AuctionHousePackets.h @@ -41,7 +41,7 @@ namespace WorldPackets */ void InitializeAuction(AuctionEntry* auction); - void Write() override; + WorldPacket const* Write() override; uint32 AuctionId = 0; ///< the id of the auction that triggered this notification uint32 Action = 0; ///< the type of action that triggered this notification. Possible values are @ref AuctionAction diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp index 0f188e51c42..2abc68ab90d 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.cpp +++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp @@ -17,11 +17,12 @@ #include "AuthenticationPackets.h" -void WorldPackets::Auth::AuthChallenge::Write() +WorldPacket const* WorldPackets::Auth::AuthChallenge::Write() { _worldPacket << uint32(Challenge); _worldPacket.append(DosChallenge, 8); _worldPacket << uint8(DosZeroBits); + return &_worldPacket; } void WorldPackets::Auth::AuthSession::Read() @@ -55,7 +56,7 @@ WorldPackets::Auth::AuthResponse::AuthResponse() SuccessInfo.HasValue = false; } -void WorldPackets::Auth::AuthResponse::Write() +WorldPacket const* WorldPackets::Auth::AuthResponse::Write() { _worldPacket << uint8(Result); _worldPacket.WriteBit(SuccessInfo.HasValue); @@ -135,4 +136,5 @@ void WorldPackets::Auth::AuthResponse::Write() } _worldPacket.FlushBits(); + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h index 209300e023e..d527934bffe 100644 --- a/src/server/game/Server/Packets/AuthenticationPackets.h +++ b/src/server/game/Server/Packets/AuthenticationPackets.h @@ -31,7 +31,7 @@ namespace WorldPackets public: AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 4 + 32 + 1), Challenge(0) { } - void Write() override; + WorldPacket const* Write() override; uint32 Challenge; uint32 DosChallenge[8]; ///< Encryption seeds @@ -126,7 +126,7 @@ namespace WorldPackets AuthResponse(); - void Write() override; + WorldPacket const* Write() override; Optional<AuthSuccessInfo> SuccessInfo; ///< contains the packet data in case that it has account information (It is never set when WaitInfo is set), otherwise its contents are undefined. Optional<AuthWaitInfo> WaitInfo; ///< contains the queue wait information in case the account is in the login queue. diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 095eb452e2b..a5faef9a483 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -125,7 +125,7 @@ WorldPackets::Character::CharEnumResult::CharacterInfo::CharacterInfo(Field* fie WorldPackets::Character::CharEnumResult::CharEnumResult() : ServerPacket(SMSG_CHAR_ENUM) { } -void WorldPackets::Character::CharEnumResult::Write() +WorldPacket const* WorldPackets::Character::CharEnumResult::Write() { _worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + FactionChangeRestrictions.size() * sizeof(RestrictedFactionChangeRuleInfo)); @@ -181,6 +181,8 @@ void WorldPackets::Character::CharEnumResult::Write() _worldPacket << int32(rule.Mask); _worldPacket << uint8(rule.Race); } + + return &_worldPacket; } WorldPackets::Character::CharacterCreate::CharacterCreate(WorldPacket&& packet) @@ -211,9 +213,10 @@ void WorldPackets::Character::CharacterCreate::Read() WorldPackets::Character::CharacterCreateResponse::CharacterCreateResponse() : ServerPacket(SMSG_CHAR_CREATE, 1) { } -void WorldPackets::Character::CharacterCreateResponse::Write() +WorldPacket const* WorldPackets::Character::CharacterCreateResponse::Write() { _worldPacket << uint8(Code); + return &_worldPacket; } WorldPackets::Character::CharacterDelete::CharacterDelete(WorldPacket&& packet) @@ -230,9 +233,10 @@ void WorldPackets::Character::CharacterDelete::Read() WorldPackets::Character::CharacterDeleteResponse::CharacterDeleteResponse() : ServerPacket(SMSG_CHAR_DELETE, 1) { } -void WorldPackets::Character::CharacterDeleteResponse::Write() +WorldPacket const* WorldPackets::Character::CharacterDeleteResponse::Write() { _worldPacket << uint8(Code); + return &_worldPacket; } WorldPackets::Character::UndeleteCharacter::UndeleteCharacter(WorldPacket&& packet) @@ -251,22 +255,24 @@ void WorldPackets::Character::UndeleteCharacter::Read() WorldPackets::Character::UndeleteCharacterResponse::UndeleteCharacterResponse() : ServerPacket(SMSG_UNDELETE_CHARACTER_RESPONSE, 26) { } -void WorldPackets::Character::UndeleteCharacterResponse::Write() +WorldPacket const* WorldPackets::Character::UndeleteCharacterResponse::Write() { ASSERT(UndeleteInfo); _worldPacket << int32(UndeleteInfo->ClientToken); _worldPacket << uint32(Result); _worldPacket << UndeleteInfo->CharacterGuid; + return &_worldPacket; } WorldPackets::Character::UndeleteCooldownStatusResponse::UndeleteCooldownStatusResponse() : ServerPacket(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, 9) { } -void WorldPackets::Character::UndeleteCooldownStatusResponse::Write() +WorldPacket const* WorldPackets::Character::UndeleteCooldownStatusResponse::Write() { _worldPacket.WriteBit(OnCooldown); _worldPacket << uint32(MaxCooldown); _worldPacket << uint32(CurrentCooldown); + return &_worldPacket; } WorldPackets::Character::PlayerLogin::PlayerLogin(WorldPacket&& packet) diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 135d53f8e8c..8d07769ed5a 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -27,11 +27,6 @@ namespace WorldPackets { struct CharacterCreateInfo { - friend class CharacterCreate; - friend class Player; - friend class WorldSession; - - protected: /// User specified variables uint8 Race = 0; uint8 Class = 0; @@ -51,19 +46,12 @@ namespace WorldPackets struct CharacterRenameInfo { - friend class WorldSession; - - protected: ObjectGuid Guid; std::string Name; }; struct CharacterCustomizeInfo : public CharacterRenameInfo { - friend class Player; - friend class WorldSession; - - protected: uint8 Gender = GENDER_NONE; uint8 Skin = 0; uint8 Face = 0; @@ -74,20 +62,11 @@ namespace WorldPackets struct CharacterFactionChangeInfo : public CharacterCustomizeInfo { - friend class Player; - friend class WorldSession; - - protected: uint8 Race = 0; }; struct CharacterUndeleteInfo { - friend class UndeleteCharacter; - friend class UndeleteCharacterResponse; - friend class WorldSession; - - protected: /// User specified variables ObjectGuid CharacterGuid; ///< Guid of the character to restore int32 ClientToken = 0; ///< @todo: research @@ -162,7 +141,7 @@ namespace WorldPackets CharEnumResult(); - void Write() override; + WorldPacket const* Write() override; bool Success = false; ///< bool IsDeletedCharacters = false; ///< used for character undelete list @@ -199,7 +178,7 @@ namespace WorldPackets public: CharacterCreateResponse(); - void Write() override; + WorldPacket const* Write() override; uint8 Code = 0; ///< Result code @see enum ResponseCodes }; @@ -219,7 +198,7 @@ namespace WorldPackets public: CharacterDeleteResponse(); - void Write() override; + WorldPacket const* Write() override; uint8 Code = 0; ///< Result code @see enum ResponseCodes }; @@ -243,7 +222,7 @@ namespace WorldPackets public: UndeleteCharacterResponse(); - void Write() override; + WorldPacket const* Write() override; /** * @var ObjectGuid CharacterGuid @@ -258,7 +237,7 @@ namespace WorldPackets public: UndeleteCooldownStatusResponse(); - void Write() override; + WorldPacket const* Write() override; bool OnCooldown = false; ///< uint32 MaxCooldown = 0; ///< Max. cooldown until next free character restoration. Displayed in undelete confirm message. (in sec) diff --git a/src/server/game/Server/Packets/SystemPackets.cpp b/src/server/game/Server/Packets/SystemPackets.cpp index c1d11db9ef9..e6e6fbe9aa2 100644 --- a/src/server/game/Server/Packets/SystemPackets.cpp +++ b/src/server/game/Server/Packets/SystemPackets.cpp @@ -20,24 +20,26 @@ WorldPackets::System::FeatureSystemStatusGlueScreen::FeatureSystemStatusGlueScreen() : ServerPacket(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, 1) { } -void WorldPackets::System::FeatureSystemStatusGlueScreen::Write() +WorldPacket const* WorldPackets::System::FeatureSystemStatusGlueScreen::Write() { _worldPacket.WriteBit(BpayStoreEnabled); _worldPacket.WriteBit(BpayStoreAvailable); _worldPacket.WriteBit(BpayStoreDisabledByParentalControls); _worldPacket.WriteBit(CharUndeleteEnabled); _worldPacket.FlushBits(); + + return &_worldPacket; } WorldPackets::System::SetTimeZoneInformation::SetTimeZoneInformation() : ServerPacket(SMSG_SET_TIME_ZONE_INFORMATION) { } -void WorldPackets::System::SetTimeZoneInformation::Write() +WorldPacket const* WorldPackets::System::SetTimeZoneInformation::Write() { - _worldPacket.reserve(1 + ServerTimeTZ.length() + GameTimeTZ.length()); - _worldPacket.WriteBits(ServerTimeTZ.length(), 7); _worldPacket.WriteBits(GameTimeTZ.length(), 7); _worldPacket.WriteString(ServerTimeTZ); _worldPacket.WriteString(GameTimeTZ); + + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/SystemPackets.h b/src/server/game/Server/Packets/SystemPackets.h index cb5a22a9b98..0cf075c6317 100644 --- a/src/server/game/Server/Packets/SystemPackets.h +++ b/src/server/game/Server/Packets/SystemPackets.h @@ -29,7 +29,7 @@ namespace WorldPackets public: FeatureSystemStatusGlueScreen(); - void Write() override; + WorldPacket const* Write() override; bool BpayStoreAvailable = false; // NYI bool BpayStoreDisabledByParentalControls = false; // NYI @@ -42,7 +42,7 @@ namespace WorldPackets public: SetTimeZoneInformation(); - void Write() override; + WorldPacket const* Write() override; std::string ServerTimeTZ; std::string GameTimeTZ; diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index ac25da2d559..850264fb70d 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -202,7 +202,7 @@ std::string WorldSession::GetPlayerInfo() const } /// Send a packet to the client -void WorldSession::SendPacket(WorldPacket* packet, bool forced /*= false*/) +void WorldSession::SendPacket(WorldPacket const* packet, bool forced /*= false*/) { if (!m_Socket) return; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 6ab85070925..17ded49011b 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -230,7 +230,7 @@ class WorldSession void SendAddonsInfo(); bool IsAddonRegistered(const std::string& prefix) const; - void SendPacket(WorldPacket* packet, bool forced = false); + void SendPacket(WorldPacket const* packet, bool forced = false); uint32 CompressPacket(uint8* buffer, WorldPacket const& packet); void SendNotification(const char *format, ...) ATTR_PRINTF(2, 3); diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index e3fcd124881..23bd9a65f88 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -86,9 +86,7 @@ void WorldSocket::HandleSendAuthSession() memcpy(&challenge.DosChallenge[4], seed2.AsByteArray(16).get(), 16); challenge.DosZeroBits = 1; - challenge.Write(); - - SendPacket(challenge.GetWorldPacket()); + SendPacket(*challenge.Write()); } void WorldSocket::ReadHandler() @@ -606,9 +604,7 @@ void WorldSocket::SendAuthResponseError(uint8 code) response.SuccessInfo.HasValue = false; response.WaitInfo.HasValue = false; response.Result = code; - response.Write(); - - SendPacket(response.GetWorldPacket()); + SendPacket(*response.Write()); } void WorldSocket::HandlePing(WorldPacket& recvPacket) |
