mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Implement SMSG_TAXINODE_STATUS parsing and NPC route status cache
Parse the flight-master POI status packet (guid + uint8 status) and cache it per-NPC in taxiNpcHasRoutes_. Exposes taxiNpcHasRoutes(guid) accessor for future nameplate/interaction indicators. Previously this packet was silently consumed without any state tracking.
This commit is contained in:
parent
d4ea416dd6
commit
e12e399c0a
2 changed files with 13 additions and 3 deletions
|
|
@ -1016,6 +1016,10 @@ public:
|
|||
};
|
||||
const std::unordered_map<uint32_t, TaxiNode>& getTaxiNodes() const { return taxiNodes_; }
|
||||
uint32_t getTaxiCostTo(uint32_t destNodeId) const;
|
||||
bool taxiNpcHasRoutes(uint64_t guid) const {
|
||||
auto it = taxiNpcHasRoutes_.find(guid);
|
||||
return it != taxiNpcHasRoutes_.end() && it->second;
|
||||
}
|
||||
|
||||
// Vendor
|
||||
void openVendor(uint64_t npcGuid);
|
||||
|
|
@ -1878,6 +1882,7 @@ private:
|
|||
}
|
||||
|
||||
// Taxi / Flight Paths
|
||||
std::unordered_map<uint64_t, bool> taxiNpcHasRoutes_; // guid -> has new/available routes
|
||||
std::unordered_map<uint32_t, TaxiNode> taxiNodes_;
|
||||
std::vector<TaxiPathEdge> taxiPathEdges_;
|
||||
std::unordered_map<uint32_t, std::vector<TaxiPathNode>> taxiPathNodes_; // pathId -> ordered waypoints
|
||||
|
|
|
|||
|
|
@ -4282,10 +4282,15 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
case Opcode::SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE:
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
case Opcode::SMSG_TAXINODE_STATUS:
|
||||
// Node status cache not implemented yet.
|
||||
packet.setReadPos(packet.getSize());
|
||||
case Opcode::SMSG_TAXINODE_STATUS: {
|
||||
// guid(8) + status(1): status 1 = NPC has available/new routes for this player
|
||||
if (packet.getSize() - packet.getReadPos() >= 9) {
|
||||
uint64_t npcGuid = packet.readUInt64();
|
||||
uint8_t status = packet.readUInt8();
|
||||
taxiNpcHasRoutes_[npcGuid] = (status != 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Opcode::SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE:
|
||||
case Opcode::SMSG_SET_EXTRA_AURA_INFO_OBSOLETE:
|
||||
// Extra aura metadata (icons/durations) not yet consumed by aura UI.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue