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/Entities | |
| parent | ece5570c10e51e16fe65403c051dd1286d12a14d (diff) | |
Core/Creatures: Don't require `creature`.`modelid` to be one of linked `creature_template` models
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/CreatureData.h | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 304f3d2df8d..884d48f6f7e 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1439,7 +1439,7 @@ void Creature::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDiffic CreatureTemplate const* cinfo = GetCreatureTemplate(); if (cinfo) { - for (CreatureModel model : cinfo->Models) + for (CreatureModel const& model : cinfo->Models) if (displayId && displayId == model.CreatureDisplayID) displayId = 0; @@ -1460,7 +1460,10 @@ void Creature::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDiffic data.spawnId = m_spawnId; ASSERT(data.spawnId == m_spawnId); data.id = GetEntry(); - data.displayid = displayId; + if (displayId) + data.display.emplace(displayId, DEFAULT_PLAYER_DISPLAY_SCALE, 1.0f); + else + data.display.reset(); data.equipmentId = GetCurrentEquipmentId(); if (!GetTransport()) { diff --git a/src/server/game/Entities/Creature/CreatureData.h b/src/server/game/Entities/Creature/CreatureData.h index 949c4ab3fa7..31961aa04c9 100644 --- a/src/server/game/Entities/Creature/CreatureData.h +++ b/src/server/game/Entities/Creature/CreatureData.h @@ -613,7 +613,7 @@ struct EquipmentInfo struct CreatureData : public SpawnData { CreatureData() : SpawnData(SPAWN_TYPE_CREATURE) { } - uint32 displayid = 0; + Optional<CreatureModel> display; int8 equipmentId = 0; float wander_distance = 0.0f; uint32 currentwaypoint = 0; |
