]> code.bitgloo.com Git - clyne/gamedev2.git/commitdiff
made json names readable
authorClyne Sullivan <clyne@bitgloo.com>
Mon, 2 Sep 2019 22:53:21 +0000 (18:53 -0400)
committerClyne Sullivan <clyne@bitgloo.com>
Mon, 2 Sep 2019 22:53:21 +0000 (18:53 -0400)
lib/entityx/entityx/Entity.h
src/components/Light.hpp
src/components/Name.hpp
src/components/Player.hpp
src/components/Position.hpp
src/components/Render.hpp
src/components/Script.hpp
src/components/Velocity.hpp
src/engine.cpp

index 193d581c95da5192cea76c32ef5cbf5b727f3f16..27a8820029e4ccfc895c2dd185fd9377da3005fe 100644 (file)
@@ -243,6 +243,7 @@ struct BaseComponent {
   void operator delete[]([[maybe_unused]] void *p) { fail(); }
 
   virtual void internal_serialize(bool save, void *ar) = 0;
+  virtual std::string serializeName(void) const = 0;
 
  protected:
   static void fail() {
@@ -757,8 +758,11 @@ class EntityManager : entityx::help::NonCopyable {
     for (size_t i = 0; i < component_helpers_.size(); i++) {
       BaseComponentHelper *helper = component_helpers_[i];
       if (helper && mask.test(i)) {
-        helper->get_component(entity)->internal_serialize(save,
-          static_cast<void*>(&ar));
+        auto* c = helper->get_component(entity);
+        ar.setNextName(c->serializeName().c_str());
+        ar.startNode();
+        c->internal_serialize(save, static_cast<void*>(&ar));
+        ar.finishNode();
       }
     }
   }
index 2cb0e1bbb41601ee4ab4d62f5ebd97fa5eadf4e7..6849d7cbd8bd960df56f4896e4c2a02e6ce5e252 100644 (file)
@@ -51,11 +51,15 @@ public:
     }
 
     void serialize(cereal::JSONOutputArchive& ar) final {
-        ar(r, g, b, strength);
+        ar(CEREAL_NVP(r), CEREAL_NVP(g), CEREAL_NVP(b), CEREAL_NVP(strength));
     }
 
     void serialize(cereal::JSONInputArchive& ar) final {
-        ar(r, g, b, strength);
+        ar(CEREAL_NVP(r), CEREAL_NVP(g), CEREAL_NVP(b), CEREAL_NVP(strength));
+    }
+
+    std::string serializeName(void) const final {
+        return "Light";
     }
 };
 
index b42ef4690069bf2479e0da4a0f536776a6bad961..a6a6d8ad0f44977dee45514dd7bd0da3807ed41f 100644 (file)
@@ -40,11 +40,15 @@ public:
     }
 
     void serialize(cereal::JSONOutputArchive& ar) final {
-        ar(name);
+        ar(CEREAL_NVP(name));
     }
 
     void serialize(cereal::JSONInputArchive& ar) final {
-        ar(name);
+        ar(CEREAL_NVP(name));
+    }
+
+    std::string serializeName(void) const final {
+        return "Name";
     }
 };
 
index 95b2a96416292b94a38d8d50d4a7124809bb60dc..33db1eb3dd788930140d7fc45488e138640a2876 100644 (file)
@@ -35,6 +35,10 @@ public:
 
     void serialize([[maybe_unused]] cereal::JSONOutputArchive& ar) final {}
     void serialize([[maybe_unused]] cereal::JSONInputArchive& ar) final {}
+
+    std::string serializeName(void) const final {
+        return "Player";
+    }
 };
 
 #endif // COMPONENT_PLAYER_HPP_
index 6157265c4b1076ccaffef7a5fedc99aa2b7af851..56e8707653bc8210a3db5c5ac1b62279286f71af 100644 (file)
@@ -44,11 +44,15 @@ public:
     }
 
     void serialize(cereal::JSONOutputArchive& ar) final {
-        ar(x, y);
+        ar(CEREAL_NVP(x), CEREAL_NVP(y));
     }
 
     void serialize(cereal::JSONInputArchive& ar) final {
-        ar(x, y);
+        ar(CEREAL_NVP(x), CEREAL_NVP(y));
+    }
+
+    std::string serializeName(void) const final {
+        return "Position";
     }
 };
 
index 49a95881672d59a1d1bc8b7b599afb44d733c48f..81ca591c011ef37e5837944cf82c782eaf3c98cb 100644 (file)
@@ -55,11 +55,15 @@ public:
     }
 
     void serialize(cereal::JSONOutputArchive& ar) final {
-        ar(visible, flipX);
+        ar(CEREAL_NVP(visible), CEREAL_NVP(flipX));
     }
 
     void serialize(cereal::JSONInputArchive& ar) final {
-        ar(visible, flipX);
+        ar(CEREAL_NVP(visible), CEREAL_NVP(flipX));
+    }
+
+    std::string serializeName(void) const final {
+        return "Render";
     }
 };
 
index 178c933159800f96289cb98430a502539328e320..f7927503dfb5a990b1625055d0fa90a32fdd0f1d 100644 (file)
@@ -63,6 +63,10 @@ public:
 
     void serialize([[maybe_unused]] cereal::JSONOutputArchive& ar) final {}
     void serialize([[maybe_unused]] cereal::JSONInputArchive& ar) final {}
+
+    std::string serializeName(void) const final {
+        return "Scripted";
+    }
 };
 
 #endif // COMPONENT_SCRIPT_HPP_
index 7a757068a0eca114cfaef49d5fb7d143dd071d53..776c1ddcac7196348792cd82a33d22f5b9355b7e 100644 (file)
@@ -45,11 +45,15 @@ public:
     }
 
     void serialize(cereal::JSONOutputArchive& ar) final {
-        ar(x, y);
+        ar(CEREAL_NVP(x), CEREAL_NVP(y));
     }
 
     void serialize(cereal::JSONInputArchive& ar) final {
-        ar(x, y);
+        ar(CEREAL_NVP(x), CEREAL_NVP(y));
+    }
+
+    std::string serializeName(void) const final {
+        return "Velocity";
     }
 };
 
index db31b9d46ff4302e21b576a7866bbe0c110fe9d9..539515c133827352bcfd4cf603ebba411eaf499a 100644 (file)
@@ -126,6 +126,7 @@ void Engine::run(void)
         entities.entity_serialize(e, true, archive);
         archive.finishNode();
     }
+    std::cout << std::endl;
 }
 
 bool Engine::shouldRun(void)