summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monstuff.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-28 20:35:10 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-28 20:35:10 +0000
commit3183b13800fe91b715929ef5f08b5683c1856a87 (patch)
tree0b0824a4e20d62720f827a9b862bf91658ee17f2 /crawl-ref/source/monstuff.cc
parentf05e54a08b3a192cb16ebe3c593c6f97d70226b4 (diff)
downloadcrawl-ref-3183b13800fe91b715929ef5f08b5683c1856a87.tar.gz
crawl-ref-3183b13800fe91b715929ef5f08b5683c1856a87.zip
Properly handle it when a pacified monster can't find a level exit.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6187 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/monstuff.cc')
-rw-r--r--crawl-ref/source/monstuff.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 890b388c13..c1a9155ffd 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -3030,20 +3030,25 @@ static void _handle_behaviour(monsters *mon)
if (mon->travel_target != MTRAV_PATROL
&& mon->travel_target != MTRAV_UNREACHABLE)
{
+ mon->foe = MHITNOT;
+ patrolling = true;
+ mon->travel_path.clear();
+
e_index = _mons_find_nearest_level_exit(mon, e);
if (e_index != -1)
{
- mon->foe = MHITNOT;
-
- patrolling = true;
mon->patrol_point = e[e_index].target;
-
mon->target_x = e[e_index].target.x;
mon->target_y = e[e_index].target.y;
-
mon->travel_target = MTRAV_PATROL;
- mon->travel_path.clear();
+ }
+ else
+ {
+ mon->patrol_point = coord_def(0, 0);
+ mon->target_x = mon->x;
+ mon->target_y = mon->y;
+ mon->travel_target = MTRAV_NONE;
}
}