[11843] More improvements to LoadCreatureAddon, Thanks to Shauren and Vladimir for pointing

This commit is contained in:
Schmoozerd 2011-11-08 18:40:39 +01:00
parent 62c4f5e6bf
commit 2166621df0
4 changed files with 9 additions and 9 deletions

View file

@ -784,7 +784,7 @@ bool Creature::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo cons
cPos.GetMap()->GetCreatureLinkingHolder()->AddMasterToHolder(this); cPos.GetMap()->GetCreatureLinkingHolder()->AddMasterToHolder(this);
} }
LoadCreatureAddon(false, cPos.GetMap()); LoadCreatureAddon(false);
return true; return true;
} }
@ -1911,7 +1911,7 @@ CreatureDataAddon const* Creature::GetCreatureAddon() const
} }
//creature_addon table //creature_addon table
bool Creature::LoadCreatureAddon(bool reload /*= false*/, Map* map /*= NULL*/) bool Creature::LoadCreatureAddon(bool reload)
{ {
CreatureDataAddon const *cainfo = GetCreatureAddon(); CreatureDataAddon const *cainfo = GetCreatureAddon();
if(!cainfo) if(!cainfo)
@ -1957,7 +1957,7 @@ bool Creature::LoadCreatureAddon(bool reload /*= false*/, Map* map /*= NULL*/)
{ {
for (uint32 const* cAura = cainfo->auras; *cAura; ++cAura) for (uint32 const* cAura = cainfo->auras; *cAura; ++cAura)
{ {
if (HasAura(*cAura)) if (HasAuraOfDifficulty(*cAura))
{ {
if (!reload) if (!reload)
sLog.outErrorDb("Creature (GUIDLow: %u Entry: %u) has spell %u in `auras` field, but aura is already applied.", GetGUIDLow(), GetEntry(), *cAura); sLog.outErrorDb("Creature (GUIDLow: %u Entry: %u) has spell %u in `auras` field, but aura is already applied.", GetGUIDLow(), GetEntry(), *cAura);
@ -1967,9 +1967,9 @@ bool Creature::LoadCreatureAddon(bool reload /*= false*/, Map* map /*= NULL*/)
SpellEntry const* spellInfo = sSpellStore.LookupEntry(*cAura); // Already checked on load SpellEntry const* spellInfo = sSpellStore.LookupEntry(*cAura); // Already checked on load
// Get Difficulty mode for initial case (npc not yet added to map) // Get Difficulty mode for initial case (npc not yet added to world)
if (spellInfo->SpellDifficultyId && !reload && map && map->IsDungeon()) if (spellInfo->SpellDifficultyId && !reload && GetMap()->IsDungeon())
if (SpellEntry const* spellEntry = GetSpellEntryByDifficulty(spellInfo->SpellDifficultyId, map->GetDifficulty(), map->IsRaid())) if (SpellEntry const* spellEntry = GetSpellEntryByDifficulty(spellInfo->SpellDifficultyId, GetMap()->GetDifficulty(), GetMap()->IsRaid()))
spellInfo = spellEntry; spellInfo = spellEntry;
CastSpell(this, spellInfo, true); CastSpell(this, spellInfo, true);

View file

@ -462,7 +462,7 @@ class MANGOS_DLL_SPEC Creature : public Unit
void RemoveFromWorld(); void RemoveFromWorld();
bool Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo const* cinfo, Team team = TEAM_NONE, const CreatureData *data = NULL, GameEventCreatureData const* eventData = NULL); bool Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo const* cinfo, Team team = TEAM_NONE, const CreatureData *data = NULL, GameEventCreatureData const* eventData = NULL);
bool LoadCreatureAddon(bool reload = false, Map* map = NULL); bool LoadCreatureAddon(bool reload);
void SelectLevel(const CreatureInfo *cinfo, float percentHealth = 100.0f, float percentMana = 100.0f); void SelectLevel(const CreatureInfo *cinfo, float percentHealth = 100.0f, float percentMana = 100.0f);
void LoadEquipment(uint32 equip_entry, bool force=false); void LoadEquipment(uint32 equip_entry, bool force=false);

View file

@ -64,7 +64,7 @@ bool Totem::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo const*
if (InstanceData* iData = GetMap()->GetInstanceData()) if (InstanceData* iData = GetMap()->GetInstanceData())
iData->OnCreatureCreate(this); iData->OnCreatureCreate(this);
LoadCreatureAddon(false, cPos.GetMap()); LoadCreatureAddon(false);
return true; return true;
} }

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "11842" #define REVISION_NR "11843"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__