diff options
author | Adam Borowski <kilobyte@angband.pl> | 2013-10-18 21:24:58 +0200 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2013-10-18 21:28:08 +0200 |
commit | 8930be41e64ba63052918ab72683e56bdb38f30b (patch) | |
tree | 08b4bb68861ece3de6007e47536405ce698d44a3 /crawl-ref/source/spl-util.cc | |
parent | a5d3c69d9522bc4b72ad8d3d0ab473ab1fcb418a (diff) | |
download | crawl-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.cc | 2 |
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--; |