TrinityCore
enuminfo_CreatureData.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 "CreatureData.h"
19#include "Define.h"
20#include "SmartEnum.h"
21#include <stdexcept>
22
24{
25
26/*************************************************************************\
27|* data for enum 'CreatureFlagsExtra' in 'CreatureData.h' auto-generated *|
28\*************************************************************************/
29template <>
31{
32 switch (value)
33 {
34 case CREATURE_FLAG_EXTRA_INSTANCE_BIND: return { "CREATURE_FLAG_EXTRA_INSTANCE_BIND", "CREATURE_FLAG_EXTRA_INSTANCE_BIND", "creature kill bind instance with killer and killer's group" };
35 case CREATURE_FLAG_EXTRA_CIVILIAN: return { "CREATURE_FLAG_EXTRA_CIVILIAN", "CREATURE_FLAG_EXTRA_CIVILIAN", "not aggro (ignore faction/reputation hostility)" };
36 case CREATURE_FLAG_EXTRA_NO_PARRY: return { "CREATURE_FLAG_EXTRA_NO_PARRY", "CREATURE_FLAG_EXTRA_NO_PARRY", "creature can't parry" };
37 case CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN: return { "CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN", "CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN", "creature can't counter-attack at parry" };
38 case CREATURE_FLAG_EXTRA_NO_BLOCK: return { "CREATURE_FLAG_EXTRA_NO_BLOCK", "CREATURE_FLAG_EXTRA_NO_BLOCK", "creature can't block" };
39 case CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS: return { "CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS", "CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS", "creature can't do crush attacks" };
40 case CREATURE_FLAG_EXTRA_NO_XP: return { "CREATURE_FLAG_EXTRA_NO_XP", "CREATURE_FLAG_EXTRA_NO_XP", "creature kill does not provide XP" };
41 case CREATURE_FLAG_EXTRA_TRIGGER: return { "CREATURE_FLAG_EXTRA_TRIGGER", "CREATURE_FLAG_EXTRA_TRIGGER", "trigger creature" };
42 case CREATURE_FLAG_EXTRA_NO_TAUNT: return { "CREATURE_FLAG_EXTRA_NO_TAUNT", "CREATURE_FLAG_EXTRA_NO_TAUNT", "creature is immune to taunt auras and 'attack me' effects" };
43 case CREATURE_FLAG_EXTRA_UNUSED_9: return { "CREATURE_FLAG_EXTRA_UNUSED_9", "CREATURE_FLAG_EXTRA_UNUSED_9", "" };
44 case CREATURE_FLAG_EXTRA_GHOST_VISIBILITY: return { "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "creature will only be visible to dead players" };
45 case CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK: return { "CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK", "CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK", "creature will use offhand attacks" };
46 case CREATURE_FLAG_EXTRA_NO_SELL_VENDOR: return { "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "players can't sell items to this vendor" };
47 case CREATURE_FLAG_EXTRA_CANNOT_ENTER_COMBAT: return { "CREATURE_FLAG_EXTRA_CANNOT_ENTER_COMBAT", "CREATURE_FLAG_EXTRA_CANNOT_ENTER_COMBAT", "creature is not allowed to enter combat" };
48 case CREATURE_FLAG_EXTRA_WORLDEVENT: return { "CREATURE_FLAG_EXTRA_WORLDEVENT", "CREATURE_FLAG_EXTRA_WORLDEVENT", "custom flag for world event creatures (left room for merging)" };
49 case CREATURE_FLAG_EXTRA_GUARD: return { "CREATURE_FLAG_EXTRA_GUARD", "CREATURE_FLAG_EXTRA_GUARD", "Creature is guard" };
50 case CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH: return { "CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH", "CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH", "creature ignores feign death" };
51 case CREATURE_FLAG_EXTRA_NO_CRIT: return { "CREATURE_FLAG_EXTRA_NO_CRIT", "CREATURE_FLAG_EXTRA_NO_CRIT", "creature can't do critical strikes" };
52 case CREATURE_FLAG_EXTRA_NO_SKILL_GAINS: return { "CREATURE_FLAG_EXTRA_NO_SKILL_GAINS", "CREATURE_FLAG_EXTRA_NO_SKILL_GAINS", "creature won't increase weapon skills" };
53 case CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS: return { "CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS", "CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS", "Taunt is subject to diminishing returns on this creature" };
54 case CREATURE_FLAG_EXTRA_ALL_DIMINISH: return { "CREATURE_FLAG_EXTRA_ALL_DIMINISH", "CREATURE_FLAG_EXTRA_ALL_DIMINISH", "creature is subject to all diminishing returns as players are" };
55 case CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ: return { "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "creature does not need to take player damage for kill credit" };
56 case CREATURE_FLAG_EXTRA_UNUSED_22: return { "CREATURE_FLAG_EXTRA_UNUSED_22", "CREATURE_FLAG_EXTRA_UNUSED_22", "" };
57 case CREATURE_FLAG_EXTRA_UNUSED_23: return { "CREATURE_FLAG_EXTRA_UNUSED_23", "CREATURE_FLAG_EXTRA_UNUSED_23", "" };
58 case CREATURE_FLAG_EXTRA_UNUSED_24: return { "CREATURE_FLAG_EXTRA_UNUSED_24", "CREATURE_FLAG_EXTRA_UNUSED_24", "" };
59 case CREATURE_FLAG_EXTRA_UNUSED_25: return { "CREATURE_FLAG_EXTRA_UNUSED_25", "CREATURE_FLAG_EXTRA_UNUSED_25", "" };
60 case CREATURE_FLAG_EXTRA_UNUSED_26: return { "CREATURE_FLAG_EXTRA_UNUSED_26", "CREATURE_FLAG_EXTRA_UNUSED_26", "" };
61 case CREATURE_FLAG_EXTRA_UNUSED_27: return { "CREATURE_FLAG_EXTRA_UNUSED_27", "CREATURE_FLAG_EXTRA_UNUSED_27", "" };
62 case CREATURE_FLAG_EXTRA_DUNGEON_BOSS: return { "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "creature is a dungeon boss" };
63 case CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING: return { "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "creature ignore pathfinding" };
64 case CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK: return { "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "creature is immune to knockback effects" };
65 case CREATURE_FLAG_EXTRA_UNUSED_31: return { "CREATURE_FLAG_EXTRA_UNUSED_31", "CREATURE_FLAG_EXTRA_UNUSED_31", "" };
66 default: throw std::out_of_range("value");
67 }
68}
69
70template <>
72
73template <>
75{
76 switch (index)
77 {
79 case 1: return CREATURE_FLAG_EXTRA_CIVILIAN;
80 case 2: return CREATURE_FLAG_EXTRA_NO_PARRY;
82 case 4: return CREATURE_FLAG_EXTRA_NO_BLOCK;
84 case 6: return CREATURE_FLAG_EXTRA_NO_XP;
85 case 7: return CREATURE_FLAG_EXTRA_TRIGGER;
86 case 8: return CREATURE_FLAG_EXTRA_NO_TAUNT;
87 case 9: return CREATURE_FLAG_EXTRA_UNUSED_9;
92 case 14: return CREATURE_FLAG_EXTRA_WORLDEVENT;
93 case 15: return CREATURE_FLAG_EXTRA_GUARD;
95 case 17: return CREATURE_FLAG_EXTRA_NO_CRIT;
100 case 22: return CREATURE_FLAG_EXTRA_UNUSED_22;
101 case 23: return CREATURE_FLAG_EXTRA_UNUSED_23;
102 case 24: return CREATURE_FLAG_EXTRA_UNUSED_24;
103 case 25: return CREATURE_FLAG_EXTRA_UNUSED_25;
104 case 26: return CREATURE_FLAG_EXTRA_UNUSED_26;
105 case 27: return CREATURE_FLAG_EXTRA_UNUSED_27;
106 case 28: return CREATURE_FLAG_EXTRA_DUNGEON_BOSS;
109 case 31: return CREATURE_FLAG_EXTRA_UNUSED_31;
110 default: throw std::out_of_range("index");
111 }
112}
113
114template <>
116{
117 switch (value)
118 {
120 case CREATURE_FLAG_EXTRA_CIVILIAN: return 1;
121 case CREATURE_FLAG_EXTRA_NO_PARRY: return 2;
123 case CREATURE_FLAG_EXTRA_NO_BLOCK: return 4;
125 case CREATURE_FLAG_EXTRA_NO_XP: return 6;
126 case CREATURE_FLAG_EXTRA_TRIGGER: return 7;
127 case CREATURE_FLAG_EXTRA_NO_TAUNT: return 8;
128 case CREATURE_FLAG_EXTRA_UNUSED_9: return 9;
133 case CREATURE_FLAG_EXTRA_WORLDEVENT: return 14;
134 case CREATURE_FLAG_EXTRA_GUARD: return 15;
136 case CREATURE_FLAG_EXTRA_NO_CRIT: return 17;
139 case CREATURE_FLAG_EXTRA_ALL_DIMINISH: return 20;
141 case CREATURE_FLAG_EXTRA_UNUSED_22: return 22;
142 case CREATURE_FLAG_EXTRA_UNUSED_23: return 23;
143 case CREATURE_FLAG_EXTRA_UNUSED_24: return 24;
144 case CREATURE_FLAG_EXTRA_UNUSED_25: return 25;
145 case CREATURE_FLAG_EXTRA_UNUSED_26: return 26;
146 case CREATURE_FLAG_EXTRA_UNUSED_27: return 27;
147 case CREATURE_FLAG_EXTRA_DUNGEON_BOSS: return 28;
150 case CREATURE_FLAG_EXTRA_UNUSED_31: return 31;
151 default: throw std::out_of_range("value");
152 }
153}
154}
CreatureFlagsExtra
Definition: CreatureData.h:333
@ CREATURE_FLAG_EXTRA_NO_BLOCK
Definition: CreatureData.h:338
@ CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS
Definition: CreatureData.h:339
@ CREATURE_FLAG_EXTRA_UNUSED_22
Definition: CreatureData.h:356
@ CREATURE_FLAG_EXTRA_UNUSED_27
Definition: CreatureData.h:361
@ CREATURE_FLAG_EXTRA_NO_CRIT
Definition: CreatureData.h:351
@ CREATURE_FLAG_EXTRA_DUNGEON_BOSS
Definition: CreatureData.h:362
@ CREATURE_FLAG_EXTRA_TRIGGER
Definition: CreatureData.h:341
@ CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING
Definition: CreatureData.h:363
@ CREATURE_FLAG_EXTRA_CANNOT_ENTER_COMBAT
Definition: CreatureData.h:347
@ CREATURE_FLAG_EXTRA_UNUSED_31
Definition: CreatureData.h:365
@ CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN
Definition: CreatureData.h:337
@ CREATURE_FLAG_EXTRA_NO_XP
Definition: CreatureData.h:340
@ CREATURE_FLAG_EXTRA_UNUSED_25
Definition: CreatureData.h:359
@ CREATURE_FLAG_EXTRA_INSTANCE_BIND
Definition: CreatureData.h:334
@ CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS
Definition: CreatureData.h:353
@ CREATURE_FLAG_EXTRA_UNUSED_9
Definition: CreatureData.h:343
@ CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK
Definition: CreatureData.h:364
@ CREATURE_FLAG_EXTRA_NO_PARRY
Definition: CreatureData.h:336
@ CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH
Definition: CreatureData.h:350
@ CREATURE_FLAG_EXTRA_NO_TAUNT
Definition: CreatureData.h:342
@ CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ
Definition: CreatureData.h:355
@ CREATURE_FLAG_EXTRA_GHOST_VISIBILITY
Definition: CreatureData.h:344
@ CREATURE_FLAG_EXTRA_NO_SELL_VENDOR
Definition: CreatureData.h:346
@ CREATURE_FLAG_EXTRA_NO_SKILL_GAINS
Definition: CreatureData.h:352
@ CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK
Definition: CreatureData.h:345
@ CREATURE_FLAG_EXTRA_UNUSED_23
Definition: CreatureData.h:357
@ CREATURE_FLAG_EXTRA_CIVILIAN
Definition: CreatureData.h:335
@ CREATURE_FLAG_EXTRA_UNUSED_24
Definition: CreatureData.h:358
@ CREATURE_FLAG_EXTRA_GUARD
Definition: CreatureData.h:349
@ CREATURE_FLAG_EXTRA_ALL_DIMINISH
Definition: CreatureData.h:354
@ CREATURE_FLAG_EXTRA_UNUSED_26
Definition: CreatureData.h:360
@ CREATURE_FLAG_EXTRA_WORLDEVENT
Definition: CreatureData.h:348
#define TC_API_EXPORT
Definition: Define.h:92
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)