diff options
-rw-r--r-- | serialize/wall-atlas.cpp | 15 | ||||
-rw-r--r-- | src/wall-atlas.hpp | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/serialize/wall-atlas.cpp b/serialize/wall-atlas.cpp index 44620246..6f29026d 100644 --- a/serialize/wall-atlas.cpp +++ b/serialize/wall-atlas.cpp @@ -92,7 +92,12 @@ Direction read_direction_metadata(const json& jroot, Direction_ dir) Info read_info_header(const json& jroot) { - Info val { std::string(jroot["name"s]), jroot["depth"] }; + fm_soft_assert(jroot.contains(("name"s))); + fm_soft_assert(jroot.contains(("depth"))); + Info val = {std::string{jroot["name"s]}, {}, jroot["depth"s]}; + fm_soft_assert(val.depth > 0); + if (jroot.contains("description"s)) + val.description = std::string{jroot["description"s]}; return val; } @@ -113,6 +118,14 @@ void write_group_metadata(json& jgroup, const Group& val) jgroup["default-tint"s] = val.default_tint; } +void write_info_header(json& jroot, const Info& info) +{ + jroot["name"s] = info.name; + if (info.description) + jroot["description"s] = info.description; + jroot["depth"s] = info.depth; +} + } // namespace floormat::Wall::detail namespace nlohmann { diff --git a/src/wall-atlas.hpp b/src/wall-atlas.hpp index fd518b66..c54c3971 100644 --- a/src/wall-atlas.hpp +++ b/src/wall-atlas.hpp @@ -59,7 +59,7 @@ struct Direction struct Info { - String name = "(unnamed)"_s; + String name = "(unnamed)"_s, description = {}; unsigned depth = 0; }; |