diff options
Diffstat (limited to 'serialize')
| -rw-r--r-- | serialize/anim.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/serialize/anim.cpp b/serialize/anim.cpp index 8080bb02..fd5e7315 100644 --- a/serialize/anim.cpp +++ b/serialize/anim.cpp @@ -18,8 +18,31 @@ namespace nlohmann { void adl_serializer<anim_frame>::to_json(json& j, const anim_frame& val) { using nlohmann::to_json; to_json(j, val); } void adl_serializer<anim_frame>::from_json(const json& j, anim_frame& val) { using nlohmann::from_json; from_json(j, val); } -void adl_serializer<anim_group>::to_json(json& j, const anim_group& val) { using nlohmann::to_json; to_json(j, val); } -void adl_serializer<anim_group>::from_json(const json& j, anim_group& val) { using nlohmann::from_json; from_json(j, val); } +void adl_serializer<anim_group>::to_json(json& j, const anim_group& val) +{ + using nlohmann::to_json; + if (!val.mirror_from.isEmpty()) + { + j["name"] = val.name; + j["mirror-from"] = val.mirror_from; + j["offset"] = val.offset; + } + else + to_json(j, val); +} + +void adl_serializer<anim_group>::from_json(const json& j, anim_group& val) +{ + using nlohmann::from_json; + if (j.contains("mirror-from")) + { + val.name = j["name"]; + val.mirror_from = j["mirror-from"]; + val.offset = j["offset"]; + } + else + from_json(j, val); +} void adl_serializer<anim_def>::to_json(json& j, const anim_def& val) { using nlohmann::to_json; to_json(j, val); } void adl_serializer<anim_def>::from_json(const json& j, anim_def& val) { using nlohmann::from_json; from_json(j, val); } |
