4#include <spdlog/spdlog.h>
5#include <spdlog/fmt/ostr.h>
49enum class CustomType {
50 CUSTOM_MACHINE_DEFAULT,
51 CUSTOM_MACHINE_EDITED,
52 CUSTOM_MACHINE_SUPER_FALCON,
53 CUSTOM_MACHINE_SUPER_STINGRAY,
54 CUSTOM_MACHINE_SUPER_CAT,
102 DECAL_TRIPLE_STRIPE_UNEVEN,
107inline std::ostream& operator<<(std::ostream& out,
const GhostType& ghostType) {
110 case GhostType::GHOST_NONE:
111 output =
"GHOST_NONE";
113 case GhostType::GHOST_PLAYER:
114 output =
"GHOST_PLAYER";
116 case GhostType::GHOST_STAFF:
117 output =
"GHOST_STAFF";
119 case GhostType::GHOST_CELEBRITY:
120 output =
"GHOST_CELEBRITY";
122 case GhostType::GHOST_CHAMP:
123 output =
"GHOST_CHAMP";
126 return out << output;
129inline std::ostream& operator<<(std::ostream& out,
const Character& character) {
132 case Character::CAPTAIN_FALCON:
133 output =
"CAPTAIN_FALCON";
135 case Character::DR_STEWART:
136 output =
"DR_STEWART";
138 case Character::PICO:
141 case Character::SAMURAI_GOROH:
142 output =
"SAMURAI_GOROH";
144 case Character::JODY_SUMMER:
145 output =
"JODY_SUMMER";
147 case Character::MIGHTY_GAZELLE:
148 output =
"MIGHTY_GAZELLE";
150 case Character::MR_EAD:
153 case Character::BABA:
156 case Character::OCTOMAN:
159 case Character::GOMAR_AND_SHIOH:
160 output =
"GOMAR_AND_SHIOH";
162 case Character::KATE_ALEN:
163 output =
"KATE_ALEN";
165 case Character::ROGER_BUSTER:
166 output =
"ROGER_BUSTER";
168 case Character::JAMES_MCCLOUD:
169 output =
"JAMES_MCCLOUD";
171 case Character::LEON:
174 case Character::ANTONIO_GUSTER:
175 output =
"ANTONIO_GUSTER";
177 case Character::BLACK_SHADOW:
178 output =
"BLACK_SHADOW";
180 case Character::MICHAEL_CHAIN:
181 output =
"MICHAEL_CHAIN";
183 case Character::JACK_LEVIN:
184 output =
"JACK_LEVIN";
186 case Character::SUPER_ARROW:
187 output =
"SUPER_ARROW";
189 case Character::MRS_ARROW:
190 output =
"MRS_ARROW";
192 case Character::JOHN_TANAKA:
193 output =
"JOHN_TANAKA";
195 case Character::BEASTMAN:
198 case Character::ZODA:
201 case Character::DR_CLASH:
204 case Character::SILVER_NEELSEN:
205 output =
"SILVER_NEELSEN";
207 case Character::BIO_REX:
210 case Character::DRAQ:
213 case Character::BILLY:
216 case Character::THE_SKULL:
217 output =
"THE_SKULL";
219 case Character::BLOOD_FALCON:
220 output =
"BLOOD_FALCON";
223 return out << output;
226inline std::ostream& operator<<(std::ostream& out,
const CustomType& customType) {
228 switch (customType) {
229 case CustomType::CUSTOM_MACHINE_DEFAULT:
230 output =
"CUSTOM_MACHINE_DEFAULT";
232 case CustomType::CUSTOM_MACHINE_EDITED:
233 output =
"CUSTOM_MACHINE_EDITED";
235 case CustomType::CUSTOM_MACHINE_SUPER_FALCON:
236 output =
"CUSTOM_MACHINE_SUPER_FALCON";
238 case CustomType::CUSTOM_MACHINE_SUPER_STINGRAY:
239 output =
"CUSTOM_MACHINE_SUPER_STINGRAY";
241 case CustomType::CUSTOM_MACHINE_SUPER_CAT:
242 output =
"CUSTOM_MACHINE_SUPER_CAT";
245 return out << output;
248inline std::ostream& operator<<(std::ostream& out,
const FrontType& frontType) {
251 case FrontType::FRONT_0:
254 case FrontType::FRONT_1:
257 case FrontType::FRONT_2:
260 case FrontType::FRONT_3:
263 case FrontType::FRONT_4:
266 case FrontType::FRONT_5:
269 case FrontType::FRONT_6:
273 return out << output;
276inline std::ostream& operator<<(std::ostream& out,
const RearType rearType) {
279 case RearType::REAR_0:
282 case RearType::REAR_1:
285 case RearType::REAR_2:
288 case RearType::REAR_3:
291 case RearType::REAR_4:
294 case RearType::REAR_5:
297 case RearType::REAR_6:
301 return out << output;
304inline std::ostream& operator<<(std::ostream& out,
const WingType& wingType) {
307 case WingType::WING_NONE:
308 output =
"WING_NONE";
310 case WingType::WING_1:
313 case WingType::WING_2:
316 case WingType::WING_3:
319 case WingType::WING_4:
322 case WingType::WING_5:
325 case WingType::WING_6:
329 return out << output;
332inline std::ostream& operator<<(std::ostream& out,
const Logo& logo) {
335 case Logo::LOGO_SHIELD:
336 output =
"LOGO_SHIELD";
338 case Logo::LOGO_ARROW_PLANE:
339 output =
"LOGO_ARROW_PLANE";
341 case Logo::LOGO_CIRCLE:
342 output =
"LOGO_CIRCLE";
344 case Logo::LOGO_SKULL:
345 output =
"LOGO_SKULL";
347 case Logo::LOGO_YELLOW_GREEN:
348 output =
"LOGO_YELLOW_GREEN";
350 case Logo::LOGO_KANJI:
351 output =
"LOGO_KANJI";
360 return out << output;
363inline std::ostream& operator<<(std::ostream& out,
const Decal& decal) {
366 case Decal::DECAL_STRIPE:
367 output =
"DECAL_STRIPE";
369 case Decal::DECAL_THIN_STRIPE:
370 output =
"DECAL_THIN_STRIPE";
372 case Decal::DECAL_DOUBLE_STRIPE:
373 output =
"DECAL_DOUBLE_STRIPE";
375 case Decal::DECAL_TRIPLE_STRIPE_UNEVEN:
376 output =
"DECAL_TRIPLE_STRIPE_UNEVEN";
378 case Decal::DECAL_BLOCK:
379 output =
"DECAL_BLOCK";
382 return out << output;