diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-12 08:40:08 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-12 09:57:16 +0100 |
commit | a6af5d7b0cdb037bf8d0fd99aedfedc9789fd74c (patch) | |
tree | 6664758f61d0bee67ba64f231a6ec2e6b4dd72ac /serialize | |
parent | 7434d29f3ce0033194b53b44ed881f749e67da75 (diff) |
add offset to anim_group rotations
Diffstat (limited to 'serialize')
-rw-r--r-- | serialize/anim.cpp | 12 | ||||
-rw-r--r-- | serialize/anim.hpp | 56 |
2 files changed, 16 insertions, 52 deletions
diff --git a/serialize/anim.cpp b/serialize/anim.cpp index b6882f1d..d59c7194 100644 --- a/serialize/anim.cpp +++ b/serialize/anim.cpp @@ -2,15 +2,15 @@ #include "serialize/corrade-string.hpp" #include "serialize/anim.hpp" -namespace floormat::Serialize { +namespace floormat { 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, object_name, anim_name, pixel_size, nframes, actionframe, fps, groups, width, height) +NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(anim_group, name, frames, ground, offset) +NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(anim_def, object_name, anim_name, pixel_size, nframes, actionframe, fps, groups, width, height) } // namespace floormat::Serialize -using namespace floormat::Serialize; +using namespace floormat; namespace nlohmann { @@ -20,7 +20,7 @@ void adl_serializer<anim_frame>::from_json(const json& j, anim_frame& val) { usi 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>::to_json(json& j, const anim& val) { using nlohmann::to_json; to_json(j, val); } -void adl_serializer<anim>::from_json(const json& j, anim& val) { using nlohmann::from_json; 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); } } // namespace nlohmann diff --git a/serialize/anim.hpp b/serialize/anim.hpp index 9d6db66c..48d97451 100644 --- a/serialize/anim.hpp +++ b/serialize/anim.hpp @@ -1,62 +1,26 @@ #pragma once -#include <vector> -#include <Corrade/Containers/String.h> -#include <Magnum/Magnum.h> -#include <Magnum/Math/Vector2.h> +#include "src/anim.hpp" #include <nlohmann/json_fwd.hpp> -namespace floormat::Serialize { - -struct anim_frame final -{ - Vector2i ground; - Vector2ui offset, size; -}; - -enum class anim_direction : unsigned char -{ - N, NE, E, SE, S, SW, W, NW, - COUNT, -}; - -struct anim_group final -{ - String name; - std::vector<anim_frame> frames; - Vector2ui ground; -}; - -struct anim final -{ - static constexpr int default_fps = 24; - - String object_name, anim_name; - std::vector<anim_group> groups; - Vector2ui pixel_size; - std::size_t nframes = 0, width = 0, height = 0, fps = default_fps, actionframe = 0; -}; - -} // namespace floormat::Serialize - namespace nlohmann { template<> -struct adl_serializer<floormat::Serialize::anim_frame> { - static void to_json(json& j, const floormat::Serialize::anim_frame& val); - static void from_json(const json& j, floormat::Serialize::anim_frame& val); +struct adl_serializer<floormat::anim_frame> { + static void to_json(json& j, const floormat::anim_frame& val); + static void from_json(const json& j, floormat::anim_frame& val); }; template<> -struct adl_serializer<floormat::Serialize::anim_group> { - static void to_json(json& j, const floormat::Serialize::anim_group& val); - static void from_json(const json& j, floormat::Serialize::anim_group& val); +struct adl_serializer<floormat::anim_group> { + static void to_json(json& j, const floormat::anim_group& val); + static void from_json(const json& j, floormat::anim_group& val); }; template<> -struct adl_serializer<floormat::Serialize::anim> { - static void to_json(json& j, const floormat::Serialize::anim& val); - static void from_json(const json& j, floormat::Serialize::anim& val); +struct adl_serializer<floormat::anim_def> { + static void to_json(json& j, const floormat::anim_def& val); + static void from_json(const json& j, floormat::anim_def& val); }; } // namespace nlohmann |