summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-util.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2013-10-18 21:24:58 +0200
committerAdam Borowski <kilobyte@angband.pl>2013-10-18 21:28:08 +0200
commit8930be41e64ba63052918ab72683e56bdb38f30b (patch)
tree08b4bb68861ece3de6007e47536405ce698d44a3 /crawl-ref/source/spl-util.cc
parenta5d3c69d9522bc4b72ad8d3d0ab473ab1fcb418a (diff)
downloadcrawl-ref-8930be41e64ba63052918ab72683e56bdb38f30b.tar.gz
crawl-ref-8930be41e64ba63052918ab72683e56bdb38f30b.zip
Fix all uses of apply_area_cloud(), if the origin is solid.
Some cloud generators have the cloud flow from a wall or a statue. They use targetter_cloud which doesn't allow that, except they don't use the regular interface but read the targetter's internal data, which skips some validation.
Diffstat (limited to 'crawl-ref/source/spl-util.cc')
-rw-r--r--crawl-ref/source/spl-util.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/crawl-ref/source/spl-util.cc b/crawl-ref/source/spl-util.cc
index 424f9ea25b..3d047f6bfd 100644
--- a/crawl-ref/source/spl-util.cc
+++ b/crawl-ref/source/spl-util.cc
@@ -727,7 +727,7 @@ void apply_area_cloud(cloud_func func, const coord_def& where,
q[el] = q[q.size() - 1];
q.pop_back();
- if (place.seen[c] <= 0)
+ if (place.seen[c] <= 0 || cell_is_solid(c))
continue;
func(c, pow, spread_rate, ctype, agent, colour, name, tile, excl_rad);
number--;