1 /* !!!! GENERATED FILE - DO NOT EDIT !!!!
2  * --------------------------------------
3  *
4  * This file is part of liblcf. Copyright (c) 2021 liblcf authors.
5  * https://github.com/EasyRPG/liblcf - https://easyrpg.org
6  *
7  * liblcf is Free/Libre Open Source Software, released under the MIT License.
8  * For the full copyright and license information, please view the COPYING
9  * file that was distributed with this source code.
10  */
11 
12 #ifndef LCF_RPG_BATTLERANIMATIONITEMSKILL_H
13 #define LCF_RPG_BATTLERANIMATIONITEMSKILL_H
14 
15 // Headers
16 #include <stdint.h>
17 #include "lcf/enum_tags.h"
18 #include "lcf/context.h"
19 #include <ostream>
20 #include <type_traits>
21 
22 /**
23  * rpg::BattlerAnimationItemSkill class.
24  */
25 namespace lcf {
26 namespace rpg {
27 	class BattlerAnimationItemSkill {
28 	public:
29 		enum Speed {
30 			Speed_fast = 0,
31 			Speed_medium = 1,
32 			Speed_slow = 2
33 		};
34 		static constexpr auto kSpeedTags = lcf::makeEnumTags<Speed>(
35 			"fast",
36 			"medium",
37 			"slow"
38 		);
39 		enum AnimType {
40 			AnimType_weapon = 0,
41 			AnimType_battle = 1
42 		};
43 		static constexpr auto kAnimTypeTags = lcf::makeEnumTags<AnimType>(
44 			"weapon",
45 			"battle"
46 		);
47 		enum Movement {
48 			Movement_none = 0,
49 			Movement_step = 1,
50 			Movement_jump = 2,
51 			Movement_move = 3
52 		};
53 		static constexpr auto kMovementTags = lcf::makeEnumTags<Movement>(
54 			"none",
55 			"step",
56 			"jump",
57 			"move"
58 		);
59 		enum Afterimage {
60 			Afterimage_none = 0,
61 			Afterimage_add = 1
62 		};
63 		static constexpr auto kAfterimageTags = lcf::makeEnumTags<Afterimage>(
64 			"none",
65 			"add"
66 		);
67 
68 		int ID = 0;
69 		int32_t unknown02 = 0;
70 		int32_t type = 0;
71 		int32_t weapon_animation_id = 0;
72 		int32_t movement = 0;
73 		int32_t after_image = 0;
74 		int32_t attacks = 0;
75 		bool ranged = false;
76 		int32_t ranged_animation_id = 0;
77 		int32_t ranged_speed = 0;
78 		int32_t battle_animation_id = 1;
79 		int32_t pose = 3;
80 	};
81 	inline std::ostream& operator<<(std::ostream& os, BattlerAnimationItemSkill::Speed code) {
82 		os << static_cast<std::underlying_type_t<decltype(code)>>(code);
83 		return os;
84 	}
85 	inline std::ostream& operator<<(std::ostream& os, BattlerAnimationItemSkill::AnimType code) {
86 		os << static_cast<std::underlying_type_t<decltype(code)>>(code);
87 		return os;
88 	}
89 	inline std::ostream& operator<<(std::ostream& os, BattlerAnimationItemSkill::Movement code) {
90 		os << static_cast<std::underlying_type_t<decltype(code)>>(code);
91 		return os;
92 	}
93 	inline std::ostream& operator<<(std::ostream& os, BattlerAnimationItemSkill::Afterimage code) {
94 		os << static_cast<std::underlying_type_t<decltype(code)>>(code);
95 		return os;
96 	}
97 
98 	inline bool operator==(const BattlerAnimationItemSkill& l, const BattlerAnimationItemSkill& r) {
99 		return l.unknown02 == r.unknown02
100 		&& l.type == r.type
101 		&& l.weapon_animation_id == r.weapon_animation_id
102 		&& l.movement == r.movement
103 		&& l.after_image == r.after_image
104 		&& l.attacks == r.attacks
105 		&& l.ranged == r.ranged
106 		&& l.ranged_animation_id == r.ranged_animation_id
107 		&& l.ranged_speed == r.ranged_speed
108 		&& l.battle_animation_id == r.battle_animation_id
109 		&& l.pose == r.pose;
110 	}
111 
112 	inline bool operator!=(const BattlerAnimationItemSkill& l, const BattlerAnimationItemSkill& r) {
113 		return !(l == r);
114 	}
115 
116 	std::ostream& operator<<(std::ostream& os, const BattlerAnimationItemSkill& obj);
117 
118 	template <typename F, typename ParentCtx = Context<void,void>>
119 	void ForEachString(BattlerAnimationItemSkill& obj, const F& f, const ParentCtx* parent_ctx = nullptr) {
120 		(void)obj;
121 		(void)f;
122 		(void)parent_ctx;
123 	}
124 
125 } // namespace rpg
126 } // namespace lcf
127 
128 #endif
129