From 3c82863c528fa9ea1bd5eb75fa596a99266431b7 Mon Sep 17 00:00:00 2001 From: Peter Keresztes Schmidt Date: Thu, 20 Aug 2020 00:46:52 +0200 Subject: Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285) (cherry picked from commit 4286e7aa02e777268b25d8a5bcc1ee87f7b16c4d) --- src/server/game/Maps/enuminfo_SpawnData.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/server/game/Maps') diff --git a/src/server/game/Maps/enuminfo_SpawnData.cpp b/src/server/game/Maps/enuminfo_SpawnData.cpp index f999952efc0..b2731b57109 100644 --- a/src/server/game/Maps/enuminfo_SpawnData.cpp +++ b/src/server/game/Maps/enuminfo_SpawnData.cpp @@ -20,9 +20,7 @@ #include "SmartEnum.h" #include -namespace Trinity -{ -namespace Impl +namespace Trinity::Impl { /*******************************************************************\ @@ -54,5 +52,16 @@ TC_API_EXPORT SpawnObjectType EnumUtils::FromIndex(size_t index default: throw std::out_of_range("index"); } } + +template <> +TC_API_EXPORT size_t EnumUtils::ToIndex(SpawnObjectType value) +{ + switch (value) + { + case SPAWN_TYPE_CREATURE: return 0; + case SPAWN_TYPE_GAMEOBJECT: return 1; + case SPAWN_TYPE_AREATRIGGER: return 2; + default: throw std::out_of_range("value"); + } } } -- cgit v1.2.3