mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 07:48:02 +00:00
Core/TempSummons: avoid use MoveInLineOfSight before InitSummon (#20999)
This commit is contained in:
@@ -274,6 +274,11 @@ void TempSummon::InitSummon()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TempSummon::UpdateObjectVisibilityOnCreate()
|
||||||
|
{
|
||||||
|
WorldObject::UpdateObjectVisibility(true);
|
||||||
|
}
|
||||||
|
|
||||||
void TempSummon::SetTempSummonType(TempSummonType type)
|
void TempSummon::SetTempSummonType(TempSummonType type)
|
||||||
{
|
{
|
||||||
m_type = type;
|
m_type = type;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ public:
|
|||||||
virtual void InitStats(uint32 lifetime);
|
virtual void InitStats(uint32 lifetime);
|
||||||
virtual void InitSummon();
|
virtual void InitSummon();
|
||||||
virtual void UnSummon(uint32 msTime = 0);
|
virtual void UnSummon(uint32 msTime = 0);
|
||||||
|
void UpdateObjectVisibilityOnCreate() override;
|
||||||
void RemoveFromWorld() override;
|
void RemoveFromWorld() override;
|
||||||
void SetTempSummonType(TempSummonType type);
|
void SetTempSummonType(TempSummonType type);
|
||||||
void SaveToDB(uint32 /*mapid*/, uint8 /*spawnMask*/, uint32 /*phaseMask*/) override {}
|
void SaveToDB(uint32 /*mapid*/, uint8 /*spawnMask*/, uint32 /*phaseMask*/) override {}
|
||||||
|
|||||||
@@ -2274,7 +2274,9 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert
|
|||||||
|
|
||||||
summon->InitSummon();
|
summon->InitSummon();
|
||||||
|
|
||||||
//ObjectAccessor::UpdateObjectVisibility(summon);
|
// call MoveInLineOfSight for nearby creatures
|
||||||
|
Acore::AIRelocationNotifier notifier(*summon);
|
||||||
|
Cell::VisitAllObjects(summon, notifier, GetVisibilityRange());
|
||||||
|
|
||||||
return summon;
|
return summon;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -558,6 +558,7 @@ public:
|
|||||||
|
|
||||||
void DestroyForNearbyPlayers();
|
void DestroyForNearbyPlayers();
|
||||||
virtual void UpdateObjectVisibility(bool forced = true, bool fromUpdate = false);
|
virtual void UpdateObjectVisibility(bool forced = true, bool fromUpdate = false);
|
||||||
|
virtual void UpdateObjectVisibilityOnCreate() { UpdateObjectVisibility(true); }
|
||||||
void BuildUpdate(UpdateDataMapType& data_map, UpdatePlayerSet& player_set) override;
|
void BuildUpdate(UpdateDataMapType& data_map, UpdatePlayerSet& player_set) override;
|
||||||
void GetCreaturesWithEntryInRange(std::list<Creature*>& creatureList, float radius, uint32 entry);
|
void GetCreaturesWithEntryInRange(std::list<Creature*>& creatureList, float radius, uint32 entry);
|
||||||
|
|
||||||
|
|||||||
@@ -561,7 +561,7 @@ bool Map::AddToMap(T* obj, bool checkTransport)
|
|||||||
if (obj->IsInWorld())
|
if (obj->IsInWorld())
|
||||||
{
|
{
|
||||||
ASSERT(obj->IsInGrid());
|
ASSERT(obj->IsInGrid());
|
||||||
obj->UpdateObjectVisibility(true);
|
obj->UpdateObjectVisibilityOnCreate();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user