From 7cafeb46b3b1f3eea3c966c20f9ef1efe68dfbdc Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Nov 2023 00:20:13 +0100 Subject: Core/Creatures: Don't require `creature`.`modelid` to be one of linked `creature_template` models --- src/server/game/Events/GameEventMgr.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/server/game/Events/GameEventMgr.cpp') diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 59ce82d1b3c..12781909151 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -1364,14 +1364,20 @@ void GameEventMgr::ChangeEquipOrModel(int16 event_id, bool activate) CreatureData& data2 = sObjectMgr->NewOrExistCreatureData(itr->first); if (activate) { - itr->second.modelid_prev = data2.displayid; + itr->second.modelid_prev = data2.display ? data2.display->CreatureDisplayID : 0; itr->second.equipement_id_prev = data2.equipmentId; - data2.displayid = itr->second.modelid; + if (itr->second.modelid) + data2.display.emplace(itr->second.modelid, DEFAULT_PLAYER_DISPLAY_SCALE, 1.0f); + else + data2.display.reset(); data2.equipmentId = itr->second.equipment_id; } else { - data2.displayid = itr->second.modelid_prev; + if (itr->second.modelid_prev) + data2.display.emplace(itr->second.modelid_prev, DEFAULT_PLAYER_DISPLAY_SCALE, 1.0f); + else + data2.display.reset(); data2.equipmentId = itr->second.equipement_id_prev; } } -- cgit v1.2.3