AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
CreatureData.h File Reference
#include "DBCEnums.h"
#include "DatabaseEnv.h"
#include "ItemTemplate.h"
#include "LootMgr.h"
#include "Unit.h"
#include <list>

Go to the source code of this file.

Classes

struct  CreatureMovementData
 
struct  CreatureModel
 
struct  CreatureTemplate
 
struct  CreatureBaseStats
 
struct  CreatureLocale
 
struct  GossipMenuItemsLocale
 
struct  PointOfInterestLocale
 
struct  EquipmentInfo
 
struct  CreatureData
 
struct  CreatureModelInfo
 
struct  CreatureAddon
 
struct  VendorItem
 
struct  VendorItemData
 
struct  VendorItemCount
 
struct  TrainerSpell
 
struct  TrainerSpellData
 
struct  CreatureSpellCooldown
 

Macros

#define MAX_AGGRO_RESET_TIME   10
 
#define MAX_KILL_CREDIT   2
 
#define CREATURE_REGEN_INTERVAL   2 * IN_MILLISECONDS
 
#define MAX_CREATURE_QUEST_ITEMS   6
 
#define MAX_EQUIPMENT_ITEMS   3
 

Typedefs

typedef std::vector< uint32CreatureQuestItemList
 
typedef std::unordered_map< uint32, CreatureQuestItemListCreatureQuestItemMap
 
typedef std::unordered_map< uint32, CreatureTemplateCreatureTemplateContainer
 
typedef std::unordered_map< uint16, CreatureBaseStatsCreatureBaseStatsContainer
 
typedef std::unordered_map< uint8, EquipmentInfoEquipmentInfoContainerInternal
 
typedef std::unordered_map< uint32, EquipmentInfoContainerInternalEquipmentInfoContainer
 
typedef std::unordered_map< uint16, CreatureModelInfoCreatureModelContainer
 
typedef std::unordered_map< uint32, CreatureAddonCreatureAddonContainer
 
typedef std::vector< VendorItem * > VendorItemList
 
typedef std::list< VendorItemCountVendorItemCounts
 
typedef std::unordered_map< uint32, TrainerSpellTrainerSpellMap
 
typedef std::map< uint32, CreatureSpellCooldownCreatureSpellCooldowns
 

Enumerations

enum  CreatureFlagsExtra : uint32 {
  CREATURE_FLAG_EXTRA_INSTANCE_BIND = 0x00000001 ,
  CREATURE_FLAG_EXTRA_CIVILIAN = 0x00000002 ,
  CREATURE_FLAG_EXTRA_NO_PARRY = 0x00000004 ,
  CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN = 0x00000008 ,
  CREATURE_FLAG_EXTRA_NO_BLOCK = 0x00000010 ,
  CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS = 0x00000020 ,
  CREATURE_FLAG_EXTRA_NO_XP = 0x00000040 ,
  CREATURE_FLAG_EXTRA_TRIGGER = 0x00000080 ,
  CREATURE_FLAG_EXTRA_NO_TAUNT = 0x00000100 ,
  CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE = 0x00000200 ,
  CREATURE_FLAG_EXTRA_GHOST_VISIBILITY = 0x00000400 ,
  CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK = 0x00000800 ,
  CREATURE_FLAG_EXTRA_NO_SELL_VENDOR = 0x00001000 ,
  CREATURE_FLAG_EXTRA_IGNORE_COMBAT = 0x00002000 ,
  CREATURE_FLAG_EXTRA_WORLDEVENT = 0x00004000 ,
  CREATURE_FLAG_EXTRA_GUARD = 0x00008000 ,
  CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH = 0x00010000 ,
  CREATURE_FLAG_EXTRA_NO_CRIT = 0x00020000 ,
  CREATURE_FLAG_EXTRA_NO_SKILL_GAINS = 0x00040000 ,
  CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS = 0x00080000 ,
  CREATURE_FLAG_EXTRA_ALL_DIMINISH = 0x00100000 ,
  CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ = 0x00200000 ,
  CREATURE_FLAG_EXTRA_AVOID_AOE = 0x00400000 ,
  CREATURE_FLAG_EXTRA_NO_DODGE = 0x00800000 ,
  CREATURE_FLAG_EXTRA_MODULE = 0x01000000 ,
  CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE = 0x02000000 ,
  CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS = 0x04000000 ,
  CREATURE_FLAG_EXTRA_DONT_OVERRIDE_ENTRY_SAI = 0x08000000 ,
  CREATURE_FLAG_EXTRA_DUNGEON_BOSS = 0x10000000 ,
  CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING = 0x20000000 ,
  CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK = 0x40000000 ,
  CREATURE_FLAG_EXTRA_HARD_RESET = 0x80000000 ,
  CREATURE_FLAG_EXTRA_DB_ALLOWED = (0xFFFFFFFF & ~CREATURE_FLAG_EXTRA_DUNGEON_BOSS)
}
 
