#pragma once #include "components.hpp" #include "dinkyecs.hpp" #include "tser.hpp" #include #include #include namespace save { namespace fs = std::filesystem; struct MapData { size_t width; size_t height; std::vector rooms; Matrix walls; DEFINE_SERIALIZABLE(MapData, width, height, rooms, walls); }; struct Facts { components::Player player; DEFINE_SERIALIZABLE(Facts, player); }; struct SaveData { Facts facts; MapData map; std::map position; std::map motion; std::map combat; std::map tile; std::map inventory; DEFINE_SERIALIZABLE(SaveData, facts, map, position, motion, combat, tile, inventory); }; void to_file(fs::path path, DinkyECS::World &world, Map &map); void from_file(fs::path path, DinkyECS::World &world_out, Map &map); void load_configs(DinkyECS::World &world); }