diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-14 09:03:23 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-14 09:03:23 +0000 |
commit | 69dcbce751059060907927d5d11fdbb1c97cc53d (patch) | |
tree | f2cafcc6f4d6fc3f01a011c9df70585a7d50f99b | |
parent | c42a7b4b46ae145299bea6082d308e979f6a4c8a (diff) | |
download | crawl-ref-69dcbce751059060907927d5d11fdbb1c97cc53d.tar.gz crawl-ref-69dcbce751059060907927d5d11fdbb1c97cc53d.zip |
Oops, beams can sometimes have an empty name when fired.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7830 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r-- | crawl-ref/source/beam.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 817e6ab89c..2bf23be891 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -1531,13 +1531,15 @@ static void _munge_bounced_bolt(bolt &old_bolt, bolt &new_bolt, void fire_beam(bolt &pbolt) { - ASSERT(!pbolt.name.empty()); ASSERT(pbolt.flavour > BEAM_NONE && pbolt.flavour < NUM_BEAMS); ASSERT(!pbolt.drop_item || pbolt.item); ASSERT(!pbolt.dropped_item); pbolt.real_flavour = pbolt.flavour; + const bool beam_invisible = + pbolt.type == 0 || (!pbolt.name.empty() && pbolt.name[0] == '0'); + const int reflections = pbolt.reflections; if (reflections == 0) { @@ -1547,7 +1549,7 @@ void fire_beam(bolt &pbolt) // pbolt.seen might be set by caller to supress this. if (!pbolt.seen && see_grid(pbolt.source) && pbolt.range > 0 - && pbolt.type != 0 && pbolt.name[0] != '0') + && !beam_invisible) { pbolt.seen = true; int midx = mgrd(pbolt.source); @@ -1745,8 +1747,8 @@ void fire_beam(bolt &pbolt) break; const bool was_seen = pbolt.seen; - if (!was_seen && pbolt.range > 0 && pbolt.type != 0 - && pbolt.name[0] != '0' && see_grid(testpos)) + if (!was_seen && pbolt.range > 0 && !beam_invisible + && see_grid(testpos)) { pbolt.seen = true; } |