aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-09-17 23:33:29 +0200
committerShauren <shauren.trinity@gmail.com>2015-09-17 23:33:29 +0200
commit68e89e4f7d84c20424f673978e5d3075c7fd52ca (patch)
treeba19fd07169d2ba0b05069682184599d9c23a729 /src/server/game/Server/Packets
parent1cc4badf06a88e1062db9790455ef87cec41f937 (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.cpp14
-rw-r--r--src/server/game/Server/Packets/TaxiPackets.h39
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 { }
};
}
}