From 69c7f1f1f76f2a5e0e2ec8b8a939096bbe3fbd71 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Wed, 13 Oct 2021 18:36:53 +0200 Subject: [PATCH] :bug: Don't follow stuck leader --- Source/monster.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index 50165c73b..f59080a00 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1923,7 +1923,8 @@ void GroupUnity(Monster &monster) assert(monster._uniqtype == 0); auto &leader = Monsters[monster.leader]; - if (IsLineNotSolid(monster.position.tile, leader.position.future)) { + bool leaderIsStuck = leader._mmode == MonsterMode::Stand && !DirOK(monster.leader, monster._mdir); + if (!leaderIsStuck && IsLineNotSolid(monster.position.tile, leader.position.future)) { if (monster.leaderRelation == LeaderRelation::Separated && monster.position.tile.WalkingDistance(leader.position.future) < 4) { // Reunite the separated monster with the pack @@ -4368,7 +4369,7 @@ void ProcessMonsters() raflag = MonsterTalk(monster); break; } - if (raflag) { + if (raflag || monster._mmode == MonsterMode::Stand) { GroupUnity(monster); } } while (raflag);