48[[nodiscard]]
inline std::optional<AnimKeyFrameResolutionStrategy>
55 if (str ==
"warning") {
58 if (str ==
"mangle") {
63 std::string lower_str = str;
64 std::ranges::transform(
65 lower_str, lower_str.begin(), [](
unsigned char c) { return static_cast<char>(std::tolower(c)); });
68 if (lower_str ==
"error") {
71 if (lower_str ==
"err") {
75 if (lower_str ==
"warning") {
78 if (lower_str ==
"warn") {
82 if (lower_str ==
"mangle") {
107 panic(
"unhandled AnimKeyFrameResolutionStrategy value");
123struct std::formatter<
porytiles::AnimKeyFrameResolutionStrategy> {
124 constexpr auto parse(std::format_parse_context &ctx)
void panic(const StringViewSourceLoc &s)
Unconditionally terminates the program with a panic message.
std::ostream & operator<<(std::ostream &os, const PrimaryPairingMode m)
Stream insertion operator for PrimaryPairingMode.
AnimKeyFrameResolutionStrategy
Strategy for handling duplicate key frame tiles in animation decompilation.
@ warning
Emit a warning and continue decompilation.
@ mangle
Mangle duplicate tiles to make them unique, then backport changes to tiles.png.
@ error
Emit a formatted error and fail decompilation.
std::string to_string(const PrimaryPairingMode m)
Converts a PrimaryPairingMode to its canonical string representation.
std::optional< AnimKeyFrameResolutionStrategy > anim_key_frame_resolution_strategy_from_str(const std::string &str)
Parses a string into a AnimKeyFrameResolutionStrategy with fuzzy matching.