mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 02:04:52 +01:00
Core/DBC: Use CreatureType flags in Creature::CanGiveExperience calculation
This commit is contained in:
@@ -3245,8 +3245,12 @@ void Creature::ClearTextRepeatGroup(uint8 textGroup)
|
||||
|
||||
bool Creature::CanGiveExperience() const
|
||||
{
|
||||
return !IsCritter()
|
||||
&& !IsPet()
|
||||
CreatureTypeEntry const* creatureType = sCreatureTypeStore.AssertEntry(GetCreatureType());
|
||||
|
||||
if (creatureType->HasFlag(CreatureTypeEntryFlags::CREATURE_TYPE_ENTRY_FLAGS_NO_EXPERIENCE))
|
||||
return false;
|
||||
|
||||
return !IsPet()
|
||||
&& !IsTotem()
|
||||
&& !(GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL);
|
||||
}
|
||||
|
||||
@@ -529,12 +529,19 @@ struct CreatureSpellDataEntry
|
||||
//uint32 availability[MAX_CREATURE_SPELL_DATA_SLOT]; // 4-7 m_availability[4]
|
||||
};
|
||||
|
||||
enum CreatureTypeEntryFlags
|
||||
{
|
||||
CREATURE_TYPE_ENTRY_FLAGS_NO_EXPERIENCE = 0x01
|
||||
};
|
||||
|
||||
struct CreatureTypeEntry
|
||||
{
|
||||
uint32 ID; // 0 m_ID
|
||||
//char* Name[16]; // 1-16 name
|
||||
// 17 string flags
|
||||
//uint32 no_expirience; // 18 no exp? critters, non-combat pets, gas cloud.
|
||||
uint32 Flags; // 18 no exp? critters, non-combat pets, gas cloud. (called Flags in struct)
|
||||
|
||||
inline bool HasFlag(CreatureTypeEntryFlags flag) const { return !!(Flags & flag); }
|
||||
};
|
||||
|
||||
/* not used
|
||||
|
||||
@@ -45,7 +45,7 @@ char constexpr CreatureDisplayInfoExtrafmt[] = "diixxxxxxxxxxxxxxxxxx";
|
||||
char constexpr CreatureFamilyfmt[] = "nfifiiiiixssssssssssssssssxx";
|
||||
char constexpr CreatureModelDatafmt[] = "nisxfxxxxxxxxxxffxxxxxxxxxxx";
|
||||
char constexpr CreatureSpellDatafmt[] = "niiiixxxx";
|
||||
char constexpr CreatureTypefmt[] = "nxxxxxxxxxxxxxxxxxx";
|
||||
char constexpr CreatureTypefmt[] = "nxxxxxxxxxxxxxxxxxi";
|
||||
char constexpr CurrencyTypesfmt[] = "xnxi";
|
||||
char constexpr DestructibleModelDatafmt[] = "nxxixxxixxxixxxixxx";
|
||||
char constexpr DungeonEncounterfmt[] = "niixissssssssssssssssxx";
|
||||
|
||||
Reference in New Issue
Block a user