summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/files.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-28 22:25:51 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-03-28 22:25:51 +0000
commit262fc856ccb0dbc4462aa71cfb7f56d81cd9b03d (patch)
treed61ecb381260e80786c22c0767f74188cadac5d6 /crawl-ref/source/files.cc
parent1164be44d09a7f8ece0fbfb49c37565ca812da00 (diff)
downloadcrawl-ref-262fc856ccb0dbc4462aa71cfb7f56d81cd9b03d.tar.gz
crawl-ref-262fc856ccb0dbc4462aa71cfb7f56d81cd9b03d.zip
Implement jpeg's suggestion in [2717473]: you'll now get a message like
"Your zombified allies stay behind." if you go down stairs with them adjacent. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9564 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/files.cc')
-rw-r--r--crawl-ref/source/files.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc
index 35f2cbdbd2..b4332c5e73 100644
--- a/crawl-ref/source/files.cc
+++ b/crawl-ref/source/files.cc
@@ -959,6 +959,8 @@ static void _grab_followers()
{
const bool can_follow = level_type_allows_followers(you.level_type);
+ int non_stair_using_allies = 0;
+
// Handle nearby ghosts.
for (adjacent_iterator ai; ai; ++ai)
{
@@ -966,6 +968,9 @@ static void _grab_followers()
if (fmenv == NULL)
continue;
+ if (!mons_can_use_stairs(fmenv))
+ non_stair_using_allies++;
+
if (fmenv->type == MONS_PLAYER_GHOST
&& fmenv->hit_points < fmenv->max_hit_points / 2)
{
@@ -976,6 +981,15 @@ static void _grab_followers()
if (can_follow)
{
+ if (non_stair_using_allies > 0)
+ {
+ // XXX: This assumes that the only monsters that are
+ // incapable of using stairs are zombified.
+ mprf("Your zombified all%s stay%s behind.",
+ non_stair_using_allies > 1 ? "ies" : "y",
+ non_stair_using_allies > 1 ? "" : "s");
+ }
+
memset(travel_point_distance, 0, sizeof(travel_distance_grid_t));
std::vector<coord_def> places[2];
int place_set = 0;