enum class  CreatureGroundMovementType : uint8 {
  None ,
  Run ,
  Hover ,
  Max
}
 
enum class  CreatureFlightMovementType : uint8 {
  None ,
  DisableGravity ,
  CanFly ,
  Max
}
 
enum class  CreatureChaseMovementType : uint8 {
  Run ,
  CanWalk ,
  AlwaysWalk ,
  Max
}
 
enum class  CreatureRandomMovementType : uint8 {
  Walk ,
  CanRun ,
  AlwaysRun ,
  Max
}
 
enum  InhabitTypeValues {
  INHABIT_GROUND = 1 ,
  INHABIT_WATER = 2 ,
  INHABIT_AIR = 4 ,
  INHABIT_ROOT = 8 ,
  INHABIT_ANYWHERE = INHABIT_GROUND | INHABIT_WATER | INHABIT_AIR | INHABIT_ROOT
}
 
enum  ChatType {
  CHAT_TYPE_SAY = 0 ,
  CHAT_TYPE_YELL = 1 ,
  CHAT_TYPE_TEXT_EMOTE = 2 ,
  CHAT_TYPE_BOSS_EMOTE = 3 ,
  CHAT_TYPE_WHISPER = 4 ,
  CHAT_TYPE_BOSS_WHISPER = 5 ,
  CHAT_TYPE_ZONE_YELL = 6 ,
  CHAT_TYPE_END = 255
}
 

Variables

constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL = 4s
 

Macro Definition Documentation

◆ CREATURE_REGEN_INTERVAL

#define CREATURE_REGEN_INTERVAL   2 * IN_MILLISECONDS

◆ MAX_AGGRO_RESET_TIME

#define MAX_AGGRO_RESET_TIME   10

◆ MAX_CREATURE_QUEST_ITEMS

#define MAX_CREATURE_QUEST_ITEMS   6

◆ MAX_EQUIPMENT_ITEMS

#define MAX_EQUIPMENT_ITEMS   3

◆ MAX_KILL_CREDIT

#define MAX_KILL_CREDIT   2

Typedef Documentation

◆ CreatureAddonContainer

typedef std::unordered_map<uint32, CreatureAddon> CreatureAddonContainer

◆ CreatureBaseStatsContainer

typedef std::unordered_map<uint16, CreatureBaseStats> CreatureBaseStatsContainer

◆ CreatureModelContainer

typedef std::unordered_map<uint16, CreatureModelInfo> CreatureModelContainer

◆ CreatureQuestItemList

typedef std::vector<uint32> CreatureQuestItemList

◆ CreatureQuestItemMap

typedef std::unordered_map<uint32, CreatureQuestItemList> CreatureQuestItemMap

◆ CreatureSpellCooldowns

◆ CreatureTemplateContainer

typedef std::unordered_map<uint32, CreatureTemplate> CreatureTemplateContainer

◆ EquipmentInfoContainer

◆ EquipmentInfoContainerInternal

typedef std::unordered_map<uint8, EquipmentInfo> EquipmentInfoContainerInternal

◆ TrainerSpellMap

typedef std::unordered_map<uint32 , TrainerSpell> TrainerSpellMap

◆ VendorItemCounts

typedef std::list<VendorItemCount> VendorItemCounts

◆ VendorItemList

typedef std::vector<VendorItem*> VendorItemList

Enumeration Type Documentation

◆ ChatType

enum ChatType
Enumerator
CHAT_TYPE_SAY 
CHAT_TYPE_YELL 
CHAT_TYPE_TEXT_EMOTE 
CHAT_TYPE_BOSS_EMOTE 
CHAT_TYPE_WHISPER 
CHAT_TYPE_BOSS_WHISPER 
CHAT_TYPE_ZONE_YELL 
CHAT_TYPE_END 
420{
421 CHAT_TYPE_SAY = 0,
422 CHAT_TYPE_YELL = 1,
428 CHAT_TYPE_END = 255
429};
@ CHAT_TYPE_SAY
Definition CreatureData.h:421
@ CHAT_TYPE_BOSS_WHISPER
Definition CreatureData.h:426
@ CHAT_TYPE_TEXT_EMOTE
Definition CreatureData.h:423
@ CHAT_TYPE_BOSS_EMOTE
Definition CreatureData.h:424
@ CHAT_TYPE_END
Definition CreatureData.h:428
@ CHAT_TYPE_ZONE_YELL
Definition CreatureData.h:427
@ CHAT_TYPE_WHISPER
Definition CreatureData.h:425
@ CHAT_TYPE_YELL
Definition CreatureData.h:422

◆ CreatureChaseMovementType

