summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/arena.cc5
-rw-r--r--crawl-ref/source/monstuff.cc6
2 files changed, 6 insertions, 5 deletions
diff --git a/crawl-ref/source/arena.cc b/crawl-ref/source/arena.cc
index e295a0ea77..45a76e1d7b 100644
--- a/crawl-ref/source/arena.cc
+++ b/crawl-ref/source/arena.cc
@@ -863,11 +863,6 @@ namespace arena
if (i == MONS_PLAYER_GHOST)
continue;
- // Skip the royal jelly for now, since if it gets hit by
- // multiple explosions it can cause an assertion.
- if (i == MONS_ROYAL_JELLY)
- continue;
-
if (mons_is_unique(i)
&& !arena_veto_random_monster( (monster_type) i))
{
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 831fbddc15..2529eca193 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -957,6 +957,12 @@ static bool _spore_goes_pop(monsters *monster, killer_type killer,
// its own explosion. (GDL)
mgrd(monster->pos()) = NON_MONSTER;
+ // The explosion might cause a monster to be placed where the spore
+ // used to be, so make sure that mgrd() doesn't get cleared a second
+ // time (causing the new monster to become floating) when
+ // monster->reset() is called.
+ monster->pos().reset();
+
// Exploding kills the monster a bit earlier than normal.
monster->hit_points = -16;
if (saw)