diff options
Diffstat (limited to 'src/game/Pet.cpp')
| -rw-r--r-- | src/game/Pet.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index 71f45507d45..91630eda9a4 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -210,8 +210,6 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool } owner->SetPet(this, true); - AIM_Initialize(); - map->Add((Creature*)this); InitStatsForLevel(petlevel); SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); @@ -314,6 +312,9 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool sLog.outDebug("New Pet has guid %u", GetGUIDLow()); + AIM_Initialize(); + map->Add((Creature*)this); + if(owner->GetTypeId() == TYPEID_PLAYER) { ((Player*)owner)->PetSpellInitialize(); @@ -1362,8 +1363,8 @@ bool Pet::learnSpell(uint32 spell_id) WorldPacket data(SMSG_PET_LEARNED_SPELL, 2); data << uint16(spell_id); ((Player*)owner)->GetSession()->SendPacket(&data); + ((Player*)owner)->PetSpellInitialize(); } - ((Player*)owner)->PetSpellInitialize(); } return true; } @@ -1603,7 +1604,8 @@ bool Pet::resetTalents(bool no_cost) m_resetTalentsCost = cost; m_resetTalentsTime = time(NULL); } - player->PetSpellInitialize(); + if(!m_loading) + player->PetSpellInitialize(); return true; } |
