From: Clyne Sullivan Date: Tue, 3 Sep 2019 17:58:38 +0000 (-0400) Subject: added load message X-Git-Tag: v0.2-alpha~42^2 X-Git-Url: https://code.bitgloo.com/?a=commitdiff_plain;h=95cc88ad5f6c2abb4890d00a57ae4ad0db030e9b;p=clyne%2Fgamedev2.git added load message --- diff --git a/src/engine.cpp b/src/engine.cpp index 9c0b09b..e959f21 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -48,7 +48,10 @@ int Engine::init(void) // Load game script and entity data systems.system()->init(); - GameState::load("save.json", entities); + if (GameState::load("save.json", entities)) { + std::cout << "Loaded from save.json. Delete the file if you don't want " + "it." << std::endl; + } return 0; } diff --git a/src/gamestate.hpp b/src/gamestate.hpp index 196c6b7..55f4e47 100644 --- a/src/gamestate.hpp +++ b/src/gamestate.hpp @@ -43,13 +43,19 @@ public: * * @param file The file to load from * @param entities The entity manager to load into + * @return True if successful load */ - static void load(const std::string& file, entityx::EntityManager &entities) + static bool load(const std::string& file, entityx::EntityManager &entities) { - if (std::ifstream saveFile (file); saveFile.good()) { + std::ifstream saveFile (file); + bool opened = saveFile.good(); + + if (opened) { cereal::JSONInputArchive archive (saveFile); - serializeEntities(archive, false, entities); + serializeEntities(archive, false, entities); } + + return opened; } /** @@ -58,13 +64,19 @@ public: * * @param file The file to load from * @param entities The entity manager to get entity data from + * @return True if successful save */ - static void save(const std::string& file, entityx::EntityManager &entities) + static bool save(const std::string& file, entityx::EntityManager &entities) { - if (std::ofstream saveFile (file); saveFile.good()) { + std::ofstream saveFile (file); + bool opened = saveFile.good(); + + if (opened) { cereal::JSONOutputArchive archive (saveFile); - serializeEntities(archive, true, entities); + serializeEntities(archive, true, entities); } + + return opened; } private: