summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monstuff.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/monstuff.cc')
-rw-r--r--crawl-ref/source/monstuff.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 32e3c578ce..3540f91167 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -8125,7 +8125,7 @@ static void _find_good_alternate_move(monsters *monster,
for (int mod = sdir, i = 0; i < 2; mod += inc, i++)
{
- int newdir = (dir + 8 + mod) % 8;
+ const int newdir = (dir + 8 + mod) % 8;
if (good_move[mon_compass[newdir].x+1][mon_compass[newdir].y+1])
{
dist[i] = distance(monster->pos()+mon_compass[newdir],
@@ -8133,11 +8133,13 @@ static void _find_good_alternate_move(monsters *monster,
}
else
{
- dist[i] = (mons_is_fleeing(monster)) ? (-FAR_AWAY)
- : FAR_AWAY;
+ dist[i] = (mons_is_fleeing(monster)) ? (-FAR_AWAY) : FAR_AWAY;
}
}
+ const int dir0 = ((dir + 8 + sdir) % 8);
+ const int dir1 = ((dir + 8 - sdir) % 8);
+
// Now choose.
if (dist[0] == dist[1] && abs(dist[0]) == FAR_AWAY)
continue;
@@ -8147,12 +8149,12 @@ static void _find_good_alternate_move(monsters *monster,
{
if (dist[0] >= dist[1] && dist[0] >= current_distance)
{
- mmov = mon_compass[((dir+8)+sdir)%8];
+ mmov = mon_compass[dir0];
break;
}
if (dist[1] >= dist[0] && dist[1] >= current_distance)
{
- mmov = mon_compass[((dir+8)-sdir)%8];
+ mmov = mon_compass[dir1];
break;
}
}
@@ -8160,12 +8162,12 @@ static void _find_good_alternate_move(monsters *monster,
{
if (dist[0] <= dist[1] && dist[0] <= current_distance)
{
- mmov = mon_compass[((dir+8)+sdir)%8];
+ mmov = mon_compass[dir0];
break;
}
if (dist[1] <= dist[0] && dist[1] <= current_distance)
{
- mmov = mon_compass[((dir+8)-sdir)%8];
+ mmov = mon_compass[dir1];
break;
}
}