From 5bab0e43c627c949bb5fb1d7fd014855c6c02b8e Mon Sep 17 00:00:00 2001 From: Peter Keresztes Schmidt Date: Sat, 22 Aug 2020 22:28:51 +0200 Subject: Scripts/Commands: Convert argument parsing of some misc commands to new system (#25308) * Core/Shared: Make WeatherType smart * Scripts/Commands: Convert argument parsing of some misc commands to new system --- src/server/shared/enuminfo_SharedDefines.cpp | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'src/server/shared/enuminfo_SharedDefines.cpp') diff --git a/src/server/shared/enuminfo_SharedDefines.cpp b/src/server/shared/enuminfo_SharedDefines.cpp index d3a684a6bd5..ab2c52370d3 100644 --- a/src/server/shared/enuminfo_SharedDefines.cpp +++ b/src/server/shared/enuminfo_SharedDefines.cpp @@ -2063,6 +2063,57 @@ TC_API_EXPORT size_t EnumUtils::ToIndex(Emote value) } } +/*******************************************************************\ +|* data for enum 'WeatherType' in 'SharedDefines.h' auto-generated *| +\*******************************************************************/ +template <> +TC_API_EXPORT EnumText EnumUtils::ToString(WeatherType value) +{ + switch (value) + { + case WEATHER_TYPE_FINE: return { "WEATHER_TYPE_FINE", "WEATHER_TYPE_FINE", "" }; + case WEATHER_TYPE_RAIN: return { "WEATHER_TYPE_RAIN", "WEATHER_TYPE_RAIN", "" }; + case WEATHER_TYPE_SNOW: return { "WEATHER_TYPE_SNOW", "WEATHER_TYPE_SNOW", "" }; + case WEATHER_TYPE_STORM: return { "WEATHER_TYPE_STORM", "WEATHER_TYPE_STORM", "" }; + case WEATHER_TYPE_THUNDERS: return { "WEATHER_TYPE_THUNDERS", "WEATHER_TYPE_THUNDERS", "" }; + case WEATHER_TYPE_BLACKRAIN: return { "WEATHER_TYPE_BLACKRAIN", "WEATHER_TYPE_BLACKRAIN", "" }; + default: throw std::out_of_range("value"); + } +} + +template <> +TC_API_EXPORT size_t EnumUtils::Count() { return 6; } + +template <> +TC_API_EXPORT WeatherType EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return WEATHER_TYPE_FINE; + case 1: return WEATHER_TYPE_RAIN; + case 2: return WEATHER_TYPE_SNOW; + case 3: return WEATHER_TYPE_STORM; + case 4: return WEATHER_TYPE_THUNDERS; + case 5: return WEATHER_TYPE_BLACKRAIN; + default: throw std::out_of_range("index"); + } +} + +template <> +TC_API_EXPORT size_t EnumUtils::ToIndex(WeatherType value) +{ + switch (value) + { + case WEATHER_TYPE_FINE: return 0; + case WEATHER_TYPE_RAIN: return 1; + case WEATHER_TYPE_SNOW: return 2; + case WEATHER_TYPE_STORM: return 3; + case WEATHER_TYPE_THUNDERS: return 4; + case WEATHER_TYPE_BLACKRAIN: return 5; + default: throw std::out_of_range("value"); + } +} + /************************************************************************\ |* data for enum 'SpellFamilyNames' in 'SharedDefines.h' auto-generated *| \************************************************************************/ -- cgit v1.2.3