diff options
Diffstat (limited to 'loader/vobj.cpp')
-rw-r--r-- | loader/vobj.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/loader/vobj.cpp b/loader/vobj.cpp index db277410..ca6a2e63 100644 --- a/loader/vobj.cpp +++ b/loader/vobj.cpp @@ -16,9 +16,17 @@ struct vobj { }; } // namespace floormat::loader_detail +namespace nlohmann { + using floormat::loader_detail::vobj; -void nlohmann::adl_serializer<vobj>::to_json(json& j, const vobj& val) +template<> +struct adl_serializer<vobj> { + static void to_json(json& j, const vobj& val); + static void from_json(const json& j, vobj& val); +}; + +void adl_serializer<vobj>::to_json(json& j, const vobj& val) { j["name"] = val.name; if (val.descr) @@ -26,7 +34,7 @@ void nlohmann::adl_serializer<vobj>::to_json(json& j, const vobj& val) j["image"] = val.image_filename; } -void nlohmann::adl_serializer<vobj>::from_json(const json& j, vobj& val) +void adl_serializer<vobj>::from_json(const json& j, vobj& val) { val.name = j["name"]; if (j.contains("description")) @@ -36,6 +44,8 @@ void nlohmann::adl_serializer<vobj>::from_json(const json& j, vobj& val) val.image_filename = j["image"]; } +} // namespace nlohmann + namespace floormat::loader_detail { std::shared_ptr<class anim_atlas> loader_impl::make_vobj_anim_atlas(StringView name, StringView image_filename) |