diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Pet.cpp | 10 | ||||
-rw-r--r-- | src/game/Unit.cpp | 2 |
2 files changed, 7 insertions, 5 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; } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 100fa5231db..c7a5d45d285 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8273,7 +8273,7 @@ Pet* Unit::GetPet() const return pet; sLog.outError("Unit::GetPet: Pet %u not exist.",GUID_LOPART(pet_guid)); - const_cast<Unit*>(this)->SetUInt64Value(UNIT_FIELD_SUMMON, 0); + //const_cast<Unit*>(this)->SetUInt64Value(UNIT_FIELD_SUMMON, 0); } return NULL; |