From d00bca7cd698603066d58489556cce6c98122b89 Mon Sep 17 00:00:00 2001 From: zelgadis Date: Fri, 26 Dec 2008 07:03:51 +0000 Subject: Tracers shouldn't affect walls. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7979 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/beam.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'crawl-ref/source/beam.cc') diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index db53a28b74..fc17b837b9 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -1722,6 +1722,9 @@ void bolt::finish_beam() void bolt::affect_wall() { + if (is_tracer) + return; + if (flavour == BEAM_DIGGING) digging_wall_effect(); else if (is_fiery()) @@ -1765,7 +1768,7 @@ void bolt::hit_wall() ray.regress(); } while (ray.pos() != source && grid_is_solid(ray.pos())); // target is where the explosion is centered, so update it. - if (is_explosion) + if (is_explosion && !is_tracer) target = ray.pos(); } finish_beam(); @@ -1904,7 +1907,8 @@ void bolt::do_fire() if (stop_at_target() && pos() == target) break; - ASSERT(!grid_is_solid(grd(pos()))); + ASSERT(!grid_is_solid(grd(pos())) + || (is_tracer && affects_wall(grd(pos())))); const bool was_seen = seen; if (!was_seen && range > 0 && !invisible() && see_grid(pos())) -- cgit v1.2.3-54-g00ecf