OpenFusion/src/TransportManager.hpp

31 lines
861 B
C++
Raw Normal View History

2020-08-29 11:43:33 +00:00
#pragma once
#include "CNShardServer.hpp"
2020-09-17 02:27:21 +00:00
#include "NPCManager.hpp"
#include <unordered_map>
struct WarpLocation;
2020-08-29 11:43:33 +00:00
struct TransportRoute {
int type, start, end, cost, mssSpeed, mssRouteNum;
};
struct TransportLocation {
int npcID, x, y, z;
};
2020-08-29 11:43:33 +00:00
namespace TransportManager {
extern std::map<int32_t, TransportRoute> Routes;
extern std::map<int32_t, TransportLocation> Locations;
extern std::map<int32_t, std::queue<WarpLocation>> SkywayPaths; // predefined skyway paths with points
extern std::unordered_map<CNSocket*, std::queue<WarpLocation>> SkywayQueues; // player sockets with queued broomstick points
2020-08-29 11:43:33 +00:00
void init();
void transportRegisterLocationHandler(CNSocket* sock, CNPacketData* data);
void transportWarpHandler(CNSocket* sock, CNPacketData* data);
2020-09-17 02:27:21 +00:00
void tickSkywaySystem(CNServer* serv, time_t currTime);
2020-08-29 11:43:33 +00:00
}