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 "SpawnData.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  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::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 = 0 ,
  CanWalk = 1 ,
  AlwaysWalk = 2 ,
  Max
}
 
enum class  CreatureRandomMovementType : uint8 {
  Walk = 0 ,
  CanRun = 1 ,
  AlwaysRun = 2 ,
  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

◆ 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 
411{
412 CHAT_TYPE_SAY = 0,
413 CHAT_TYPE_YELL = 1,
419 CHAT_TYPE_END = 255
420};
@ CHAT_TYPE_SAY
Definition CreatureData.h:412
@ CHAT_TYPE_BOSS_WHISPER
Definition CreatureData.h:417
@ CHAT_TYPE_TEXT_EMOTE
Definition CreatureData.h:414
@ CHAT_TYPE_BOSS_EMOTE
Definition CreatureData.h:415
@ CHAT_TYPE_END
Definition CreatureData.h:419
@ CHAT_TYPE_ZONE_YELL
Definition CreatureData.h:418
@ CHAT_TYPE_WHISPER
Definition CreatureData.h:416
@ CHAT_TYPE_YELL
Definition CreatureData.h:413

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

◆ CreatureFlightMovementType

enum class CreatureFlightMovementType : uint8
strong
Enumerator
None 
DisableGravity 
CanFly 
Max 

◆ CreatureGroundMovementType

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

◆ CreatureRandomMovementType

enum class CreatureRandomMovementType : uint8
strong
Enumerator
Walk 
CanRun 
AlwaysRun 
Max 

◆ InhabitTypeValues

Enumerator
INHABIT_GROUND 
INHABIT_WATER 
INHABIT_AIR 
INHABIT_ROOT 
INHABIT_ANYWHERE 
401{
402 INHABIT_GROUND = 1,
403 INHABIT_WATER = 2,
404 INHABIT_AIR = 4,
405 INHABIT_ROOT = 8,
407};
@ INHABIT_AIR
Definition CreatureData.h:404
@ INHABIT_WATER
Definition CreatureData.h:403
@ INHABIT_GROUND
Definition CreatureData.h:402
@ INHABIT_ANYWHERE
Definition CreatureData.h:406
@ INHABIT_ROOT
Definition CreatureData.h:405

Variable Documentation

◆ PET_FOCUS_REGEN_INTERVAL

constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL = 4s
constexpr