diff options
-rw-r--r-- | crawl-ref/source/arena.cc | 5 | ||||
-rw-r--r-- | crawl-ref/source/monstuff.cc | 6 |
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) |