#include "NetObjManager.hpp" #include "NetObjPtr.hpp" namespace NetworkingObjects { NetObjManager::NetObjManager(std::shared_ptr initTypeList, bool initIsServer): isServer(initIsServer), typeList(initTypeList), nextTypeID(0) {} bool NetObjManager::is_server() const { return isServer; } void NetObjManager::read_update_message(cereal::PortableBinaryInputArchive& a, const std::shared_ptr& clientReceivedFrom) { NetObjID id; a(id); auto it = objectData.find(id); if(it == objectData.end()) return; auto& netTypeIDData = typeList->netTypeIDData[it->second.netTypeID]; if(isServer) netTypeIDData.readUpdateFuncServer(NetObjPtr(this, id, it->second.p), a, clientReceivedFrom); else netTypeIDData.readUpdateFuncClient(NetObjPtr(this, id, it->second.p), a, clientReceivedFrom); } void NetObjManager::set_client(std::shared_ptr initClient, MessageCommandType initUpdateCommandID) { client = initClient; updateCommandID = initUpdateCommandID; } void NetObjManager::set_server(std::shared_ptr initServer, MessageCommandType initUpdateCommandID) { server = initServer; updateCommandID = initUpdateCommandID; } }