diff --git a/src/game/Entities/Creature.cpp b/src/game/Entities/Creature.cpp index 306e0094cc..8371635994 100644 --- a/src/game/Entities/Creature.cpp +++ b/src/game/Entities/Creature.cpp @@ -409,15 +409,17 @@ bool Creature::InitEntry(uint32 Entry, CreatureData const* data /*=nullptr*/, Ga } else if (!data || (data->spawnTemplate->equipmentId == -1)) { - bool usingLoot = false; - if (GetSettings().HasFlag(CreatureStaticFlags::CAN_WIELD_LOOT)) + if (cinfo->EquipmentTemplateId == 0) + LoadEquipment(normalInfo->EquipmentTemplateId, true); // use default from normal template if diff does not have any + else + LoadEquipment(cinfo->EquipmentTemplateId); // else use from diff template + + if (GetSettings().HasFlag(CreatureStaticFlags::CAN_WIELD_LOOT)) // override from loot if any { PrepareBodyLootState(); if (m_loot != nullptr) { auto [mh, oh, ranged] = m_loot->GetQualifiedWeapons(); - if (mh != 0 || oh != 0 || ranged != 0) - usingLoot = true; if (mh != 0) SetVirtualItem(VIRTUAL_ITEM_SLOT_0, mh); @@ -429,13 +431,6 @@ bool Creature::InitEntry(uint32 Entry, CreatureData const* data /*=nullptr*/, Ga SetVirtualItem(VIRTUAL_ITEM_SLOT_0, ranged); } } - if (!usingLoot) - { - if (cinfo->EquipmentTemplateId == 0) - LoadEquipment(normalInfo->EquipmentTemplateId, true); // use default from normal template if diff does not have any - else - LoadEquipment(cinfo->EquipmentTemplateId); // else use from diff template - } } else if (data) {