From 93796bb01d8062ca490fb83604357e247c9d8200 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 27 Oct 2022 10:23:51 +0200 Subject: [PATCH] fix(Core/Creatures): Fixed loading transform auras from DB. (#13489) Fixes #13472 --- src/server/game/Entities/Creature/Creature.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index a2a3b48e1..70ccb628a 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1139,8 +1139,6 @@ bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, u break; } - LoadCreaturesAddon(); - uint32 displayID = GetNativeDisplayId(); if (sObjectMgr->GetCreatureModelRandomGender(&displayID) && !IsTotem()) // Cancel load if no model defined or if totem { @@ -1148,6 +1146,8 @@ bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, u SetNativeDisplayId(displayID); } + LoadCreaturesAddon(); + //! Need to be called after LoadCreaturesAddon - MOVEMENTFLAG_HOVER is set there m_positionZ += GetHoverHeight(); @@ -2031,11 +2031,15 @@ void Creature::Respawn(bool force) setDeathState(JUST_RESPAWNED); // MDic - Acidmanifesto - uint32 displayID = GetNativeDisplayId(); - if (sObjectMgr->GetCreatureModelRandomGender(&displayID)) // Cancel load if no model defined + // Do not override transform auras + if (GetAuraEffectsByType(SPELL_AURA_TRANSFORM).empty()) { - SetDisplayId(displayID); - SetNativeDisplayId(displayID); + uint32 displayID = GetNativeDisplayId(); + if (sObjectMgr->GetCreatureModelRandomGender(&displayID)) // Cancel load if no model defined + { + SetDisplayId(displayID); + SetNativeDisplayId(displayID); + } } GetMotionMaster()->InitDefault();