enum class CreatureChaseMovementType : uint8
strong
Enumerator
Run 
CanWalk 
AlwaysWalk 
Max 

◆ CreatureFlagsExtra

Todo:
: Implement missing flags from TC in places that custom flags from xinef&pussywizzard use flag values.
Enumerator
CREATURE_FLAG_EXTRA_INSTANCE_BIND 
CREATURE_FLAG_EXTRA_CIVILIAN 
CREATURE_FLAG_EXTRA_NO_PARRY 
CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN 
CREATURE_FLAG_EXTRA_NO_BLOCK 
CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS 
CREATURE_FLAG_EXTRA_NO_XP 
CREATURE_FLAG_EXTRA_TRIGGER 
CREATURE_FLAG_EXTRA_NO_TAUNT 
CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE 
CREATURE_FLAG_EXTRA_GHOST_VISIBILITY 
CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK 
CREATURE_FLAG_EXTRA_NO_SELL_VENDOR 
CREATURE_FLAG_EXTRA_IGNORE_COMBAT 
CREATURE_FLAG_EXTRA_WORLDEVENT 
CREATURE_FLAG_EXTRA_GUARD 
CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH 
CREATURE_FLAG_EXTRA_NO_CRIT 
CREATURE_FLAG_EXTRA_NO_SKILL_GAINS 
CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS 
CREATURE_FLAG_EXTRA_ALL_DIMINISH 
CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ 
CREATURE_FLAG_EXTRA_AVOID_AOE 
CREATURE_FLAG_EXTRA_NO_DODGE 
CREATURE_FLAG_EXTRA_MODULE 
CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE 
CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS 
CREATURE_FLAG_EXTRA_DONT_OVERRIDE_ENTRY_SAI 
CREATURE_FLAG_EXTRA_DUNGEON_BOSS 
CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING 
CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK 
CREATURE_FLAG_EXTRA_HARD_RESET 
CREATURE_FLAG_EXTRA_DB_ALLOWED 
44{
45 CREATURE_FLAG_EXTRA_INSTANCE_BIND = 0x00000001, // creature kill bind instance with killer and killer's group
46 CREATURE_FLAG_EXTRA_CIVILIAN = 0x00000002, // not aggro (ignore faction/reputation hostility)
47 CREATURE_FLAG_EXTRA_NO_PARRY = 0x00000004, // creature can't parry
48 CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN = 0x00000008, // creature can't counter-attack at parry
49 CREATURE_FLAG_EXTRA_NO_BLOCK = 0x00000010, // creature can't block
50 CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS = 0x00000020, // creature can't do crush attacks
51 CREATURE_FLAG_EXTRA_NO_XP = 0x00000040, // creature kill does not provide XP
52 CREATURE_FLAG_EXTRA_TRIGGER = 0x00000080, // trigger creature
53 CREATURE_FLAG_EXTRA_NO_TAUNT = 0x00000100, // creature is immune to taunt auras and 'attack me' effects
54 CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE = 0x00000200, // creature won't update movement flags
55 CREATURE_FLAG_EXTRA_GHOST_VISIBILITY = 0x00000400, // creature will only be visible to dead players
56 CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK = 0x00000800, // creature will use offhand attacks
57 CREATURE_FLAG_EXTRA_NO_SELL_VENDOR = 0x00001000, // players can't sell items to this vendor
59 CREATURE_FLAG_EXTRA_WORLDEVENT = 0x00004000, // custom flag for world event creatures (left room for merging)
60 CREATURE_FLAG_EXTRA_GUARD = 0x00008000, // Creature is guard
61 CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH = 0x00010000, // creature ignores feign death
62 CREATURE_FLAG_EXTRA_NO_CRIT = 0x00020000, // creature can't do critical strikes
63 CREATURE_FLAG_EXTRA_NO_SKILL_GAINS = 0x00040000, // creature won't increase weapon skills
64 CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS = 0x00080000, // Taunt is subject to diminishing returns on this creature
65 CREATURE_FLAG_EXTRA_ALL_DIMINISH = 0x00100000, // creature is subject to all diminishing returns as players are
66 CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ = 0x00200000, // creature does not need to take player damage for kill credit
67 CREATURE_FLAG_EXTRA_AVOID_AOE = 0x00400000, // pussywizard: ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus)
68 CREATURE_FLAG_EXTRA_NO_DODGE = 0x00800000, // xinef: target cannot dodge
69 CREATURE_FLAG_EXTRA_MODULE = 0x01000000,
70 CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE = 0x02000000, // Prevent creatures from calling for assistance on initial aggro
71 CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS = 0x04000000, // Prevents creature from responding to assistance calls
72 CREATURE_FLAG_EXTRA_DONT_OVERRIDE_ENTRY_SAI = 0x08000000, // Load both ENTRY and GUID specific SAI
73 CREATURE_FLAG_EXTRA_DUNGEON_BOSS = 0x10000000, // creature is a dungeon boss (SET DYNAMICALLY, DO NOT ADD IN DB)
74 CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING = 0x20000000, // creature ignore pathfinding
75 CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK = 0x40000000, // creature is immune to knockback effects
77
78 // Masks
79 CREATURE_FLAG_EXTRA_DB_ALLOWED = (0xFFFFFFFF & ~CREATURE_FLAG_EXTRA_DUNGEON_BOSS) // SKIP
80};
@ CREATURE_FLAG_EXTRA_IGNORE_COMBAT
Definition CreatureData.h:58
@ CREATURE_FLAG_EXTRA_NO_BLOCK
Definition CreatureData.h:49
@ CREATURE_FLAG_EXTRA_DB_ALLOWED
Definition CreatureData.h:79
@ CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS
Definition CreatureData.h:50
@ CREATURE_FLAG_EXTRA_NO_CRIT
Definition CreatureData.h:62
@ CREATURE_FLAG_EXTRA_DUNGEON_BOSS
Definition CreatureData.h:73
@ CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS
Definition CreatureData.h:71
@ CREATURE_FLAG_EXTRA_TRIGGER
Definition CreatureData.h:52
@ CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING
Definition CreatureData.h:74
@ CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN
Definition CreatureData.h:48
@ CREATURE_FLAG_EXTRA_NO_XP
Definition CreatureData.h:51
@ CREATURE_FLAG_EXTRA_HARD_RESET
Definition CreatureData.h:76
@ CREATURE_FLAG_EXTRA_INSTANCE_BIND
Definition CreatureData.h:45
@ CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS
Definition CreatureData.h:64
@ CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE
Definition CreatureData.h:54
@ CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK
Definition CreatureData.h:75
@ CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE
Definition CreatureData.h:70
@ CREATURE_FLAG_EXTRA_NO_PARRY
Definition CreatureData.h:47
@ CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH
Definition CreatureData.h:61
@ CREATURE_FLAG_EXTRA_NO_TAUNT
Definition CreatureData.h:53
@ CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ
Definition CreatureData.h:66
@ CREATURE_FLAG_EXTRA_GHOST_VISIBILITY
Definition CreatureData.h:55
@ CREATURE_FLAG_EXTRA_NO_SELL_VENDOR
Definition CreatureData.h:57
@ CREATURE_FLAG_EXTRA_NO_DODGE
Definition CreatureData.h:68
@ CREATURE_FLAG_EXTRA_NO_SKILL_GAINS
Definition CreatureData.h:63
@ CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK
Definition CreatureData.h:56
@ CREATURE_FLAG_EXTRA_AVOID_AOE
Definition CreatureData.h:67
@ CREATURE_FLAG_EXTRA_CIVILIAN
Definition CreatureData.h:46
@ CREATURE_FLAG_EXTRA_MODULE
Definition CreatureData.h:69
@ CREATURE_FLAG_EXTRA_GUARD
Definition CreatureData.h:60
@ CREATURE_FLAG_EXTRA_ALL_DIMINISH
Definition CreatureData.h:65
@ CREATURE_FLAG_EXTRA_WORLDEVENT
Definition CreatureData.h:59
@ CREATURE_FLAG_EXTRA_DONT_OVERRIDE_ENTRY_SAI
Definition CreatureData.h:72

