From fddd6cdf3fb342b98d4878d23874f60498d7545a Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 23 Apr 2022 23:03:22 +0200 Subject: Core/Objects: Initialize position data and zone/instance script for all worldobject types (except player) --- src/server/game/Entities/AreaTrigger/AreaTrigger.cpp | 3 +++ src/server/game/Entities/Conversation/Conversation.cpp | 3 +++ src/server/game/Entities/Corpse/Corpse.cpp | 3 +++ src/server/game/Entities/DynamicObject/DynamicObject.cpp | 3 +++ src/server/game/Entities/SceneObject/SceneObject.cpp | 3 +++ src/server/game/Maps/Map.cpp | 3 +++ 6 files changed, 18 insertions(+) (limited to 'src/server') diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index dd3599cb791..5d10f1ab305 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -166,6 +166,9 @@ bool AreaTrigger::Create(uint32 areaTriggerCreatePropertiesId, Unit* caster, Uni m_movementInfo.transport.guid = target->GetGUID(); } + UpdatePositionData(); + SetZoneScript(); + UpdateShape(); uint32 timeToTarget = GetCreateProperties()->TimeToTarget != 0 ? GetCreateProperties()->TimeToTarget : *m_areaTriggerData->Duration; diff --git a/src/server/game/Entities/Conversation/Conversation.cpp b/src/server/game/Entities/Conversation/Conversation.cpp index a6a456ae2e0..a7259107561 100644 --- a/src/server/game/Entities/Conversation/Conversation.cpp +++ b/src/server/game/Entities/Conversation/Conversation.cpp @@ -170,6 +170,9 @@ bool Conversation::Create(ObjectGuid::LowType lowGuid, uint32 conversationEntry, Object::_Create(ObjectGuid::Create(GetMapId(), conversationEntry, lowGuid)); PhasingHandler::InheritPhaseShift(this, creator); + UpdatePositionData(); + SetZoneScript(); + SetEntry(conversationEntry); SetObjectScale(1.0f); diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp index c0e267c6b28..9f2d6772d46 100644 --- a/src/server/game/Entities/Corpse/Corpse.cpp +++ b/src/server/game/Entities/Corpse/Corpse.cpp @@ -89,6 +89,9 @@ bool Corpse::Create(ObjectGuid::LowType guidlow, Player* owner) PhasingHandler::InheritPhaseShift(this, owner); + UpdatePositionData(); + SetZoneScript(); + return true; } diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp index fb15e8d723f..2deee2146d9 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp +++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp @@ -94,6 +94,9 @@ bool DynamicObject::CreateDynamicObject(ObjectGuid::LowType guidlow, Unit* caste WorldObject::_Create(ObjectGuid::Create(GetMapId(), spell->Id, guidlow)); PhasingHandler::InheritPhaseShift(this, caster); + UpdatePositionData(); + SetZoneScript(); + SetEntry(spell->Id); SetObjectScale(1.0f); auto dynamicObjectData = m_values.ModifyValue(&DynamicObject::m_dynamicObjectData); diff --git a/src/server/game/Entities/SceneObject/SceneObject.cpp b/src/server/game/Entities/SceneObject/SceneObject.cpp index e75c8c9c2f8..73f9bf22b88 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.cpp +++ b/src/server/game/Entities/SceneObject/SceneObject.cpp @@ -119,6 +119,9 @@ bool SceneObject::Create(ObjectGuid::LowType lowGuid, SceneType type, uint32 sce Object::_Create(ObjectGuid::Create(GetMapId(), sceneId, lowGuid)); PhasingHandler::InheritPhaseShift(this, creator); + UpdatePositionData(); + SetZoneScript(); + SetEntry(scriptPackageId); SetObjectScale(1.0f); diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 26f0a0f3287..3edf4559c30 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -4868,6 +4868,9 @@ Corpse* Map::ConvertCorpseToBones(ObjectGuid const& ownerGuid, bool insignia /*= PhasingHandler::InheritPhaseShift(bones, corpse); + bones->UpdatePositionData(); + bones->SetZoneScript(); + AddCorpse(bones); // add bones in grid store if grid loaded where corpse placed -- cgit v1.2.3