summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/beam.cc10
-rw-r--r--crawl-ref/source/makeitem.cc7
2 files changed, 12 insertions, 5 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 188307de76..f3d16f8c68 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2347,6 +2347,13 @@ static void beam_drop_object( struct bolt &beam, item_def *item, int x, int y )
if (beam.is_tracer || beam.flavour != BEAM_MISSILE)
return;
+ // maybe we can remove the YOU_KILL...
+ if ( grid_destroys_items(grd[x][y]) && YOU_KILL(beam.thrower) )
+ {
+ mprf(MSGCH_SOUND, grid_item_destruction_message(grd[x][y]));
+ return;
+ }
+
if (YOU_KILL(beam.thrower) // ie if you threw it.
&& (!grid_destroys_items(grd[x][y])))
{
@@ -2373,8 +2380,7 @@ static void beam_drop_object( struct bolt &beam, item_def *item, int x, int y )
if (item->base_type != OBJ_MISSILES || !one_chance_in(chance))
copy_item_to_grid( *item, x, y, 1 );
}
- else if (MON_KILL(beam.thrower) // monster threw it.
- && !grid_destroys_items(grd[x][y]) && coinflip())
+ else if (MON_KILL(beam.thrower) && coinflip()) // monster threw it.
{
copy_item_to_grid( *item, x, y, 1 );
} // if (thing_throw == 2) ...
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 98fb9a8e0f..16af19d86e 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -228,9 +228,10 @@ static int special_colour()
{
switch(random2(3))
{
- case 0: return RED;
- case 1: return LIGHTBLUE;
- case 2: return MAGENTA;
+ case 0: return RED;
+ case 1: return LIGHTBLUE;
+ case 2: return MAGENTA;
+ default: return RED; // compiler warnings, hush
}
}