From f20bb7c2d9905b51c9ac33935bc09c4170f85aaf Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Wed, 16 Dec 2020 00:09:49 +0700 Subject: [PATCH] Add de/serialization to object subsystem --- system/object_system.cpp | 30 ++++++++++++++++++++++++++++-- system/object_system.h | 23 ++++++++++++++++++++++- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/system/object_system.cpp b/system/object_system.cpp index 71a78cc..9266313 100644 --- a/system/object_system.cpp +++ b/system/object_system.cpp @@ -1,6 +1,32 @@ #include "object_system.h" -object_system::object_system() -{ + + +void object_system::init(QDataStream &stream) { + int dicnt; + stream >> dicnt; + this->_dpoints.resize(dicnt); + for (int i = 0; i < dicnt; i++) { + this->_dpoints[i].deserialize(stream); + } + + int vicnt; + stream >> vicnt; + this->_vessels.resize(vicnt); + for (int i = 0; i < vicnt; i++) { + this->_vessels[i].deserialize(stream); + } +} + +void object_system::shutdown(QDataStream &stream) { + stream << this->_dpoints.size(); + for (auto &item : this->_dpoints) { + item.serialize(stream); + } + + stream << this->_vessels.size(); + for (auto &item : this->_vessels) { + item.serialize(stream); + } } diff --git a/system/object_system.h b/system/object_system.h index cebedda..3d362b2 100644 --- a/system/object_system.h +++ b/system/object_system.h @@ -1,11 +1,32 @@ #ifndef OBJECT_SYSTEM_H #define OBJECT_SYSTEM_H +#include + +#include +#include + class object_system { +private: + QVector _dpoints; + QVector _vessels; + public: - object_system(); + object_system() = default; + + const dpoint_entity& get_dpoint(entity_id oid, bool &success); + bool remove_dpoint(entity_id oid); + bool add_dpoint(const dpoint_entity &dpoint); + + const vessel_entity& get_vessel(entity_id oid, bool &success); + bool remove_vessel(entity_id oid); + bool add_vessel(const vessel_entity &dpoint); + + + void init(QDataStream &stream); + void shutdown(QDataStream &stream); }; #endif // OBJECT_SYSTEM_H