summaryrefslogtreecommitdiffhomepage
path: root/serialize/anim.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-10-05 15:47:29 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-10-05 15:47:29 +0200
commit6731ab0243ba437595062558e56b800d5eca9cf5 (patch)
tree39025a8ca381ff6f71cbe316c7d72b32f506a9bf /serialize/anim.cpp
parent2c26d57dc97eb7105a6dca2089fd42847a8c2b37 (diff)
a
Diffstat (limited to 'serialize/anim.cpp')
-rw-r--r--serialize/anim.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/serialize/anim.cpp b/serialize/anim.cpp
new file mode 100644
index 00000000..c65c24a6
--- /dev/null
+++ b/serialize/anim.cpp
@@ -0,0 +1,36 @@
+#include "serialize/vector.hpp"
+#include "serialize/helper.hpp"
+#include "serialize/anim.hpp"
+
+#include <tuple>
+#include <filesystem>
+#include <Corrade/Utility/Debug.h>
+#include <Corrade/Utility/DebugStl.h>
+
+namespace Magnum::Examples::Serialize {
+
+#if defined __clang__ || defined __CLION_IDE__
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wweak-vtables"
+# pragma clang diagnostic ignored "-Wcovered-switch-default"
+#endif
+
+NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(anim_frame, ground, offset, size)
+NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(anim_group, name, frames, ground)
+NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(anim, name, nframes, actionframe, fps, groups, width, height)
+
+#if defined __clang__ || defined __CLION_IDE__
+# pragma clang diagnostic pop
+#endif
+
+std::tuple<anim, bool> anim::from_json(const std::filesystem::path& pathname) noexcept
+{
+ return json_helper<anim>::from_json(pathname);
+}
+
+bool anim::to_json(const std::filesystem::path& pathname) const noexcept
+{
+ return json_helper<anim>::to_json(*this, pathname);
+}
+
+} // namespace Magnum::Examples::Serialize