diff options
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r-- | crawl-ref/source/acr.cc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 412bf124ef..ec6f786083 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -495,8 +495,7 @@ static void handle_wizard_command( void ) banished( DNGN_ENTER_ABYSS ); else { - grd[you.x_pos][you.y_pos] = DNGN_EXIT_ABYSS; - down_stairs(true, you.your_level, true); + down_stairs(true, you.your_level, DNGN_EXIT_ABYSS); untag_followers(); } break; @@ -2066,6 +2065,20 @@ static void decrement_durations() } } +static void check_banished() +{ + if (you.banished) + { + you.banished = false; + + if (you.level_type != LEVEL_ABYSS) + { + mpr("You are cast into the Abyss!"); + banished(DNGN_ENTER_ABYSS); + } + } +} + /* Perhaps we should write functions like: update_repel_undead(), update_liquid_flames(), and so on. Even better, we could have a vector of callback functions (or objects) which get installed @@ -2082,6 +2095,7 @@ static void world_reacts() you.num_turns++; update_turn_count(); } + check_banished(); run_environment_effects(); @@ -2162,6 +2176,7 @@ static void world_reacts() viewwindow(1, true); handle_monsters(); + check_banished(); ASSERT(you.time_taken >= 0); // make sure we don't overflow |