*Fix a crash caused by summoncreature.
--HG-- branch : trunk
This commit is contained in:
@@ -97,9 +97,8 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
|
|||||||
boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c)
|
boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c)
|
||||||
{
|
{
|
||||||
pInstance = ((ScriptedInstance*)c->GetInstanceData());
|
pInstance = ((ScriptedInstance*)c->GetInstanceData());
|
||||||
Adds.clear();
|
|
||||||
Reset();
|
|
||||||
SummonAdds();
|
SummonAdds();
|
||||||
|
Reset();
|
||||||
Heroic = c->GetMap()->IsHeroic();
|
Heroic = c->GetMap()->IsHeroic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-3
@@ -1623,6 +1623,11 @@ Map* WorldObject::GetMap() const
|
|||||||
return MapManager::Instance().GetMap(GetMapId(), this);
|
return MapManager::Instance().GetMap(GetMapId(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map* WorldObject::FindMap() const
|
||||||
|
{
|
||||||
|
return MapManager::Instance().FindMap(GetMapId(), GetInstanceId());
|
||||||
|
}
|
||||||
|
|
||||||
Map const* WorldObject::GetBaseMap() const
|
Map const* WorldObject::GetBaseMap() const
|
||||||
{
|
{
|
||||||
return MapManager::Instance().GetBaseMap(GetMapId());
|
return MapManager::Instance().GetBaseMap(GetMapId());
|
||||||
@@ -1694,13 +1699,14 @@ TempSummon *Map::SummonCreature(uint32 entry, float x, float y, float z, float a
|
|||||||
|
|
||||||
TempSummon* WorldObject::SummonCreature(uint32 entry, float x, float y, float z, float ang, TempSummonType spwtype, uint32 duration)
|
TempSummon* WorldObject::SummonCreature(uint32 entry, float x, float y, float z, float ang, TempSummonType spwtype, uint32 duration)
|
||||||
{
|
{
|
||||||
if(!IsInWorld())
|
Map *map = FindMap();
|
||||||
|
if(!map)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (x == 0.0f && y == 0.0f && z == 0.0f)
|
if (x == 0.0f && y == 0.0f && z == 0.0f)
|
||||||
GetClosePoint(x, y, z, GetObjectSize());
|
GetClosePoint(x, y, z, GetObjectSize());
|
||||||
|
|
||||||
TempSummon *pCreature = GetMap()->SummonCreature(entry, x, y, z, ang, NULL, duration, GetTypeId() == TYPEID_UNIT ? (Unit*)this : NULL);
|
TempSummon *pCreature = map->SummonCreature(entry, x, y, z, ang, NULL, duration, GetTypeId() == TYPEID_UNIT ? (Unit*)this : NULL);
|
||||||
if(!pCreature)
|
if(!pCreature)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@@ -1817,7 +1823,6 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy
|
|||||||
pet->GetCharmInfo()->SetPetNumber(pet_number, false);
|
pet->GetCharmInfo()->SetPetNumber(pet_number, false);
|
||||||
|
|
||||||
pet->AIM_Initialize();
|
pet->AIM_Initialize();
|
||||||
|
|
||||||
map->Add((Creature*)pet);
|
map->Add((Creature*)pet);
|
||||||
|
|
||||||
pet->setPowerType(POWER_MANA);
|
pet->setPowerType(POWER_MANA);
|
||||||
|
|||||||
@@ -506,6 +506,7 @@ class TRINITY_DLL_SPEC WorldObject : public Object
|
|||||||
void SendPlaySound(uint32 Sound, bool OnlySelf);
|
void SendPlaySound(uint32 Sound, bool OnlySelf);
|
||||||
|
|
||||||
Map * GetMap() const;
|
Map * GetMap() const;
|
||||||
|
Map * FindMap() const;
|
||||||
Map const* GetBaseMap() const;
|
Map const* GetBaseMap() const;
|
||||||
TempSummon* SummonCreature(uint32 id, float x, float y, float z, float ang,TempSummonType spwtype,uint32 despwtime);
|
TempSummon* SummonCreature(uint32 id, float x, float y, float z, float ang,TempSummonType spwtype,uint32 despwtime);
|
||||||
Vehicle* SummonVehicle(uint32 entry, float x, float y, float z, float ang);
|
Vehicle* SummonVehicle(uint32 entry, float x, float y, float z, float ang);
|
||||||
|
|||||||
Reference in New Issue
Block a user