◆ CreatureFlightMovementType

enum class CreatureFlightMovementType : uint8
strong
Enumerator
None 
DisableGravity 
CanFly 
Max 

◆ CreatureGroundMovementType

enum class CreatureGroundMovementType : uint8
strong
Enumerator
None 
Run 
Hover 
Max 
83{
84 None,
85 Run,
86 Hover,
87
88 Max
89};

◆ CreatureRandomMovementType

enum class CreatureRandomMovementType : uint8
strong
Enumerator
Walk 
CanRun 
AlwaysRun 
Max 

◆ InhabitTypeValues

Enumerator
INHABIT_GROUND 
INHABIT_WATER 
INHABIT_AIR 
INHABIT_ROOT 
INHABIT_ANYWHERE 
410{
411 INHABIT_GROUND = 1,
412 INHABIT_WATER = 2,
413 INHABIT_AIR = 4,
414 INHABIT_ROOT = 8,
416};
@ INHABIT_AIR
Definition CreatureData.h:413
@ INHABIT_WATER
Definition CreatureData.h:412
@ INHABIT_GROUND
Definition CreatureData.h:411
@ INHABIT_ANYWHERE
Definition CreatureData.h:415
@ INHABIT_ROOT
Definition CreatureData.h:414

Variable Documentation

◆ PET_FOCUS_REGEN_INTERVAL

constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL = 4s
constexpr