TrinityCore
Loading...
Searching...
No Matches
enuminfo_UnitDefines.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 "UnitDefines.h"
19#include "Define.h"
20#include "SmartEnum.h"
21#include <stdexcept>
22
24{
25
26/***************************************************************\
27|* data for enum 'UnitFlags' in 'UnitDefines.h' auto-generated *|
28\***************************************************************/
29template <>
31{
32 switch (value)
33 {
34 case UNIT_FLAG_SERVER_CONTROLLED: return { "UNIT_FLAG_SERVER_CONTROLLED", "UNIT_FLAG_SERVER_CONTROLLED", "set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner" };
35 case UNIT_FLAG_NON_ATTACKABLE: return { "UNIT_FLAG_NON_ATTACKABLE", "UNIT_FLAG_NON_ATTACKABLE", "not attackable, set when creature starts to cast spells with SPELL_EFFECT_SPAWN and cast time, removed when spell hits caster, original name is UNIT_FLAG_SPAWNING. Rename when it will be removed from all scripts" };
36 case UNIT_FLAG_REMOVE_CLIENT_CONTROL: return { "UNIT_FLAG_REMOVE_CLIENT_CONTROL", "UNIT_FLAG_REMOVE_CLIENT_CONTROL", "This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving)" };
37 case UNIT_FLAG_PLAYER_CONTROLLED: return { "UNIT_FLAG_PLAYER_CONTROLLED", "UNIT_FLAG_PLAYER_CONTROLLED", "controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC" };
38 case UNIT_FLAG_RENAME: return { "UNIT_FLAG_RENAME", "UNIT_FLAG_RENAME", "" };
39 case UNIT_FLAG_PREPARATION: return { "UNIT_FLAG_PREPARATION", "UNIT_FLAG_PREPARATION", "don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP" };
40 case UNIT_FLAG_UNK_6: return { "UNIT_FLAG_UNK_6", "UNIT_FLAG_UNK_6", "" };
41 case UNIT_FLAG_NOT_ATTACKABLE_1: return { "UNIT_FLAG_NOT_ATTACKABLE_1", "UNIT_FLAG_NOT_ATTACKABLE_1", "?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE" };
42 case UNIT_FLAG_IMMUNE_TO_PC: return { "UNIT_FLAG_IMMUNE_TO_PC", "UNIT_FLAG_IMMUNE_TO_PC", "disables combat/assistance with PlayerCharacters (PC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget" };
43 case UNIT_FLAG_IMMUNE_TO_NPC: return { "UNIT_FLAG_IMMUNE_TO_NPC", "UNIT_FLAG_IMMUNE_TO_NPC", "disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget" };
44 case UNIT_FLAG_LOOTING: return { "UNIT_FLAG_LOOTING", "UNIT_FLAG_LOOTING", "loot animation" };
45 case UNIT_FLAG_PET_IN_COMBAT: return { "UNIT_FLAG_PET_IN_COMBAT", "UNIT_FLAG_PET_IN_COMBAT", "on player pets: whether the pet is chasing a target to attack || on other units: whether any of the unit's minions is in combat" };
46 case UNIT_FLAG_PVP_ENABLING: return { "UNIT_FLAG_PVP_ENABLING", "UNIT_FLAG_PVP_ENABLING", "changed in 3.0.3, now UNIT_BYTES_2_OFFSET_PVP_FLAG from UNIT_FIELD_BYTES_2" };
47 case UNIT_FLAG_SILENCED: return { "UNIT_FLAG_SILENCED", "UNIT_FLAG_SILENCED", "silenced, 2.1.1" };
48 case UNIT_FLAG_CANNOT_SWIM: return { "UNIT_FLAG_CANNOT_SWIM", "UNIT_FLAG_CANNOT_SWIM", "2.0.8" };
49 case UNIT_FLAG_CAN_SWIM: return { "UNIT_FLAG_CAN_SWIM", "UNIT_FLAG_CAN_SWIM", "shows swim animation in water" };
50 case UNIT_FLAG_NON_ATTACKABLE_2: return { "UNIT_FLAG_NON_ATTACKABLE_2", "UNIT_FLAG_NON_ATTACKABLE_2", "removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE" };
51 case UNIT_FLAG_PACIFIED: return { "UNIT_FLAG_PACIFIED", "UNIT_FLAG_PACIFIED", "3.0.3 ok" };
52 case UNIT_FLAG_STUNNED: return { "UNIT_FLAG_STUNNED", "UNIT_FLAG_STUNNED", "3.0.3 ok" };
53 case UNIT_FLAG_IN_COMBAT: return { "UNIT_FLAG_IN_COMBAT", "UNIT_FLAG_IN_COMBAT", "" };
54 case UNIT_FLAG_ON_TAXI: return { "UNIT_FLAG_ON_TAXI", "UNIT_FLAG_ON_TAXI", "disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag" };
55 case UNIT_FLAG_DISARMED: return { "UNIT_FLAG_DISARMED", "UNIT_FLAG_DISARMED", "3.0.3, disable melee spells casting..., \042Required melee weapon\042 added to melee spells tooltip." };
56 case UNIT_FLAG_CONFUSED: return { "UNIT_FLAG_CONFUSED", "UNIT_FLAG_CONFUSED", "" };
57 case UNIT_FLAG_FLEEING: return { "UNIT_FLAG_FLEEING", "UNIT_FLAG_FLEEING", "" };
58 case UNIT_FLAG_POSSESSED: return { "UNIT_FLAG_POSSESSED", "UNIT_FLAG_POSSESSED", "under direct client control by a player (possess or vehicle)" };
59 case UNIT_FLAG_UNINTERACTIBLE: return { "UNIT_FLAG_UNINTERACTIBLE", "UNIT_FLAG_UNINTERACTIBLE", "" };
60 case UNIT_FLAG_SKINNABLE: return { "UNIT_FLAG_SKINNABLE", "UNIT_FLAG_SKINNABLE", "" };
61 case UNIT_FLAG_MOUNT: return { "UNIT_FLAG_MOUNT", "UNIT_FLAG_MOUNT", "" };
62 case UNIT_FLAG_UNK_28: return { "UNIT_FLAG_UNK_28", "UNIT_FLAG_UNK_28", "" };
63 case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT: return { "UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT", "UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT", "Prevent automatically playing emotes from parsing chat text, for example \042lol\042 in /say, ending message with ? or !, or using /yell" };
64 case UNIT_FLAG_SHEATHE: return { "UNIT_FLAG_SHEATHE", "UNIT_FLAG_SHEATHE", "" };
65 case UNIT_FLAG_IMMUNE: return { "UNIT_FLAG_IMMUNE", "UNIT_FLAG_IMMUNE", "Immune to damage" };
66 default: throw std::out_of_range("value");
67 }
68}
69
70template <>
72
73template <>
75{
76 switch (index)
77 {
78 case 0: return UNIT_FLAG_SERVER_CONTROLLED;
79 case 1: return UNIT_FLAG_NON_ATTACKABLE;
81 case 3: return UNIT_FLAG_PLAYER_CONTROLLED;
82 case 4: return UNIT_FLAG_RENAME;
83 case 5: return UNIT_FLAG_PREPARATION;
84 case 6: return UNIT_FLAG_UNK_6;
85 case 7: return UNIT_FLAG_NOT_ATTACKABLE_1;
86 case 8: return UNIT_FLAG_IMMUNE_TO_PC;
87 case 9: return UNIT_FLAG_IMMUNE_TO_NPC;
88 case 10: return UNIT_FLAG_LOOTING;
89 case 11: return UNIT_FLAG_PET_IN_COMBAT;
90 case 12: return UNIT_FLAG_PVP_ENABLING;
91 case 13: return UNIT_FLAG_SILENCED;
92 case 14: return UNIT_FLAG_CANNOT_SWIM;
93 case 15: return UNIT_FLAG_CAN_SWIM;
94 case 16: return UNIT_FLAG_NON_ATTACKABLE_2;
95 case 17: return UNIT_FLAG_PACIFIED;
96 case 18: return UNIT_FLAG_STUNNED;
97 case 19: return UNIT_FLAG_IN_COMBAT;
98 case 20: return UNIT_FLAG_ON_TAXI;
99 case 21: return UNIT_FLAG_DISARMED;
100 case 22: return UNIT_FLAG_CONFUSED;
101 case 23: return UNIT_FLAG_FLEEING;
102 case 24: return UNIT_FLAG_POSSESSED;
103 case 25: return UNIT_FLAG_UNINTERACTIBLE;
104 case 26: return UNIT_FLAG_SKINNABLE;
105 case 27: return UNIT_FLAG_MOUNT;
106 case 28: return UNIT_FLAG_UNK_28;
108 case 30: return UNIT_FLAG_SHEATHE;
109 case 31: return UNIT_FLAG_IMMUNE;
110 default: throw std::out_of_range("index");
111 }
112}
113
114template <>
116{
117 switch (value)
118 {
119 case UNIT_FLAG_SERVER_CONTROLLED: return 0;
120 case UNIT_FLAG_NON_ATTACKABLE: return 1;
121 case UNIT_FLAG_REMOVE_CLIENT_CONTROL: return 2;
122 case UNIT_FLAG_PLAYER_CONTROLLED: return 3;
123 case UNIT_FLAG_RENAME: return 4;
124 case UNIT_FLAG_PREPARATION: return 5;
125 case UNIT_FLAG_UNK_6: return 6;
126 case UNIT_FLAG_NOT_ATTACKABLE_1: return 7;
127 case UNIT_FLAG_IMMUNE_TO_PC: return 8;
128 case UNIT_FLAG_IMMUNE_TO_NPC: return 9;
129 case UNIT_FLAG_LOOTING: return 10;
130 case UNIT_FLAG_PET_IN_COMBAT: return 11;
131 case UNIT_FLAG_PVP_ENABLING: return 12;
132 case UNIT_FLAG_SILENCED: return 13;
133 case UNIT_FLAG_CANNOT_SWIM: return 14;
134 case UNIT_FLAG_CAN_SWIM: return 15;
135 case UNIT_FLAG_NON_ATTACKABLE_2: return 16;
136 case UNIT_FLAG_PACIFIED: return 17;
137 case UNIT_FLAG_STUNNED: return 18;
138 case UNIT_FLAG_IN_COMBAT: return 19;
139 case UNIT_FLAG_ON_TAXI: return 20;
140 case UNIT_FLAG_DISARMED: return 21;
141 case UNIT_FLAG_CONFUSED: return 22;
142 case UNIT_FLAG_FLEEING: return 23;
143 case UNIT_FLAG_POSSESSED: return 24;
144 case UNIT_FLAG_UNINTERACTIBLE: return 25;
145 case UNIT_FLAG_SKINNABLE: return 26;
146 case UNIT_FLAG_MOUNT: return 27;
147 case UNIT_FLAG_UNK_28: return 28;
149 case UNIT_FLAG_SHEATHE: return 30;
150 case UNIT_FLAG_IMMUNE: return 31;
151 default: throw std::out_of_range("value");
152 }
153}
154
155/**************************************************************\
156|* data for enum 'NPCFlags' in 'UnitDefines.h' auto-generated *|
157\**************************************************************/
158template <>
160{
161 switch (value)
162 {
163 case UNIT_NPC_FLAG_GOSSIP: return { "UNIT_NPC_FLAG_GOSSIP", "has gossip menu", "100%" };
164 case UNIT_NPC_FLAG_QUESTGIVER: return { "UNIT_NPC_FLAG_QUESTGIVER", "is quest giver", "guessed, probably ok" };
165 case UNIT_NPC_FLAG_UNK1: return { "UNIT_NPC_FLAG_UNK1", "UNIT_NPC_FLAG_UNK1", "" };
166 case UNIT_NPC_FLAG_UNK2: return { "UNIT_NPC_FLAG_UNK2", "UNIT_NPC_FLAG_UNK2", "" };
167 case UNIT_NPC_FLAG_TRAINER: return { "UNIT_NPC_FLAG_TRAINER", "is trainer", "100%" };
168 case UNIT_NPC_FLAG_TRAINER_CLASS: return { "UNIT_NPC_FLAG_TRAINER_CLASS", "is class trainer", "100%" };
169 case UNIT_NPC_FLAG_TRAINER_PROFESSION: return { "UNIT_NPC_FLAG_TRAINER_PROFESSION", "is profession trainer", "100%" };
170 case UNIT_NPC_FLAG_VENDOR: return { "UNIT_NPC_FLAG_VENDOR", "is vendor (generic)", "100%" };
171 case UNIT_NPC_FLAG_VENDOR_AMMO: return { "UNIT_NPC_FLAG_VENDOR_AMMO", "is vendor (ammo)", "100%, general goods vendor" };
172 case UNIT_NPC_FLAG_VENDOR_FOOD: return { "UNIT_NPC_FLAG_VENDOR_FOOD", "is vendor (food)", "100%" };
173 case UNIT_NPC_FLAG_VENDOR_POISON: return { "UNIT_NPC_FLAG_VENDOR_POISON", "is vendor (poison)", "guessed" };
174 case UNIT_NPC_FLAG_VENDOR_REAGENT: return { "UNIT_NPC_FLAG_VENDOR_REAGENT", "is vendor (reagents)", "100%" };
175 case UNIT_NPC_FLAG_REPAIR: return { "UNIT_NPC_FLAG_REPAIR", "can repair", "100%" };
176 case UNIT_NPC_FLAG_FLIGHTMASTER: return { "UNIT_NPC_FLAG_FLIGHTMASTER", "is flight master", "100%" };
177 case UNIT_NPC_FLAG_SPIRITHEALER: return { "UNIT_NPC_FLAG_SPIRITHEALER", "is spirit healer", "guessed" };
178 case UNIT_NPC_FLAG_SPIRITGUIDE: return { "UNIT_NPC_FLAG_SPIRITGUIDE", "is spirit guide", "guessed" };
179 case UNIT_NPC_FLAG_INNKEEPER: return { "UNIT_NPC_FLAG_INNKEEPER", "is innkeeper", "" };
180 case UNIT_NPC_FLAG_BANKER: return { "UNIT_NPC_FLAG_BANKER", "is banker", "100%" };
181 case UNIT_NPC_FLAG_PETITIONER: return { "UNIT_NPC_FLAG_PETITIONER", "handles guild/arena petitions", "100% 0xC0000 = guild petitions, 0x40000 = arena team petitions" };
182 case UNIT_NPC_FLAG_TABARDDESIGNER: return { "UNIT_NPC_FLAG_TABARDDESIGNER", "is guild tabard designer", "100%" };
183 case UNIT_NPC_FLAG_BATTLEMASTER: return { "UNIT_NPC_FLAG_BATTLEMASTER", "is battlemaster", "100%" };
184 case UNIT_NPC_FLAG_AUCTIONEER: return { "UNIT_NPC_FLAG_AUCTIONEER", "is auctioneer", "100%" };
185 case UNIT_NPC_FLAG_STABLEMASTER: return { "UNIT_NPC_FLAG_STABLEMASTER", "is stable master", "100%" };
186 case UNIT_NPC_FLAG_GUILD_BANKER: return { "UNIT_NPC_FLAG_GUILD_BANKER", "is guild banker", "cause client to send 997 opcode" };
187 case UNIT_NPC_FLAG_SPELLCLICK: return { "UNIT_NPC_FLAG_SPELLCLICK", "has spell click enabled", "cause client to send 1015 opcode (spell click)" };
188 case UNIT_NPC_FLAG_PLAYER_VEHICLE: return { "UNIT_NPC_FLAG_PLAYER_VEHICLE", "is player vehicle", "players with mounts that have vehicle data should have it set" };
189 case UNIT_NPC_FLAG_MAILBOX: return { "UNIT_NPC_FLAG_MAILBOX", "is mailbox", "" };
190 default: throw std::out_of_range("value");
191 }
192}
193
194template <>
196
197template <>
199{
200 switch (index)
201 {
202 case 0: return UNIT_NPC_FLAG_GOSSIP;
203 case 1: return UNIT_NPC_FLAG_QUESTGIVER;
204 case 2: return UNIT_NPC_FLAG_UNK1;
205 case 3: return UNIT_NPC_FLAG_UNK2;
206 case 4: return UNIT_NPC_FLAG_TRAINER;
207 case 5: return UNIT_NPC_FLAG_TRAINER_CLASS;
209 case 7: return UNIT_NPC_FLAG_VENDOR;
210 case 8: return UNIT_NPC_FLAG_VENDOR_AMMO;
211 case 9: return UNIT_NPC_FLAG_VENDOR_FOOD;
212 case 10: return UNIT_NPC_FLAG_VENDOR_POISON;
213 case 11: return UNIT_NPC_FLAG_VENDOR_REAGENT;
214 case 12: return UNIT_NPC_FLAG_REPAIR;
215 case 13: return UNIT_NPC_FLAG_FLIGHTMASTER;
216 case 14: return UNIT_NPC_FLAG_SPIRITHEALER;
217 case 15: return UNIT_NPC_FLAG_SPIRITGUIDE;
218 case 16: return UNIT_NPC_FLAG_INNKEEPER;
219 case 17: return UNIT_NPC_FLAG_BANKER;
220 case 18: return UNIT_NPC_FLAG_PETITIONER;
221 case 19: return UNIT_NPC_FLAG_TABARDDESIGNER;
222 case 20: return UNIT_NPC_FLAG_BATTLEMASTER;
223 case 21: return UNIT_NPC_FLAG_AUCTIONEER;
224 case 22: return UNIT_NPC_FLAG_STABLEMASTER;
225 case 23: return UNIT_NPC_FLAG_GUILD_BANKER;
226 case 24: return UNIT_NPC_FLAG_SPELLCLICK;
227 case 25: return UNIT_NPC_FLAG_PLAYER_VEHICLE;
228 case 26: return UNIT_NPC_FLAG_MAILBOX;
229 default: throw std::out_of_range("index");
230 }
231}
232
233template <>
235{
236 switch (value)
237 {
238 case UNIT_NPC_FLAG_GOSSIP: return 0;
239 case UNIT_NPC_FLAG_QUESTGIVER: return 1;
240 case UNIT_NPC_FLAG_UNK1: return 2;
241 case UNIT_NPC_FLAG_UNK2: return 3;
242 case UNIT_NPC_FLAG_TRAINER: return 4;
243 case UNIT_NPC_FLAG_TRAINER_CLASS: return 5;
245 case UNIT_NPC_FLAG_VENDOR: return 7;
246 case UNIT_NPC_FLAG_VENDOR_AMMO: return 8;
247 case UNIT_NPC_FLAG_VENDOR_FOOD: return 9;
248 case UNIT_NPC_FLAG_VENDOR_POISON: return 10;
249 case UNIT_NPC_FLAG_VENDOR_REAGENT: return 11;
250 case UNIT_NPC_FLAG_REPAIR: return 12;
251 case UNIT_NPC_FLAG_FLIGHTMASTER: return 13;
252 case UNIT_NPC_FLAG_SPIRITHEALER: return 14;
253 case UNIT_NPC_FLAG_SPIRITGUIDE: return 15;
254 case UNIT_NPC_FLAG_INNKEEPER: return 16;
255 case UNIT_NPC_FLAG_BANKER: return 17;
256 case UNIT_NPC_FLAG_PETITIONER: return 18;
257 case UNIT_NPC_FLAG_TABARDDESIGNER: return 19;
258 case UNIT_NPC_FLAG_BATTLEMASTER: return 20;
259 case UNIT_NPC_FLAG_AUCTIONEER: return 21;
260 case UNIT_NPC_FLAG_STABLEMASTER: return 22;
261 case UNIT_NPC_FLAG_GUILD_BANKER: return 23;
262 case UNIT_NPC_FLAG_SPELLCLICK: return 24;
263 case UNIT_NPC_FLAG_PLAYER_VEHICLE: return 25;
264 case UNIT_NPC_FLAG_MAILBOX: return 26;
265 default: throw std::out_of_range("value");
266 }
267}
268}
#define TC_API_EXPORT
Definition Define.h:89
NPCFlags
Non Player Character flags.
@ UNIT_NPC_FLAG_VENDOR_AMMO
@ UNIT_NPC_FLAG_TABARDDESIGNER
@ UNIT_NPC_FLAG_BANKER
@ UNIT_NPC_FLAG_AUCTIONEER
@ UNIT_NPC_FLAG_UNK2
@ UNIT_NPC_FLAG_VENDOR_POISON
@ UNIT_NPC_FLAG_GUILD_BANKER
@ UNIT_NPC_FLAG_VENDOR
@ UNIT_NPC_FLAG_STABLEMASTER
@ UNIT_NPC_FLAG_VENDOR_REAGENT
@ UNIT_NPC_FLAG_GOSSIP
@ UNIT_NPC_FLAG_BATTLEMASTER
@ UNIT_NPC_FLAG_VENDOR_FOOD
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_NPC_FLAG_INNKEEPER
@ UNIT_NPC_FLAG_SPELLCLICK
@ UNIT_NPC_FLAG_UNK1
@ UNIT_NPC_FLAG_MAILBOX
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
@ UNIT_NPC_FLAG_FLIGHTMASTER
@ UNIT_NPC_FLAG_TRAINER_CLASS
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
@ UNIT_NPC_FLAG_REPAIR
@ UNIT_NPC_FLAG_TRAINER
@ UNIT_NPC_FLAG_PETITIONER
@ UNIT_NPC_FLAG_SPIRITGUIDE
@ UNIT_NPC_FLAG_SPIRITHEALER
UnitFlags
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
@ UNIT_FLAG_STUNNED
@ UNIT_FLAG_CANNOT_SWIM
@ UNIT_FLAG_PVP_ENABLING
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_UNK_6
@ UNIT_FLAG_IN_COMBAT
@ UNIT_FLAG_PREPARATION
@ UNIT_FLAG_NON_ATTACKABLE_2
@ UNIT_FLAG_IMMUNE_TO_NPC
@ UNIT_FLAG_ON_TAXI
@ UNIT_FLAG_POSSESSED
@ UNIT_FLAG_IMMUNE
@ UNIT_FLAG_SERVER_CONTROLLED
@ UNIT_FLAG_DISARMED
@ UNIT_FLAG_PACIFIED
@ UNIT_FLAG_CAN_SWIM
@ UNIT_FLAG_REMOVE_CLIENT_CONTROL
@ UNIT_FLAG_CONFUSED
@ UNIT_FLAG_FLEEING
@ UNIT_FLAG_RENAME
@ UNIT_FLAG_LOOTING
@ UNIT_FLAG_UNINTERACTIBLE
@ UNIT_FLAG_IMMUNE_TO_PC
@ UNIT_FLAG_NOT_ATTACKABLE_1
@ UNIT_FLAG_SILENCED
@ UNIT_FLAG_PLAYER_CONTROLLED
@ UNIT_FLAG_SKINNABLE
@ UNIT_FLAG_MOUNT
@ UNIT_FLAG_PET_IN_COMBAT
@ UNIT_FLAG_UNK_28
@ UNIT_FLAG_SHEATHE
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)