From 437063d78a87980d0bb55c64b456e5784cd5aa40 Mon Sep 17 00:00:00 2001 From: Eperty123 Date: Sat, 29 Aug 2020 13:43:33 +0200 Subject: [PATCH] Add experimental TransportManager --- Makefile | 2 ++ src/TransportManager.cpp | 18 ++++++++++++++++++ src/TransportManager.hpp | 9 +++++++++ src/main.cpp | 2 ++ 4 files changed, 31 insertions(+) create mode 100644 src/TransportManager.cpp create mode 100644 src/TransportManager.hpp diff --git a/Makefile b/Makefile index 0c8b5a5..de68398 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,7 @@ CXXSRC=\ src/Player.cpp\ src/PlayerManager.cpp\ src/settings.cpp\ + src/TransportManager.cpp\ # headers (for timestamp purposes) CHDR=\ @@ -81,6 +82,7 @@ CXXHDR=\ src/Player.hpp\ src/PlayerManager.hpp\ src/settings.hpp\ + src/TransportManager.hpp\ COBJ=$(CSRC:.c=.o) CXXOBJ=$(CXXSRC:.cpp=.o) diff --git a/src/TransportManager.cpp b/src/TransportManager.cpp new file mode 100644 index 0000000..135aa7d --- /dev/null +++ b/src/TransportManager.cpp @@ -0,0 +1,18 @@ +#include "CNShardServer.hpp" +#include "CNStructs.hpp" +#include "PlayerManager.hpp" +#include "TransportManager.hpp" + +void TransportManager::init() { + REGISTER_SHARD_PACKET(P_CL2FE_REQ_REGIST_TRANSPORTATION_LOCATION, transportRegisterLocationHandler); +} + +void TransportManager::transportRegisterLocationHandler(CNSocket* sock, CNPacketData* data) { + sP_CL2FE_REQ_REGIST_TRANSPORTATION_LOCATION* transport = (sP_CL2FE_REQ_REGIST_TRANSPORTATION_LOCATION*)data->buf; + + INITSTRUCT(sP_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_SUCC, resp); + resp.eTT = transport->eTT; + resp.iLocationID = transport->iLocationID; + + sock->sendPacket((void*)&resp, P_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_SUCC, sizeof(sP_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_SUCC)); +} diff --git a/src/TransportManager.hpp b/src/TransportManager.hpp new file mode 100644 index 0000000..963925d --- /dev/null +++ b/src/TransportManager.hpp @@ -0,0 +1,9 @@ +#pragma once + +#include "CNShardServer.hpp" + +namespace TransportManager { + void init(); + + void transportRegisterLocationHandler(CNSocket* sock, CNPacketData* data); +} diff --git a/src/main.cpp b/src/main.cpp index 1a1990b..6c36e2c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,7 @@ #include "MissionManager.hpp" #include "NanoManager.hpp" #include "NPCManager.hpp" +#include "TransportManager.hpp" #include "Database.hpp" #include "settings.hpp" @@ -55,6 +56,7 @@ int main() { MissionManager::init(); NanoManager::init(); NPCManager::init(); + TransportManager::init(); Database::open();