summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r--crawl-ref/source/view.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 7fedaa0110..d641ac4f02 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -3836,9 +3836,6 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
return (false);
}
- if (!suppress_msg)
- mpr( "You feel aware of your surroundings." );
-
if (map_radius > 50 && map_radius != 1000)
map_radius = 50;
else if (map_radius < 5)
@@ -3848,8 +3845,10 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
const int pfar = (map_radius * 7) / 10;
const int very_far = (map_radius * 9) / 10;
- const bool wizard_map = map_radius == 1000 && you.wizard;
- for ( radius_iterator ri(you.pos(), map_radius, true, false); ri; ++ri )
+ const bool wizard_map = (you.wizard && map_radius == 1000);
+
+ bool did_map = false;
+ for (radius_iterator ri(you.pos(), map_radius, true, false); ri; ++ri)
{
if (proportion < 100 && random2(100) >= proportion)
continue; // note that proportion can be over 100
@@ -3875,7 +3874,7 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
}
#endif
- if (!wizard_map && is_terrain_known(*ri))
+ if (!wizard_map && (is_terrain_known(*ri) || is_terrain_seen(*ri)))
continue;
bool open = true;
@@ -3883,7 +3882,7 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
if (grid_is_solid(grd(*ri)) && grd(*ri) != DNGN_CLOSED_DOOR)
{
open = false;
- for ( adjacent_iterator ai(*ri); ai; ++ai )
+ for (adjacent_iterator ai(*ri); ai; ++ai)
{
if (map_bounds(*ai) && (!grid_is_opaque(grd(*ai))
|| grd(*ai) == DNGN_CLOSED_DOOR))
@@ -3894,7 +3893,7 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
}
}
- if (open > 0)
+ if (open)
{
if (wizard_map || !get_envmap_obj(*ri))
set_envmap_obj(*ri, grd(*ri));
@@ -3903,10 +3902,18 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
set_terrain_seen(*ri);
else
set_terrain_mapped(*ri);
+
+ did_map = true;
}
}
- return (true);
+ if (!suppress_msg)
+ {
+ mpr(did_map ? "You feel aware of your surroundings."
+ : "You feel momentarily disoriented.");
+ }
+
+ return (did_map);
}
// Realize that this is simply a repackaged version of