From 234a680d3a04142d0f99dfc316b6442d8a51bad1 Mon Sep 17 00:00:00 2001 From: Ovah Date: Tue, 20 Nov 2018 17:35:41 +0100 Subject: Core/Objects: properly use UPDATETYPE_CREATE_OBJECT2 when creating brand new objects in all cases. Closes #22419 (#22816) (cherry picked from commit fb1d568fbaedb2198ee6a39aac669533d8924c82) --- src/server/game/Entities/Object/Object.cpp | 51 +----------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 1d8f9073e3c..0e33e2d5ef4 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -140,7 +140,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c if (!target) return; - uint8 updateType = UPDATETYPE_CREATE_OBJECT; + uint8 updateType = m_isNewObject ? UPDATETYPE_CREATE_OBJECT2 : UPDATETYPE_CREATE_OBJECT; uint8 objectType = m_objectTypeId; CreateObjectBits flags = m_updateFlag; @@ -151,36 +151,6 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c objectType = TYPEID_ACTIVE_PLAYER; } - switch (GetGUID().GetHigh()) - { - case HighGuid::Player: - case HighGuid::Pet: - case HighGuid::Corpse: - case HighGuid::DynamicObject: - case HighGuid::AreaTrigger: - case HighGuid::SceneObject: - case HighGuid::Conversation: - updateType = UPDATETYPE_CREATE_OBJECT2; - break; - case HighGuid::Creature: - case HighGuid::Vehicle: - { - if (TempSummon const* summon = ToUnit()->ToTempSummon()) - if (summon->GetSummonerGUID().IsPlayer()) - updateType = UPDATETYPE_CREATE_OBJECT2; - - break; - } - case HighGuid::GameObject: - { - if (ToGameObject()->GetOwnerGUID().IsPlayer()) - updateType = UPDATETYPE_CREATE_OBJECT2; - break; - } - default: - break; - } - if (WorldObject const* worldObject = dynamic_cast(this)) { if (!flags.MovementUpdate && !worldObject->m_movementInfo.transport.guid.IsEmpty()) @@ -190,25 +160,6 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c flags.AnimKit = true; } - if (flags.Stationary) - { - // UPDATETYPE_CREATE_OBJECT2 for some gameobject types... - if (isType(TYPEMASK_GAMEOBJECT)) - { - switch (ToGameObject()->GetGoType()) - { - case GAMEOBJECT_TYPE_TRAP: - case GAMEOBJECT_TYPE_DUEL_ARBITER: - case GAMEOBJECT_TYPE_FLAGSTAND: - case GAMEOBJECT_TYPE_FLAGDROP: - updateType = UPDATETYPE_CREATE_OBJECT2; - break; - default: - break; - } - } - } - if (Unit const* unit = ToUnit()) if (unit->GetVictim()) flags.CombatVictim = true; -- cgit v1.2.3