From 330e2f3fd0c2f91a306a0b23efe410dcf0b20262 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 4 Jun 2019 19:52:14 +0200 Subject: [PATCH] Core/LFG: updated remaining lfg packets to packet class --- src/server/game/DungeonFinding/LFGMgr.cpp | 4 +-- src/server/game/Server/Packets/LFGPackets.cpp | 14 +++++++++ src/server/game/Server/Packets/LFGPackets.h | 30 +++++++++++++++++-- src/server/game/Server/WorldSession.h | 6 ++-- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 46d130e7c65..180d3f2e3ac 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1393,7 +1393,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* { TC_LOG_DEBUG("lfg.teleport", "Player %s not in group/lfggroup or dungeon not found!", player->GetName().c_str()); - player->GetSession()->SendLfgTeleportError(uint8(LFG_TELEPORT_RESULT_NO_RETURN_LOCATION)); + player->GetSession()->SendLfgTeleportError(LFG_TELEPORT_RESULT_NO_RETURN_LOCATION); return; } @@ -1480,7 +1480,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* } if (error != LFG_TELEPORT_RESULT_NONE) - player->GetSession()->SendLfgTeleportError(uint8(error)); + player->GetSession()->SendLfgTeleportError(error); TC_LOG_DEBUG("lfg.teleport", "Player %s is being teleported in to map %u " "(x: %f, y: %f, z: %f) Result: %u", player->GetName().c_str(), dungeon->map, diff --git a/src/server/game/Server/Packets/LFGPackets.cpp b/src/server/game/Server/Packets/LFGPackets.cpp index 9bbd00175b7..170886f41dc 100644 --- a/src/server/game/Server/Packets/LFGPackets.cpp +++ b/src/server/game/Server/Packets/LFGPackets.cpp @@ -564,3 +564,17 @@ WorldPacket const* WorldPackets::LFG::LFGProposalUpdate::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::LFG::LFGOfferContinue::Write() +{ + _worldPacket << uint32(Slot); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::LFG::LFGTeleportDenied::Write() +{ + _worldPacket << uint32(Reason); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/LFGPackets.h b/src/server/game/Server/Packets/LFGPackets.h index 168b09063f6..8a4ac135865 100644 --- a/src/server/game/Server/Packets/LFGPackets.h +++ b/src/server/game/Server/Packets/LFGPackets.h @@ -383,9 +383,35 @@ namespace WorldPackets bool ProposalSilent = false; std::vector Players; }; + + class LFGDisabled final : public ServerPacket + { + public: + LFGDisabled() : ServerPacket(SMSG_LFG_DISABLED, 0) { } + + WorldPacket const* Write() override { return &_worldPacket; } + }; + + class LFGOfferContinue final : public ServerPacket + { + public: + LFGOfferContinue(uint32 slot) : ServerPacket(SMSG_LFG_OFFER_CONTINUE, 4), Slot(slot) { } + + WorldPacket const* Write() override; + + uint32 Slot = 0; + }; + + class LFGTeleportDenied final : public ServerPacket + { + public: + LFGTeleportDenied(lfg::LfgTeleportResult reason) : ServerPacket(SMSG_LFG_TELEPORT_DENIED, 4), Reason(reason) { } + + WorldPacket const* Write() override; + + lfg::LfgTeleportResult Reason; + }; } - - } #endif // LFGPackets_h__ diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index cbedc87a6ff..ee4b152865f 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -87,8 +87,6 @@ namespace WorldPackets class LFGBootPlayerVote; class LFGTeleport; class LFGGetSystemInfo; - class LFGPlayerInfo; - class LFGPartyInfo; class LFGUpdateStatus; class RoleChosen; class LFGRoleCheckUpdate; @@ -96,7 +94,7 @@ namespace WorldPackets class LFGQueueStatus; class LFGPlayerReward; class LfgBootPlayer; - class LFGProposalUpdate; + class LFGOfferContinue; } } @@ -986,7 +984,7 @@ class TC_GAME_API WorldSession void SendLfgUpdateProposal(lfg::LfgProposal const& proposal); void SendLfgDisabled(); void SendLfgOfferContinue(uint32 dungeonEntry); - void SendLfgTeleportError(uint8 err); + void SendLfgTeleportError(lfg::LfgTeleportResult err); // Arena Team void HandleInspectArenaTeamsOpcode(WorldPacket& recvData);