diff --git a/src/core/application.cpp b/src/core/application.cpp index bd6349f4..35fe919a 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -652,8 +652,9 @@ void Application::setupUICallbacks() { uint32_t factionGroup = dbc->getUInt32(i, 3); uint32_t enemyGroup = dbc->getUInt32(i, 5); bool hostile = (enemyGroup & playerFriendGroup) != 0; - // Monster factionGroup bit (4) = hostile to players - if (!hostile && (factionGroup & 4) != 0) { + // Monster factionGroup bit (8) = hostile to players + // Bits: 1=Player, 2=Alliance, 4=Horde, 8=Monster + if (!hostile && (factionGroup & 8) != 0) { hostile = true; } // Check individual enemy faction IDs (fields 6-9) diff --git a/src/game/npc_manager.cpp b/src/game/npc_manager.cpp index 2030ea9e..8fc2f2a1 100644 --- a/src/game/npc_manager.cpp +++ b/src/game/npc_manager.cpp @@ -751,8 +751,9 @@ void NpcManager::initialize(pipeline::AssetManager* am, uint32_t enemyGroup = dbc->getUInt32(i, 5); // Check group-level hostility bool hostile = (enemyGroup & playerFriendGroup) != 0; - // Check if creature is a Monster type (factionGroup bit 4) - if (!hostile && (factionGroup & 4) != 0) { + // Check if creature is a Monster type (factionGroup bit 8) + // Bits: 1=Player, 2=Alliance, 4=Horde, 8=Monster + if (!hostile && (factionGroup & 8) != 0) { hostile = true; } // Check individual enemy faction IDs (fields 6-9)