diff --git a/Source/monster.cpp b/Source/monster.cpp index d057d13eb..98eb44e7b 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1952,7 +1952,10 @@ void GroupUnity(int i) if (monster.leaderRelation == LeaderRelation::None) return; + // Someone with a leaderRelation should have a leader ... assert(monster.leader >= 0); + // And no unique monster would be a minion of someone else! + assert(monster._uniqtype == 0); auto &leader = Monsters[monster.leader]; if (IsLineNotSolid(monster.position.tile, leader.position.future)) { @@ -1976,23 +1979,6 @@ void GroupUnity(int i) leader._mFlags &= ~MFLAG_ALLOW_SPECIAL; leader._mmode = MM_SATTACK; } - return; - } - - if (monster._uniqtype == 0 || (UniqMonst[monster._uniqtype - 1].mUnqAttr & 2) == 0) - return; - for (int j = 0; j < ActiveMonsterCount; j++) { - auto &minion = Monsters[ActiveMonsters[j]]; - if (minion.leaderRelation != LeaderRelation::Leashed || minion.leader != i) - continue; - if (monster._msquelch > minion._msquelch) { - minion.position.last = monster.position.tile; - minion._msquelch = monster._msquelch - 1; - } - if (minion._mAi == AI_GARG && (minion._mFlags & MFLAG_ALLOW_SPECIAL) != 0) { - minion._mFlags &= ~MFLAG_ALLOW_SPECIAL; - minion._mmode = MM_SATTACK; - } } }