#pragma once #include "CNShardServer.hpp" #include "NPCManager.hpp" #include struct WarpLocation; struct TransportRoute { int type, start, end, cost, mssSpeed, mssRouteNum; }; struct TransportLocation { int npcID, x, y, z; }; namespace TransportManager { extern std::map Routes; extern std::map Locations; extern std::map> SkywayPaths; // predefined skyway paths with points extern std::unordered_map> SkywayQueues; // player sockets with queued broomstick points void init(); void transportRegisterLocationHandler(CNSocket* sock, CNPacketData* data); void transportWarpHandler(CNSocket* sock, CNPacketData* data); void tickSkywaySystem(CNServer* serv, time_t currTime); }