TrinityCore
Loading...
Searching...
No Matches
enuminfo_MovementInfo.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "MovementInfo.h"
19#include "Define.h"
20#include "SmartEnum.h"
21#include <stdexcept>
22
24{
25
26/********************************************************************\
27|* data for enum 'MovementFlags' in 'MovementInfo.h' auto-generated *|
28\********************************************************************/
29template <>
31{
32 switch (value)
33 {
34 case MOVEMENTFLAG_FORWARD: return { "MOVEMENTFLAG_FORWARD", "MOVEMENTFLAG_FORWARD", "" };
35 case MOVEMENTFLAG_BACKWARD: return { "MOVEMENTFLAG_BACKWARD", "MOVEMENTFLAG_BACKWARD", "" };
36 case MOVEMENTFLAG_STRAFE_LEFT: return { "MOVEMENTFLAG_STRAFE_LEFT", "MOVEMENTFLAG_STRAFE_LEFT", "" };
37 case MOVEMENTFLAG_STRAFE_RIGHT: return { "MOVEMENTFLAG_STRAFE_RIGHT", "MOVEMENTFLAG_STRAFE_RIGHT", "" };
38 case MOVEMENTFLAG_LEFT: return { "MOVEMENTFLAG_LEFT", "MOVEMENTFLAG_LEFT", "" };
39 case MOVEMENTFLAG_RIGHT: return { "MOVEMENTFLAG_RIGHT", "MOVEMENTFLAG_RIGHT", "" };
40 case MOVEMENTFLAG_PITCH_UP: return { "MOVEMENTFLAG_PITCH_UP", "MOVEMENTFLAG_PITCH_UP", "" };
41 case MOVEMENTFLAG_PITCH_DOWN: return { "MOVEMENTFLAG_PITCH_DOWN", "MOVEMENTFLAG_PITCH_DOWN", "" };
42 case MOVEMENTFLAG_WALKING: return { "MOVEMENTFLAG_WALKING", "MOVEMENTFLAG_WALKING", "Walking" };
43 case MOVEMENTFLAG_DISABLE_GRAVITY: return { "MOVEMENTFLAG_DISABLE_GRAVITY", "MOVEMENTFLAG_DISABLE_GRAVITY", "Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible." };
44 case MOVEMENTFLAG_ROOT: return { "MOVEMENTFLAG_ROOT", "MOVEMENTFLAG_ROOT", "Must not be set along with MOVEMENTFLAG_MASK_MOVING" };
45 case MOVEMENTFLAG_FALLING: return { "MOVEMENTFLAG_FALLING", "MOVEMENTFLAG_FALLING", "damage dealt on that type of falling" };
46 case MOVEMENTFLAG_FALLING_FAR: return { "MOVEMENTFLAG_FALLING_FAR", "MOVEMENTFLAG_FALLING_FAR", "" };
47 case MOVEMENTFLAG_PENDING_STOP: return { "MOVEMENTFLAG_PENDING_STOP", "MOVEMENTFLAG_PENDING_STOP", "" };
48 case MOVEMENTFLAG_PENDING_STRAFE_STOP: return { "MOVEMENTFLAG_PENDING_STRAFE_STOP", "MOVEMENTFLAG_PENDING_STRAFE_STOP", "" };
49 case MOVEMENTFLAG_PENDING_FORWARD: return { "MOVEMENTFLAG_PENDING_FORWARD", "MOVEMENTFLAG_PENDING_FORWARD", "" };
50 case MOVEMENTFLAG_PENDING_BACKWARD: return { "MOVEMENTFLAG_PENDING_BACKWARD", "MOVEMENTFLAG_PENDING_BACKWARD", "" };
51 case MOVEMENTFLAG_PENDING_STRAFE_LEFT: return { "MOVEMENTFLAG_PENDING_STRAFE_LEFT", "MOVEMENTFLAG_PENDING_STRAFE_LEFT", "" };
52 case MOVEMENTFLAG_PENDING_STRAFE_RIGHT: return { "MOVEMENTFLAG_PENDING_STRAFE_RIGHT", "MOVEMENTFLAG_PENDING_STRAFE_RIGHT", "" };
53 case MOVEMENTFLAG_PENDING_ROOT: return { "MOVEMENTFLAG_PENDING_ROOT", "MOVEMENTFLAG_PENDING_ROOT", "" };
54 case MOVEMENTFLAG_SWIMMING: return { "MOVEMENTFLAG_SWIMMING", "MOVEMENTFLAG_SWIMMING", "appears with fly flag also" };
55 case MOVEMENTFLAG_ASCENDING: return { "MOVEMENTFLAG_ASCENDING", "MOVEMENTFLAG_ASCENDING", "press \042space\042 when flying" };
56 case MOVEMENTFLAG_DESCENDING: return { "MOVEMENTFLAG_DESCENDING", "MOVEMENTFLAG_DESCENDING", "" };
57 case MOVEMENTFLAG_CAN_FLY: return { "MOVEMENTFLAG_CAN_FLY", "MOVEMENTFLAG_CAN_FLY", "Appears when unit can fly. For example, appears when a player sits on a mount." };
58 case MOVEMENTFLAG_FLYING: return { "MOVEMENTFLAG_FLYING", "MOVEMENTFLAG_FLYING", "unit is actually flying. pretty sure this is only used for players. creatures use disable_gravity" };
59 case MOVEMENTFLAG_SPLINE_ELEVATION: return { "MOVEMENTFLAG_SPLINE_ELEVATION", "MOVEMENTFLAG_SPLINE_ELEVATION", "used for flight paths" };
60 case MOVEMENTFLAG_WATERWALKING: return { "MOVEMENTFLAG_WATERWALKING", "MOVEMENTFLAG_WATERWALKING", "prevent unit from falling through water" };
61 case MOVEMENTFLAG_FALLING_SLOW: return { "MOVEMENTFLAG_FALLING_SLOW", "MOVEMENTFLAG_FALLING_SLOW", "active rogue safe fall spell (passive)" };
62 case MOVEMENTFLAG_CANNOT_SWIM: return { "MOVEMENTFLAG_CANNOT_SWIM", "MOVEMENTFLAG_CANNOT_SWIM", "" };
63 case MOVEMENTFLAG_DISABLE_COLLISION: return { "MOVEMENTFLAG_DISABLE_COLLISION", "MOVEMENTFLAG_DISABLE_COLLISION", "" };
64 case MOVEMENTFLAG_KNOCKBACK: return { "MOVEMENTFLAG_KNOCKBACK", "MOVEMENTFLAG_KNOCKBACK", "" };
65 case MOVEMENTFLAG_TOUCHING_GROUND: return { "MOVEMENTFLAG_TOUCHING_GROUND", "MOVEMENTFLAG_TOUCHING_GROUND", "terrain normal calculation is disabled if this flag is not present, client automatically handles setting this flag" };
66 case MOVEMENTFLAG_NO_STRAFE: return { "MOVEMENTFLAG_NO_STRAFE", "MOVEMENTFLAG_NO_STRAFE", "" };
67 case MOVEMENTFLAG_NO_JUMPING: return { "MOVEMENTFLAG_NO_JUMPING", "MOVEMENTFLAG_NO_JUMPING", "" };
68 case MOVEMENTFLAG_FULL_SPEED_TURNING: return { "MOVEMENTFLAG_FULL_SPEED_TURNING", "MOVEMENTFLAG_FULL_SPEED_TURNING", "" };
69 case MOVEMENTFLAG_FULL_SPEED_PITCHING: return { "MOVEMENTFLAG_FULL_SPEED_PITCHING", "MOVEMENTFLAG_FULL_SPEED_PITCHING", "" };
70 case MOVEMENTFLAG_ALWAYS_ALLOW_PITCHING: return { "MOVEMENTFLAG_ALWAYS_ALLOW_PITCHING", "MOVEMENTFLAG_ALWAYS_ALLOW_PITCHING", "" };
71 case MOVEMENTFLAG_WATERWALKING_FULL_PITCH: return { "MOVEMENTFLAG_WATERWALKING_FULL_PITCH", "MOVEMENTFLAG_WATERWALKING_FULL_PITCH", "" };
72 case MOVEMENTFLAG_CAN_SWIM_TO_FLY_TRANS: return { "MOVEMENTFLAG_CAN_SWIM_TO_FLY_TRANS", "MOVEMENTFLAG_CAN_SWIM_TO_FLY_TRANS", "" };
73 case MOVEMENTFLAG_CAN_TURN_WHILE_FALLING: return { "MOVEMENTFLAG_CAN_TURN_WHILE_FALLING", "MOVEMENTFLAG_CAN_TURN_WHILE_FALLING", "" };
74 case MOVEMENTFLAG_IGNORE_MOVEMENT_FORCES: return { "MOVEMENTFLAG_IGNORE_MOVEMENT_FORCES", "MOVEMENTFLAG_IGNORE_MOVEMENT_FORCES", "" };
75 case MOVEMENTFLAG_CAN_DOUBLE_JUMP: return { "MOVEMENTFLAG_CAN_DOUBLE_JUMP", "MOVEMENTFLAG_CAN_DOUBLE_JUMP", "" };
76 case MOVEMENTFLAG_DOUBLE_JUMP: return { "MOVEMENTFLAG_DOUBLE_JUMP", "MOVEMENTFLAG_DOUBLE_JUMP", "" };
77 case MOVEMENTFLAG_UNK43: return { "MOVEMENTFLAG_UNK43", "MOVEMENTFLAG_UNK43", "old MovementFlags2 0x8000" };
78 case MOVEMENTFLAG_DISABLE_INERTIA: return { "MOVEMENTFLAG_DISABLE_INERTIA", "MOVEMENTFLAG_DISABLE_INERTIA", "" };
79 case MOVEMENTFLAG_CAN_ADV_FLY: return { "MOVEMENTFLAG_CAN_ADV_FLY", "MOVEMENTFLAG_CAN_ADV_FLY", "" };
80 case MOVEMENTFLAG_ADV_FLYING: return { "MOVEMENTFLAG_ADV_FLYING", "MOVEMENTFLAG_ADV_FLYING", "" };
81 case MOVEMENTFLAG_UNK47: return { "MOVEMENTFLAG_UNK47", "MOVEMENTFLAG_UNK47", "old MovementFlags3 0x8" };
82 case MOVEMENTFLAG_UNK48: return { "MOVEMENTFLAG_UNK48", "MOVEMENTFLAG_UNK48", "old MovementFlags3 0x10" };
83 case MOVEMENTFLAG_FALLING_ADV_FLY_DISMOUNT: return { "MOVEMENTFLAG_FALLING_ADV_FLY_DISMOUNT", "MOVEMENTFLAG_FALLING_ADV_FLY_DISMOUNT", "falling after dismounting while adv flying" };
84 case MOVEMENTFLAG_UNK50: return { "MOVEMENTFLAG_UNK50", "MOVEMENTFLAG_UNK50", "old MovementFlags3 0x200" };
85 case MOVEMENTFLAG_WALKING_ON_WATER: return { "MOVEMENTFLAG_WALKING_ON_WATER", "MOVEMENTFLAG_WALKING_ON_WATER", "currently on water surface" };
86 case MOVEMENTFLAG_CAN_DRIVE: return { "MOVEMENTFLAG_CAN_DRIVE", "MOVEMENTFLAG_CAN_DRIVE", "" };
87 case MOVEMENTFLAG_DRIVING_FORWARD: return { "MOVEMENTFLAG_DRIVING_FORWARD", "MOVEMENTFLAG_DRIVING_FORWARD", "" };
88 case MOVEMENTFLAG_DRIVING_BACKWARD: return { "MOVEMENTFLAG_DRIVING_BACKWARD", "MOVEMENTFLAG_DRIVING_BACKWARD", "" };
89 case MOVEMENTFLAG_UNK55: return { "MOVEMENTFLAG_UNK55", "MOVEMENTFLAG_UNK55", "old MovementFlags3 0x20000" };
90 case MOVEMENTFLAG_UNK56: return { "MOVEMENTFLAG_UNK56", "MOVEMENTFLAG_UNK56", "old MovementFlags3 0x40000" };
91 case MOVEMENTFLAG_UNK57: return { "MOVEMENTFLAG_UNK57", "MOVEMENTFLAG_UNK57", "old MovementFlags3 0x80000" };
92 case MOVEMENTFLAG_UNK58: return { "MOVEMENTFLAG_UNK58", "MOVEMENTFLAG_UNK58", "" };
93 case MOVEMENTFLAG_HOVER: return { "MOVEMENTFLAG_HOVER", "MOVEMENTFLAG_HOVER", "" };
94 default: throw std::out_of_range("value");
95 }
96}
97
98template <>
100
101template <>
103{
104 switch (index)
105 {
106 case 0: return MOVEMENTFLAG_FORWARD;
107 case 1: return MOVEMENTFLAG_BACKWARD;
108 case 2: return MOVEMENTFLAG_STRAFE_LEFT;
109 case 3: return MOVEMENTFLAG_STRAFE_RIGHT;
110 case 4: return MOVEMENTFLAG_LEFT;
111 case 5: return MOVEMENTFLAG_RIGHT;
112 case 6: return MOVEMENTFLAG_PITCH_UP;
113 case 7: return MOVEMENTFLAG_PITCH_DOWN;
114 case 8: return MOVEMENTFLAG_WALKING;
115 case 9: return MOVEMENTFLAG_DISABLE_GRAVITY;
116 case 10: return MOVEMENTFLAG_ROOT;
117 case 11: return MOVEMENTFLAG_FALLING;
118 case 12: return MOVEMENTFLAG_FALLING_FAR;
119 case 13: return MOVEMENTFLAG_PENDING_STOP;
120 case 14: return MOVEMENTFLAG_PENDING_STRAFE_STOP;
121 case 15: return MOVEMENTFLAG_PENDING_FORWARD;
122 case 16: return MOVEMENTFLAG_PENDING_BACKWARD;
123 case 17: return MOVEMENTFLAG_PENDING_STRAFE_LEFT;
124 case 18: return MOVEMENTFLAG_PENDING_STRAFE_RIGHT;
125 case 19: return MOVEMENTFLAG_PENDING_ROOT;
126 case 20: return MOVEMENTFLAG_SWIMMING;
127 case 21: return MOVEMENTFLAG_ASCENDING;
128 case 22: return MOVEMENTFLAG_DESCENDING;
129 case 23: return MOVEMENTFLAG_CAN_FLY;
130 case 24: return MOVEMENTFLAG_FLYING;
131 case 25: return MOVEMENTFLAG_SPLINE_ELEVATION;
132 case 26: return MOVEMENTFLAG_WATERWALKING;
133 case 27: return MOVEMENTFLAG_FALLING_SLOW;
134 case 28: return MOVEMENTFLAG_CANNOT_SWIM;
135 case 29: return MOVEMENTFLAG_DISABLE_COLLISION;
136 case 30: return MOVEMENTFLAG_KNOCKBACK;
137 case 31: return MOVEMENTFLAG_TOUCHING_GROUND;
138 case 32: return MOVEMENTFLAG_NO_STRAFE;
139 case 33: return MOVEMENTFLAG_NO_JUMPING;
140 case 34: return MOVEMENTFLAG_FULL_SPEED_TURNING;
141 case 35: return MOVEMENTFLAG_FULL_SPEED_PITCHING;
147 case 41: return MOVEMENTFLAG_CAN_DOUBLE_JUMP;
148 case 42: return MOVEMENTFLAG_DOUBLE_JUMP;
149 case 43: return MOVEMENTFLAG_UNK43;
150 case 44: return MOVEMENTFLAG_DISABLE_INERTIA;
151 case 45: return MOVEMENTFLAG_CAN_ADV_FLY;
152 case 46: return MOVEMENTFLAG_ADV_FLYING;
153 case 47: return MOVEMENTFLAG_UNK47;
154 case 48: return MOVEMENTFLAG_UNK48;
156 case 50: return MOVEMENTFLAG_UNK50;
157 case 51: return MOVEMENTFLAG_WALKING_ON_WATER;
158 case 52: return MOVEMENTFLAG_CAN_DRIVE;
159 case 53: return MOVEMENTFLAG_DRIVING_FORWARD;
160 case 54: return MOVEMENTFLAG_DRIVING_BACKWARD;
161 case 55: return MOVEMENTFLAG_UNK55;
162 case 56: return MOVEMENTFLAG_UNK56;
163 case 57: return MOVEMENTFLAG_UNK57;
164 case 58: return MOVEMENTFLAG_UNK58;
165 case 59: return MOVEMENTFLAG_HOVER;
166 default: throw std::out_of_range("index");
167 }
168}
169
170template <>
172{
173 switch (value)
174 {
175 case MOVEMENTFLAG_FORWARD: return 0;
176 case MOVEMENTFLAG_BACKWARD: return 1;
177 case MOVEMENTFLAG_STRAFE_LEFT: return 2;
178 case MOVEMENTFLAG_STRAFE_RIGHT: return 3;
179 case MOVEMENTFLAG_LEFT: return 4;
180 case MOVEMENTFLAG_RIGHT: return 5;
181 case MOVEMENTFLAG_PITCH_UP: return 6;
182 case MOVEMENTFLAG_PITCH_DOWN: return 7;
183 case MOVEMENTFLAG_WALKING: return 8;
184 case MOVEMENTFLAG_DISABLE_GRAVITY: return 9;
185 case MOVEMENTFLAG_ROOT: return 10;
186 case MOVEMENTFLAG_FALLING: return 11;
187 case MOVEMENTFLAG_FALLING_FAR: return 12;
188 case MOVEMENTFLAG_PENDING_STOP: return 13;
189 case MOVEMENTFLAG_PENDING_STRAFE_STOP: return 14;
190 case MOVEMENTFLAG_PENDING_FORWARD: return 15;
191 case MOVEMENTFLAG_PENDING_BACKWARD: return 16;
192 case MOVEMENTFLAG_PENDING_STRAFE_LEFT: return 17;
193 case MOVEMENTFLAG_PENDING_STRAFE_RIGHT: return 18;
194 case MOVEMENTFLAG_PENDING_ROOT: return 19;
195 case MOVEMENTFLAG_SWIMMING: return 20;
196 case MOVEMENTFLAG_ASCENDING: return 21;
197 case MOVEMENTFLAG_DESCENDING: return 22;
198 case MOVEMENTFLAG_CAN_FLY: return 23;
199 case MOVEMENTFLAG_FLYING: return 24;
200 case MOVEMENTFLAG_SPLINE_ELEVATION: return 25;
201 case MOVEMENTFLAG_WATERWALKING: return 26;
202 case MOVEMENTFLAG_FALLING_SLOW: return 27;
203 case MOVEMENTFLAG_CANNOT_SWIM: return 28;
204 case MOVEMENTFLAG_DISABLE_COLLISION: return 29;
205 case MOVEMENTFLAG_KNOCKBACK: return 30;
206 case MOVEMENTFLAG_TOUCHING_GROUND: return 31;
207 case MOVEMENTFLAG_NO_STRAFE: return 32;
208 case MOVEMENTFLAG_NO_JUMPING: return 33;
209 case MOVEMENTFLAG_FULL_SPEED_TURNING: return 34;
210 case MOVEMENTFLAG_FULL_SPEED_PITCHING: return 35;
216 case MOVEMENTFLAG_CAN_DOUBLE_JUMP: return 41;
217 case MOVEMENTFLAG_DOUBLE_JUMP: return 42;
218 case MOVEMENTFLAG_UNK43: return 43;
219 case MOVEMENTFLAG_DISABLE_INERTIA: return 44;
220 case MOVEMENTFLAG_CAN_ADV_FLY: return 45;
221 case MOVEMENTFLAG_ADV_FLYING: return 46;
222 case MOVEMENTFLAG_UNK47: return 47;
223 case MOVEMENTFLAG_UNK48: return 48;
225 case MOVEMENTFLAG_UNK50: return 50;
226 case MOVEMENTFLAG_WALKING_ON_WATER: return 51;
227 case MOVEMENTFLAG_CAN_DRIVE: return 52;
228 case MOVEMENTFLAG_DRIVING_FORWARD: return 53;
229 case MOVEMENTFLAG_DRIVING_BACKWARD: return 54;
230 case MOVEMENTFLAG_UNK55: return 55;
231 case MOVEMENTFLAG_UNK56: return 56;
232 case MOVEMENTFLAG_UNK57: return 57;
233 case MOVEMENTFLAG_UNK58: return 58;
234 case MOVEMENTFLAG_HOVER: return 59;
235 default: throw std::out_of_range("value");
236 }
237}
238}
#define TC_API_EXPORT
Definition Define.h:92
MovementFlags
@ MOVEMENTFLAG_DESCENDING
@ MOVEMENTFLAG_UNK43
@ MOVEMENTFLAG_CAN_TURN_WHILE_FALLING
@ MOVEMENTFLAG_PITCH_DOWN
@ MOVEMENTFLAG_PENDING_STRAFE_STOP
@ MOVEMENTFLAG_PITCH_UP
@ MOVEMENTFLAG_CAN_SWIM_TO_FLY_TRANS
@ MOVEMENTFLAG_UNK50
@ MOVEMENTFLAG_RIGHT
@ MOVEMENTFLAG_PENDING_STOP
@ MOVEMENTFLAG_TOUCHING_GROUND
@ MOVEMENTFLAG_DOUBLE_JUMP
@ MOVEMENTFLAG_FORWARD
@ MOVEMENTFLAG_PENDING_STRAFE_LEFT
@ MOVEMENTFLAG_STRAFE_LEFT
@ MOVEMENTFLAG_UNK48
@ MOVEMENTFLAG_BACKWARD
@ MOVEMENTFLAG_WATERWALKING
@ MOVEMENTFLAG_UNK57
@ MOVEMENTFLAG_FULL_SPEED_PITCHING
@ MOVEMENTFLAG_CAN_DRIVE
@ MOVEMENTFLAG_UNK58
@ MOVEMENTFLAG_DISABLE_GRAVITY
@ MOVEMENTFLAG_KNOCKBACK
@ MOVEMENTFLAG_WALKING_ON_WATER
@ MOVEMENTFLAG_PENDING_BACKWARD
@ MOVEMENTFLAG_FLYING
@ MOVEMENTFLAG_FALLING_SLOW
@ MOVEMENTFLAG_PENDING_STRAFE_RIGHT
@ MOVEMENTFLAG_CAN_FLY
@ MOVEMENTFLAG_FULL_SPEED_TURNING
@ MOVEMENTFLAG_NO_STRAFE
@ MOVEMENTFLAG_ROOT
@ MOVEMENTFLAG_DRIVING_FORWARD
@ MOVEMENTFLAG_CANNOT_SWIM
@ MOVEMENTFLAG_FALLING
@ MOVEMENTFLAG_WATERWALKING_FULL_PITCH
@ MOVEMENTFLAG_FALLING_ADV_FLY_DISMOUNT
@ MOVEMENTFLAG_UNK47
@ MOVEMENTFLAG_LEFT
@ MOVEMENTFLAG_IGNORE_MOVEMENT_FORCES
@ MOVEMENTFLAG_NO_JUMPING
@ MOVEMENTFLAG_STRAFE_RIGHT
@ MOVEMENTFLAG_FALLING_FAR
@ MOVEMENTFLAG_SWIMMING
@ MOVEMENTFLAG_ASCENDING
@ MOVEMENTFLAG_PENDING_FORWARD
@ MOVEMENTFLAG_HOVER
@ MOVEMENTFLAG_DRIVING_BACKWARD
@ MOVEMENTFLAG_UNK55
@ MOVEMENTFLAG_SPLINE_ELEVATION
@ MOVEMENTFLAG_CAN_ADV_FLY
@ MOVEMENTFLAG_CAN_DOUBLE_JUMP
@ MOVEMENTFLAG_PENDING_ROOT
@ MOVEMENTFLAG_WALKING
@ MOVEMENTFLAG_ALWAYS_ALLOW_PITCHING
@ MOVEMENTFLAG_DISABLE_COLLISION
@ MOVEMENTFLAG_DISABLE_INERTIA
@ MOVEMENTFLAG_UNK56
@ MOVEMENTFLAG_ADV_FLYING
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)