summaryrefslogtreecommitdiffhomepage
path: root/serialize/anim.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-11-25 19:37:06 +0100
committerStanislaw Halik <sthalik@misaki.pl>2022-11-25 19:37:06 +0100
commite46dd0f45d1cab35c7441d72f5dcac83720cc539 (patch)
tree1611ed041680e6dcccb115cbc7c99e098b809d33 /serialize/anim.cpp
parent1831d5d1eab5c9a607270a8a9b72a2ac1e6ce62a (diff)
add scenery horizontal mirroring
Diffstat (limited to 'serialize/anim.cpp')
-rw-r--r--serialize/anim.cpp27
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); }