summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorMatthew Cline <zelgadis@sourceforge.net>2009-11-01 15:12:31 -0800
committerMatthew Cline <zelgadis@sourceforge.net>2009-11-01 15:12:31 -0800
commitdde86f0f2b3ecbb4535c450bc68771c6df90c578 (patch)
treea5d6fbfc28739132c1c51ce93b129c3ccadfad49 /crawl-ref/source
parent46554fa28c0284338a395191627275fc0c1b6d57 (diff)
downloadcrawl-ref-dde86f0f2b3ecbb4535c450bc68771c6df90c578.tar.gz
crawl-ref-dde86f0f2b3ecbb4535c450bc68771c6df90c578.zip
beam.cc: bug #2890126: cancel from exploding ammo
Tracer beams which used special_explosion didn't fold beam_cancelled from the special explosion back into the beam proper, making it so that if you cancelled out from firing an exploding ammo because the explosion would catch you, it would still fire anyways.
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/beam.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 173d4140cc..129ea8b59a 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2018,9 +2018,11 @@ void bolt::fire()
if (special_explosion != NULL)
{
- seen = seen || special_explosion->seen;
- foe_info += special_explosion->foe_info;
- friend_info += special_explosion->friend_info;
+ seen = seen || special_explosion->seen;
+ beam_cancelled = beam_cancelled
+ || special_explosion->beam_cancelled;
+ foe_info += special_explosion->foe_info;
+ friend_info += special_explosion->friend_info;
_undo_tracer(*special_explosion, *boltcopy.special_explosion);
delete boltcopy.special_explosion;
}