diff options
| author | Peter Keresztes Schmidt <carbenium@outlook.com> | 2020-08-20 00:46:52 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-03 00:18:48 +0100 |
| commit | 3c82863c528fa9ea1bd5eb75fa596a99266431b7 (patch) | |
| tree | 7434bb682d3ff216357055500947c5a1fb8237f6 /src/server/game/Instances | |
| parent | 3ba767c438f2def1d619eda34c6b843c29ebc518 (diff) | |
Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285)
(cherry picked from commit 4286e7aa02e777268b25d8a5bcc1ee87f7b16c4d)
Diffstat (limited to 'src/server/game/Instances')
| -rw-r--r-- | src/server/game/Instances/InstanceScript.h | 1 | ||||
| -rw-r--r-- | src/server/game/Instances/enuminfo_InstanceScript.cpp | 76 |
2 files changed, 77 insertions, 0 deletions
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 985101779be..47294cf43d0 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -66,6 +66,7 @@ enum EncounterFrameType ENCOUNTER_FRAME_ADD_COMBAT_RES_LIMIT = 10 }; +// EnumUtils: DESCRIBE THIS enum EncounterState { NOT_STARTED = 0, diff --git a/src/server/game/Instances/enuminfo_InstanceScript.cpp b/src/server/game/Instances/enuminfo_InstanceScript.cpp new file mode 100644 index 00000000000..7fcbc5d3036 --- /dev/null +++ b/src/server/game/Instances/enuminfo_InstanceScript.cpp @@ -0,0 +1,76 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "InstanceScript.h" +#include "Define.h" +#include "SmartEnum.h" +#include <stdexcept> + +namespace Trinity::Impl +{ + +/***********************************************************************\ +|* data for enum 'EncounterState' in 'InstanceScript.h' auto-generated *| +\***********************************************************************/ +template <> +TC_API_EXPORT EnumText EnumUtils<EncounterState>::ToString(EncounterState value) +{ + switch (value) + { + case NOT_STARTED: return { "NOT_STARTED", "NOT_STARTED", "" }; + case IN_PROGRESS: return { "IN_PROGRESS", "IN_PROGRESS", "" }; + case FAIL: return { "FAIL", "FAIL", "" }; + case DONE: return { "DONE", "DONE", "" }; + case SPECIAL: return { "SPECIAL", "SPECIAL", "" }; + case TO_BE_DECIDED: return { "TO_BE_DECIDED", "TO_BE_DECIDED", "" }; + default: throw std::out_of_range("value"); + } +} + +template <> +TC_API_EXPORT size_t EnumUtils<EncounterState>::Count() { return 6; } + +template <> +TC_API_EXPORT EncounterState EnumUtils<EncounterState>::FromIndex(size_t index) +{ + switch (index) + { + case 0: return NOT_STARTED; + case 1: return IN_PROGRESS; + case 2: return FAIL; + case 3: return DONE; + case 4: return SPECIAL; + case 5: return TO_BE_DECIDED; + default: throw std::out_of_range("index"); + } +} + +template <> +TC_API_EXPORT size_t EnumUtils<EncounterState>::ToIndex(EncounterState value) +{ + switch (value) + { + case NOT_STARTED: return 0; + case IN_PROGRESS: return 1; + case FAIL: return 2; + case DONE: return 3; + case SPECIAL: return 4; + case TO_BE_DECIDED: return 5; + default: throw std::out_of_range("value"); + } +} +} |
