From 8c26b9350d4817d05530f4fd1a9c1c0a4f26edcc Mon Sep 17 00:00:00 2001 From: ModoX Date: Thu, 31 Aug 2023 16:15:03 +0200 Subject: Core/Creature: Fixed logic for npcflag, unitflags when saving creatures to db * 06ea822a315a771fa0b3410716361b9df091cf6f followup --- src/server/game/Entities/Creature/Creature.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index dc3c4b86a32..0b09a1a2316 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1421,6 +1421,7 @@ void Creature::SaveToDB(uint32 mapid, std::vector const& spawnDiffic CreatureData& data = sObjectMgr->NewOrExistCreatureData(m_spawnId); uint32 displayId = GetNativeDisplayId(); + uint64 spawnNpcFlags = (uint64(m_unitData->NpcFlags[1]) << 32) | m_unitData->NpcFlags[0]; Optional npcflag; Optional unitFlags; Optional unitFlags2; @@ -1434,17 +1435,17 @@ void Creature::SaveToDB(uint32 mapid, std::vector const& spawnDiffic if (displayId && displayId == model.CreatureDisplayID) displayId = 0; - if (npcflag != cinfo->npcflag) - unitFlags = (uint64(m_unitData->NpcFlags[1]) << 32) | m_unitData->NpcFlags[0]; + if (spawnNpcFlags != cinfo->npcflag) + npcflag = spawnNpcFlags; - if (unitFlags != cinfo->unit_flags) + if (m_unitData->Flags != cinfo->unit_flags) unitFlags = m_unitData->Flags; - if (unitFlags2 != cinfo->unit_flags2) - unitFlags = m_unitData->Flags2; + if (m_unitData->Flags2 != cinfo->unit_flags2) + unitFlags2 = m_unitData->Flags2; - if (unitFlags3 != cinfo->unit_flags3) - unitFlags = m_unitData->Flags3; + if (m_unitData->Flags3 != cinfo->unit_flags3) + unitFlags3 = m_unitData->Flags3; } if (!data.spawnId) -- cgit v1.2.3