/*
* 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 "MoveSplineFlag.h"
#include "Define.h"
#include "SmartEnum.h"
#include
using Movement::MoveSplineFlagEnum;
namespace Trinity::Impl::EnumUtilsImpl
{
/***************************************************************************\
|* data for enum 'MoveSplineFlagEnum' in 'MoveSplineFlag.h' auto-generated *|
\***************************************************************************/
template <>
TC_API_EXPORT EnumText EnumUtils::ToString(MoveSplineFlagEnum value)
{
switch (value)
{
case MoveSplineFlagEnum::None: return { "None", "None", "" };
case MoveSplineFlagEnum::Unknown_0x1: return { "Unknown_0x1", "Unknown_0x1", "NOT VERIFIED" };
case MoveSplineFlagEnum::Unknown_0x2: return { "Unknown_0x2", "Unknown_0x2", "NOT VERIFIED" };
case MoveSplineFlagEnum::Unknown_0x4: return { "Unknown_0x4", "Unknown_0x4", "NOT VERIFIED" };
case MoveSplineFlagEnum::JumpOrientationFixed: return { "JumpOrientationFixed", "JumpOrientationFixed", "Model orientation fixed (jump animation)" };
case MoveSplineFlagEnum::FallingSlow: return { "FallingSlow", "FallingSlow", "" };
case MoveSplineFlagEnum::Done: return { "Done", "Done", "" };
case MoveSplineFlagEnum::Falling: return { "Falling", "Falling", "Affects elevation computation, can't be combined with Parabolic flag" };
case MoveSplineFlagEnum::No_Spline: return { "No_Spline", "No_Spline", "" };
case MoveSplineFlagEnum::Unknown_0x100: return { "Unknown_0x100", "Unknown_0x100", "NOT VERIFIED" };
case MoveSplineFlagEnum::Flying: return { "Flying", "Flying", "Smooth movement(Catmullrom interpolation mode), flying animation" };
case MoveSplineFlagEnum::OrientationFixed: return { "OrientationFixed", "OrientationFixed", "Model orientation fixed (knockback animation)" };
case MoveSplineFlagEnum::Catmullrom: return { "Catmullrom", "Catmullrom", "Used Catmullrom interpolation mode" };
case MoveSplineFlagEnum::Cyclic: return { "Cyclic", "Cyclic", "Movement by cycled spline" };
case MoveSplineFlagEnum::Enter_Cycle: return { "Enter_Cycle", "Enter_Cycle", "Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done" };
case MoveSplineFlagEnum::Turning: return { "Turning", "Turning", "Turns in place" };
case MoveSplineFlagEnum::TransportEnter: return { "TransportEnter", "TransportEnter", "" };
case MoveSplineFlagEnum::TransportExit: return { "TransportExit", "TransportExit", "" };
case MoveSplineFlagEnum::Unknown_0x20000: return { "Unknown_0x20000", "Unknown_0x20000", "NOT VERIFIED" };
case MoveSplineFlagEnum::Unknown_0x40000: return { "Unknown_0x40000", "Unknown_0x40000", "NOT VERIFIED" };
case MoveSplineFlagEnum::Backward: return { "Backward", "Backward", "" };
case MoveSplineFlagEnum::SmoothGroundPath: return { "SmoothGroundPath", "SmoothGroundPath", "" };
case MoveSplineFlagEnum::CanSwim: return { "CanSwim", "CanSwim", "" };
case MoveSplineFlagEnum::UncompressedPath: return { "UncompressedPath", "UncompressedPath", "" };
case MoveSplineFlagEnum::Unknown_0x800000: return { "Unknown_0x800000", "Unknown_0x800000", "NOT VERIFIED" };
case MoveSplineFlagEnum::FastSteering: return { "FastSteering", "FastSteering", "Predicts spline only 500ms into the future for smoothing instead of 1s (making turns sharper) and turns off clientside obstacle detection" };
case MoveSplineFlagEnum::Animation: return { "Animation", "Animation", "Plays animation after some time passed" };
case MoveSplineFlagEnum::Parabolic: return { "Parabolic", "Parabolic", "Affects elevation computation, can't be combined with Falling flag" };
case MoveSplineFlagEnum::FadeObject: return { "FadeObject", "FadeObject", "" };
case MoveSplineFlagEnum::Steering: return { "Steering", "Steering", "" };
case MoveSplineFlagEnum::UnlimitedSpeed: return { "UnlimitedSpeed", "UnlimitedSpeed", "" };
case MoveSplineFlagEnum::Unknown_0x40000000: return { "Unknown_0x40000000", "Unknown_0x40000000", "NOT VERIFIED" };
case MoveSplineFlagEnum::Unknown_0x80000000: return { "Unknown_0x80000000", "Unknown_0x80000000", "NOT VERIFIED" };
default: throw std::out_of_range("value");
}
}
template <>
TC_API_EXPORT size_t EnumUtils::Count() { return 33; }
template <>
TC_API_EXPORT MoveSplineFlagEnum EnumUtils::FromIndex(size_t index)
{
switch (index)
{
case 0: return MoveSplineFlagEnum::None;
case 1: return MoveSplineFlagEnum::Unknown_0x1;
case 2: return MoveSplineFlagEnum::Unknown_0x2;
case 3: return MoveSplineFlagEnum::Unknown_0x4;
case 4: return MoveSplineFlagEnum::JumpOrientationFixed;
case 5: return MoveSplineFlagEnum::FallingSlow;
case 6: return MoveSplineFlagEnum::Done;
case 7: return MoveSplineFlagEnum::Falling;
case 8: return MoveSplineFlagEnum::No_Spline;
case 9: return MoveSplineFlagEnum::Unknown_0x100;
case 10: return MoveSplineFlagEnum::Flying;
case 11: return MoveSplineFlagEnum::OrientationFixed;
case 12: return MoveSplineFlagEnum::Catmullrom;
case 13: return MoveSplineFlagEnum::Cyclic;
case 14: return MoveSplineFlagEnum::Enter_Cycle;
case 15: return MoveSplineFlagEnum::Turning;
case 16: return MoveSplineFlagEnum::TransportEnter;
case 17: return MoveSplineFlagEnum::TransportExit;
case 18: return MoveSplineFlagEnum::Unknown_0x20000;
case 19: return MoveSplineFlagEnum::Unknown_0x40000;
case 20: return MoveSplineFlagEnum::Backward;
case 21: return MoveSplineFlagEnum::SmoothGroundPath;
case 22: return MoveSplineFlagEnum::CanSwim;
case 23: return MoveSplineFlagEnum::UncompressedPath;
case 24: return MoveSplineFlagEnum::Unknown_0x800000;
case 25: return MoveSplineFlagEnum::FastSteering;
case 26: return MoveSplineFlagEnum::Animation;
case 27: return MoveSplineFlagEnum::Parabolic;
case 28: return MoveSplineFlagEnum::FadeObject;
case 29: return MoveSplineFlagEnum::Steering;
case 30: return MoveSplineFlagEnum::UnlimitedSpeed;
case 31: return MoveSplineFlagEnum::Unknown_0x40000000;
case 32: return MoveSplineFlagEnum::Unknown_0x80000000;
default: throw std::out_of_range("index");
}
}
template <>
TC_API_EXPORT size_t EnumUtils::ToIndex(MoveSplineFlagEnum value)
{
switch (value)
{
case MoveSplineFlagEnum::None: return 0;
case MoveSplineFlagEnum::Unknown_0x1: return 1;
case MoveSplineFlagEnum::Unknown_0x2: return 2;
case MoveSplineFlagEnum::Unknown_0x4: return 3;
case MoveSplineFlagEnum::JumpOrientationFixed: return 4;
case MoveSplineFlagEnum::FallingSlow: return 5;
case MoveSplineFlagEnum::Done: return 6;
case MoveSplineFlagEnum::Falling: return 7;
case MoveSplineFlagEnum::No_Spline: return 8;
case MoveSplineFlagEnum::Unknown_0x100: return 9;
case MoveSplineFlagEnum::Flying: return 10;
case MoveSplineFlagEnum::OrientationFixed: return 11;
case MoveSplineFlagEnum::Catmullrom: return 12;
case MoveSplineFlagEnum::Cyclic: return 13;
case MoveSplineFlagEnum::Enter_Cycle: return 14;
case MoveSplineFlagEnum::Turning: return 15;
case MoveSplineFlagEnum::TransportEnter: return 16;
case MoveSplineFlagEnum::TransportExit: return 17;
case MoveSplineFlagEnum::Unknown_0x20000: return 18;
case MoveSplineFlagEnum::Unknown_0x40000: return 19;
case MoveSplineFlagEnum::Backward: return 20;
case MoveSplineFlagEnum::SmoothGroundPath: return 21;
case MoveSplineFlagEnum::CanSwim: return 22;
case MoveSplineFlagEnum::UncompressedPath: return 23;
case MoveSplineFlagEnum::Unknown_0x800000: return 24;
case MoveSplineFlagEnum::FastSteering: return 25;
case MoveSplineFlagEnum::Animation: return 26;
case MoveSplineFlagEnum::Parabolic: return 27;
case MoveSplineFlagEnum::FadeObject: return 28;
case MoveSplineFlagEnum::Steering: return 29;
case MoveSplineFlagEnum::UnlimitedSpeed: return 30;
case MoveSplineFlagEnum::Unknown_0x40000000: return 31;
case MoveSplineFlagEnum::Unknown_0x80000000: return 32;
default: throw std::out_of_range("value");
}
}
}