From ea719de76706140ce87f16fd9bde61c0e665d089 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Sat, 20 Aug 2022 11:15:45 -0400 Subject: fix serialization support --- src/gamestate.hpp | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) (limited to 'src/gamestate.hpp') diff --git a/src/gamestate.hpp b/src/gamestate.hpp index 86a4198..3ef641f 100644 --- a/src/gamestate.hpp +++ b/src/gamestate.hpp @@ -27,30 +27,6 @@ #include -struct EntitySerializer -{ - template - static void serialize(entityx::EntityManager& entities, entityx::Entity entity, bool save, Archive& ar) - { - // TODO try and reimplement without modifying entityx? - // Or, make a new branch... - - //const auto mask = entity.component_mask(); - - //for (size_t i = 0; i < entities.component_helpers_.size(); i++) { - // auto helper = entities.component_helpers_[i]; - // if (helper && mask.test(i)) { - // auto* c = helper->get_component(entity); - // ar.setNextName(c->serializeName().c_str()); - // ar.startNode(); - // c->internal_serialize(save, static_cast(&ar)); - // ar.finishNode(); - // } - //} - } -}; - - /** * @class GameState * Manages save files that contain entity data. @@ -122,7 +98,13 @@ private: for (auto entity : entities.entities_for_debugging()) { archive.setNextName((name + std::to_string(i++)).c_str()); archive.startNode(); - EntitySerializer::serialize(entities, entity, save, archive); + entities.serialize(entity, + [&archive, &save](auto c) { + archive.setNextName(c->serializeName().c_str()); + archive.startNode(); + c->internal_serialize(save, static_cast(&archive)); + archive.finishNode(); + }); archive.finishNode(); } } -- cgit v1.2.3