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

Go to the source code of this file.

Classes

struct  CreatureMovementData
 
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_UNUSED_12 = 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_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_UNUSED = (CREATURE_FLAG_EXTRA_UNUSED_12) ,
  CREATURE_FLAG_EXTRA_DB_ALLOWED = (0xFFFFFFFF & ~(CREATURE_FLAG_EXTRA_UNUSED | 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 
409{
410 CHAT_TYPE_SAY = 0,
411 CHAT_TYPE_YELL = 1,
417 CHAT_TYPE_END = 255
418};
@ CHAT_TYPE_SAY
Definition: CreatureData.h:410
@ CHAT_TYPE_BOSS_WHISPER
Definition: CreatureData.h:415
@ CHAT_TYPE_TEXT_EMOTE
Definition: CreatureData.h:412
@ CHAT_TYPE_BOSS_EMOTE
Definition: CreatureData.h:413
@ CHAT_TYPE_END
Definition: CreatureData.h:417
@ CHAT_TYPE_ZONE_YELL
Definition: CreatureData.h:416
@ CHAT_TYPE_WHISPER
Definition: CreatureData.h:414
@ CHAT_TYPE_YELL
Definition: CreatureData.h:411

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

◆ CreatureFlightMovementType

enum class CreatureFlightMovementType : uint8
strong
Enumerator
None 
DisableGravity 
CanFly 
Max 

◆ CreatureGroundMovementType

enum class CreatureGroundMovementType : uint8
strong
Enumerator
None 
Run 
Hover 
Max 
89{
90 None,
91 Run,
92 Hover,
93
94 Max
95};

◆ CreatureRandomMovementType

enum class CreatureRandomMovementType : uint8
strong
Enumerator
Walk 
CanRun 
AlwaysRun 
Max 

◆ InhabitTypeValues

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

Variable Documentation

◆ PET_FOCUS_REGEN_INTERVAL

constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL = 4s
constexpr