/*
* 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 .
*/
#include "MovementDefines.h"
#include "Define.h"
#include "SmartEnum.h"
#include
namespace Trinity::Impl::EnumUtilsImpl
{
/*******************************************************************************\
|* data for enum 'MovementGeneratorType' in 'MovementDefines.h' auto-generated *|
\*******************************************************************************/
template <>
TC_API_EXPORT EnumText EnumUtils::ToString(MovementGeneratorType value)
{
switch (value)
{
case IDLE_MOTION_TYPE: return { "IDLE_MOTION_TYPE", "IDLE_MOTION_TYPE", "IdleMovementGenerator.h" };
case RANDOM_MOTION_TYPE: return { "RANDOM_MOTION_TYPE", "RANDOM_MOTION_TYPE", "RandomMovementGenerator.h" };
case WAYPOINT_MOTION_TYPE: return { "WAYPOINT_MOTION_TYPE", "WAYPOINT_MOTION_TYPE", "WaypointMovementGenerator.h" };
case MAX_DB_MOTION_TYPE: return { "MAX_DB_MOTION_TYPE", "MAX_DB_MOTION_TYPE", "Below motion types can't be set in DB." };
case CONFUSED_MOTION_TYPE: return { "CONFUSED_MOTION_TYPE", "CONFUSED_MOTION_TYPE", "ConfusedMovementGenerator.h" };
case CHASE_MOTION_TYPE: return { "CHASE_MOTION_TYPE", "CHASE_MOTION_TYPE", "ChaseMovementGenerator.h" };
case HOME_MOTION_TYPE: return { "HOME_MOTION_TYPE", "HOME_MOTION_TYPE", "HomeMovementGenerator.h" };
case FLIGHT_MOTION_TYPE: return { "FLIGHT_MOTION_TYPE", "FLIGHT_MOTION_TYPE", "FlightPathMovementGenerator.h" };
case POINT_MOTION_TYPE: return { "POINT_MOTION_TYPE", "POINT_MOTION_TYPE", "PointMovementGenerator.h" };
case FLEEING_MOTION_TYPE: return { "FLEEING_MOTION_TYPE", "FLEEING_MOTION_TYPE", "FleeingMovementGenerator.h" };
case DISTRACT_MOTION_TYPE: return { "DISTRACT_MOTION_TYPE", "DISTRACT_MOTION_TYPE", "IdleMovementGenerator.h" };
case ASSISTANCE_MOTION_TYPE: return { "ASSISTANCE_MOTION_TYPE", "ASSISTANCE_MOTION_TYPE", "PointMovementGenerator.h" };
case ASSISTANCE_DISTRACT_MOTION_TYPE: return { "ASSISTANCE_DISTRACT_MOTION_TYPE", "ASSISTANCE_DISTRACT_MOTION_TYPE", "IdleMovementGenerator.h" };
case TIMED_FLEEING_MOTION_TYPE: return { "TIMED_FLEEING_MOTION_TYPE", "TIMED_FLEEING_MOTION_TYPE", "FleeingMovementGenerator.h" };
case FOLLOW_MOTION_TYPE: return { "FOLLOW_MOTION_TYPE", "FOLLOW_MOTION_TYPE", "FollowMovementGenerator.h" };
case ROTATE_MOTION_TYPE: return { "ROTATE_MOTION_TYPE", "ROTATE_MOTION_TYPE", "IdleMovementGenerator.h" };
case EFFECT_MOTION_TYPE: return { "EFFECT_MOTION_TYPE", "EFFECT_MOTION_TYPE", "" };
case SPLINE_CHAIN_MOTION_TYPE: return { "SPLINE_CHAIN_MOTION_TYPE", "SPLINE_CHAIN_MOTION_TYPE", "SplineChainMovementGenerator.h" };
case FORMATION_MOTION_TYPE: return { "FORMATION_MOTION_TYPE", "FORMATION_MOTION_TYPE", "FormationMovementGenerator.h" };
default: throw std::out_of_range("value");
}
}
template <>
TC_API_EXPORT size_t EnumUtils::Count() { return 19; }
template <>
TC_API_EXPORT MovementGeneratorType EnumUtils::FromIndex(size_t index)
{
switch (index)
{
case 0: return IDLE_MOTION_TYPE;
case 1: return RANDOM_MOTION_TYPE;
case 2: return WAYPOINT_MOTION_TYPE;
case 3: return MAX_DB_MOTION_TYPE;
case 4: return CONFUSED_MOTION_TYPE;
case 5: return CHASE_MOTION_TYPE;
case 6: return HOME_MOTION_TYPE;
case 7: return FLIGHT_MOTION_TYPE;
case 8: return POINT_MOTION_TYPE;
case 9: return FLEEING_MOTION_TYPE;
case 10: return DISTRACT_MOTION_TYPE;
case 11: return ASSISTANCE_MOTION_TYPE;
case 12: return ASSISTANCE_DISTRACT_MOTION_TYPE;
case 13: return TIMED_FLEEING_MOTION_TYPE;
case 14: return FOLLOW_MOTION_TYPE;
case 15: return ROTATE_MOTION_TYPE;
case 16: return EFFECT_MOTION_TYPE;
case 17: return SPLINE_CHAIN_MOTION_TYPE;
case 18: return FORMATION_MOTION_TYPE;
default: throw std::out_of_range("index");
}
}
template <>
TC_API_EXPORT size_t EnumUtils::ToIndex(MovementGeneratorType value)
{
switch (value)
{
case IDLE_MOTION_TYPE: return 0;
case RANDOM_MOTION_TYPE: return 1;
case WAYPOINT_MOTION_TYPE: return 2;
case MAX_DB_MOTION_TYPE: return 3;
case CONFUSED_MOTION_TYPE: return 4;
case CHASE_MOTION_TYPE: return 5;
case HOME_MOTION_TYPE: return 6;
case FLIGHT_MOTION_TYPE: return 7;
case POINT_MOTION_TYPE: return 8;
case FLEEING_MOTION_TYPE: return 9;
case DISTRACT_MOTION_TYPE: return 10;
case ASSISTANCE_MOTION_TYPE: return 11;
case ASSISTANCE_DISTRACT_MOTION_TYPE: return 12;
case TIMED_FLEEING_MOTION_TYPE: return 13;
case FOLLOW_MOTION_TYPE: return 14;
case ROTATE_MOTION_TYPE: return 15;
case EFFECT_MOTION_TYPE: return 16;
case SPLINE_CHAIN_MOTION_TYPE: return 17;
case FORMATION_MOTION_TYPE: return 18;
default: throw std::out_of_range("value");
}
}
}