Reimplementing save/load file
This commit is contained in:
parent
260288a1b0
commit
9913eb6c8e
37 changed files with 437 additions and 350 deletions
|
|
@ -43,3 +43,15 @@ void CanvasComponentAllocator::register_class(World& world) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
void CanvasComponentAllocator::save_file(cereal::PortableBinaryOutputArchive& a) const {
|
||||
a(comp->get_type());
|
||||
comp->save_file(a);
|
||||
}
|
||||
|
||||
void CanvasComponentAllocator::load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version) {
|
||||
CanvasComponentType t;
|
||||
a(t);
|
||||
comp = std::unique_ptr<CanvasComponent>(CanvasComponent::allocate_comp(t));
|
||||
comp->load_file(a, version);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "CanvasComponentType.hpp"
|
||||
#include <Helpers/NetworkingObjects/NetObjTemporaryPtr.hpp>
|
||||
#include <Helpers/NetworkingObjects/DelayUpdateSerializedClassManager.hpp>
|
||||
#include <Helpers/VersionNumber.hpp>
|
||||
|
||||
class World;
|
||||
class CanvasComponent;
|
||||
|
|
@ -13,4 +14,6 @@ class CanvasComponentAllocator {
|
|||
CanvasComponentAllocator(CanvasComponentType typeToAllocate);
|
||||
std::unique_ptr<CanvasComponent> comp;
|
||||
static void register_class(World& world);
|
||||
void save_file(cereal::PortableBinaryOutputArchive& a) const;
|
||||
void load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "CanvasComponent.hpp"
|
||||
#include <Helpers/NetworkingObjects/DelayUpdateSerializedClassManager.hpp>
|
||||
#include "../ScaleUpCanvas.hpp"
|
||||
#include "Helpers/NetworkingObjects/NetObjManager.hpp"
|
||||
|
||||
using namespace NetworkingObjects;
|
||||
|
||||
|
|
@ -58,12 +59,14 @@ void CanvasComponentContainer::write_constructor_func(const NetworkingObjects::N
|
|||
|
||||
void CanvasComponentContainer::save_file(cereal::PortableBinaryOutputArchive& a) const {
|
||||
a(coords);
|
||||
get_comp().save_file(a);
|
||||
compAllocator->save_file(a);
|
||||
}
|
||||
|
||||
void CanvasComponentContainer::load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version) {
|
||||
void CanvasComponentContainer::load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version, NetObjManager& objMan) {
|
||||
a(coords);
|
||||
get_comp().load_file(a, version);
|
||||
compAllocator = objMan.make_obj_direct<CanvasComponentAllocator>();
|
||||
compAllocator->load_file(a, version);
|
||||
compAllocator->comp->compContainer = this;
|
||||
}
|
||||
|
||||
void CanvasComponentContainer::draw(SkCanvas* canvas, const DrawData& drawData) const {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class CanvasComponentContainer {
|
|||
static void register_class(World& w);
|
||||
std::shared_ptr<CopyData> get_data_copy() const;
|
||||
void save_file(cereal::PortableBinaryOutputArchive& a) const;
|
||||
void load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version);
|
||||
void load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version, NetworkingObjects::NetObjManager& objMan);
|
||||
CanvasComponent& get_comp() const;
|
||||
SCollision::AABB<WorldScalar> get_world_bounds() const;
|
||||
void draw(SkCanvas* canvas, const DrawData& drawData) const;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue