diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-09-17 23:33:29 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-09-17 23:33:29 +0200 |
| commit | 68e89e4f7d84c20424f673978e5d3075c7fd52ca (patch) | |
| tree | ba19fd07169d2ba0b05069682184599d9c23a729 /src/server/game/Server/Packets | |
| parent | 1cc4badf06a88e1062db9790455ef87cec41f937 (diff) | |
Core/PacketIO: Corrected ActivateTaxiReply structure - fixes "There's no vendor nearby" message when starting flight
Diffstat (limited to 'src/server/game/Server/Packets')
| -rw-r--r-- | src/server/game/Server/Packets/TaxiPackets.cpp | 14 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/TaxiPackets.h | 39 |
2 files changed, 25 insertions, 28 deletions
diff --git a/src/server/game/Server/Packets/TaxiPackets.cpp b/src/server/game/Server/Packets/TaxiPackets.cpp index 1223d1c7366..1dfa44d68a0 100644 --- a/src/server/game/Server/Packets/TaxiPackets.cpp +++ b/src/server/game/Server/Packets/TaxiPackets.cpp @@ -36,7 +36,7 @@ WorldPacket const* WorldPackets::Taxi::ShowTaxiNodes::Write() _worldPacket.WriteBit(WindowInfo.is_initialized()); _worldPacket.FlushBits(); - _worldPacket << uint32(Nodes.size()); + _worldPacket << uint32(Nodes->size()); if (WindowInfo.is_initialized()) { @@ -44,8 +44,7 @@ WorldPacket const* WorldPackets::Taxi::ShowTaxiNodes::Write() _worldPacket << uint32(WindowInfo->CurrentNode); } - for (uint8 node : Nodes) - _worldPacket << node; + _worldPacket.append(Nodes->data(), Nodes->size()); return &_worldPacket; } @@ -68,11 +67,8 @@ void WorldPackets::Taxi::ActivateTaxi::Read() WorldPacket const* WorldPackets::Taxi::ActivateTaxiReply::Write() { - _worldPacket << Reply; - return &_worldPacket; -} + _worldPacket.WriteBits(Reply, 4); + _worldPacket.FlushBits(); -void WorldPackets::Taxi::TaxiRequestEarlyLanding::Read() -{ - //Noop as it's empty packet + return &_worldPacket; } diff --git a/src/server/game/Server/Packets/TaxiPackets.h b/src/server/game/Server/Packets/TaxiPackets.h index 627854635b8..0c916548bac 100644 --- a/src/server/game/Server/Packets/TaxiPackets.h +++ b/src/server/game/Server/Packets/TaxiPackets.h @@ -20,6 +20,7 @@ #include "Packet.h" #include "ObjectGuid.h" +#include "DB2Structure.h" namespace WorldPackets { @@ -60,64 +61,64 @@ namespace WorldPackets WorldPacket const* Write() override; Optional<ShowTaxiNodesWindowInfo> WindowInfo; - std::vector<uint8> Nodes; + TaxiMask const* Nodes = nullptr; }; - + class EnableTaxiNode final : public ClientPacket { public: EnableTaxiNode(WorldPacket&& packet) : ClientPacket(CMSG_ENABLE_TAXI_NODE, std::move(packet)) { } - + void Read() override; - + ObjectGuid Unit; }; - + class TaxiQueryAvailableNodes final : public ClientPacket { public: TaxiQueryAvailableNodes(WorldPacket&& packet) : ClientPacket(CMSG_TAXI_QUERY_AVAILABLE_NODES, std::move(packet)) { } - + void Read() override; - + ObjectGuid Unit; }; - + class ActivateTaxi final : public ClientPacket { public: ActivateTaxi(WorldPacket&& packet) : ClientPacket(CMSG_ACTIVATE_TAXI, std::move(packet)) { } - + void Read() override; - + ObjectGuid Vendor; uint32 Node; }; - + class NewTaxiPath final : public ServerPacket { public: NewTaxiPath() : ServerPacket(SMSG_NEW_TAXI_PATH, 0) { } - + WorldPacket const* Write() override { return &_worldPacket; } }; - + class ActivateTaxiReply final : public ServerPacket { public: ActivateTaxiReply() : ServerPacket(SMSG_ACTIVATE_TAXI_REPLY, 4) { } - + WorldPacket const* Write() override; - - uint32 Reply; + + uint8 Reply; }; - + class TaxiRequestEarlyLanding final : public ClientPacket { public: TaxiRequestEarlyLanding(WorldPacket&& packet) : ClientPacket(CMSG_TAXI_REQUEST_EARLY_LANDING, std::move(packet)) { } - - void Read() override; + + void Read() override { } }; } } |
