aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Events/GameEventMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-11-26 00:20:13 +0100
committerShauren <shauren.trinity@gmail.com>2023-11-26 00:20:13 +0100
commit7cafeb46b3b1f3eea3c966c20f9ef1efe68dfbdc (patch)
tree2cefd8a1424bb4b3a46b73d5c36f9fb1cb86616d /src/server/game/Events/GameEventMgr.cpp
parentece5570c10e51e16fe65403c051dd1286d12a14d (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.cpp12
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;
}
}