aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances
diff options
context:
space:
mode:
authorPeter Keresztes Schmidt <carbenium@outlook.com>2020-08-20 00:46:52 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-03 00:18:48 +0100
commit3c82863c528fa9ea1bd5eb75fa596a99266431b7 (patch)
tree7434bb682d3ff216357055500947c5a1fb8237f6 /src/server/game/Instances
parent3ba767c438f2def1d619eda34c6b843c29ebc518 (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.h1
-rw-r--r--src/server/game/Instances/enuminfo_InstanceScript.cpp76
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");
+ }
+}
+}