diff options
Diffstat (limited to 'crawl-ref/source/view.cc')
-rw-r--r-- | crawl-ref/source/view.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 7494f55f6d..3e6ad5f627 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -711,6 +711,7 @@ static int player_view_update_at(const coord_def &gc) cloud_struct &cl = env.cloud[cloudidx]; cloud_type ctype = cl.type; + bool did_exclude = false; if (!is_harmless_cloud(ctype) && cl.whose == KC_OTHER && cl.killer == KILL_MISC) @@ -718,10 +719,12 @@ static int player_view_update_at(const coord_def &gc) for (adjacent_iterator ai(gc, false); ai; ++ai) { // Optionally add exclude, deferring updates. - if (!cell_is_solid(*ai) && !is_exclude_root(*ai)) + if (!cell_is_solid(*ai)) { + bool was_exclusion = is_exclude_root(*ai); set_exclude(*ai, 0, false, false, true); - ret |= UF_ADDED_EXCLUDE; + if (!did_exclude && !was_exclusion) + ret |= UF_ADDED_EXCLUDE; } } } |