summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-14 09:03:23 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-14 09:03:23 +0000
commit69dcbce751059060907927d5d11fdbb1c97cc53d (patch)
treef2cafcc6f4d6fc3f01a011c9df70585a7d50f99b
parentc42a7b4b46ae145299bea6082d308e979f6a4c8a (diff)
downloadcrawl-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.cc10
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;
}