diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-11-26 00:20:13 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-11-26 00:20:13 +0100 |
commit | 7cafeb46b3b1f3eea3c966c20f9ef1efe68dfbdc (patch) | |
tree | 2cefd8a1424bb4b3a46b73d5c36f9fb1cb86616d /src/server/game/Events/GameEventMgr.cpp | |
parent | ece5570c10e51e16fe65403c051dd1286d12a14d (diff) |
Core/Creatures: Don't require `creature`.`modelid` to be one of linked `creature_template` models
Diffstat (limited to 'src/server/game/Events/GameEventMgr.cpp')
-rw-r--r-- | src/server/game/Events/GameEventMgr.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
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; } } |