From 0cc3c2ec15a7855d4cbd746ebe7a8f8139aaa4fc Mon Sep 17 00:00:00 2001 From: Matthew Cline Date: Wed, 25 Nov 2009 18:55:40 -0800 Subject: Bug #35: auto-exlcusions from monster clouds Monsters leaving behind trails of clouds (like fire elementals) or leaving clouds on death (like simulacrums) were causing auto-exclusions to be placed, as if they were generated by fog machines; fixed. --- crawl-ref/source/mon-act.cc | 9 ++++++--- crawl-ref/source/mon-stuff.cc | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index d930815296..c1d45b9eab 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -2302,7 +2302,8 @@ static bool _monster_eat_item(monsters *monster, bool nearby) if (death_ooze_ate_corpse) { place_cloud ( CLOUD_MIASMA, monster->pos(), - 4 + random2(5), monster->kill_alignment() ); + 4 + random2(5), monster->kill_alignment(), + KILL_MON_MISSILE ); } if (death_ooze_ate_good) @@ -3403,14 +3404,16 @@ static bool _monster_move(monsters *monster) || monster->type == MONS_FIRE_ELEMENTAL) { place_cloud( CLOUD_FIRE, monster->pos(), - 2 + random2(4), monster->kill_alignment() ); + 2 + random2(4), monster->kill_alignment(), + KILL_MON_MISSILE ); } if (monster->type == MONS_ROTTING_DEVIL || monster->type == MONS_CURSE_TOE) { place_cloud( CLOUD_MIASMA, monster->pos(), - 2 + random2(3), monster->kill_alignment() ); + 2 + random2(3), monster->kill_alignment(), + KILL_MON_MISSILE ); } } else diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc index c24de9ed47..e0a6cdb023 100644 --- a/crawl-ref/source/mon-stuff.cc +++ b/crawl-ref/source/mon-stuff.cc @@ -1084,7 +1084,7 @@ void _monster_die_cloud(const monsters* monster, bool corpse, bool silent, if (cloud != CLOUD_NONE) { place_cloud(cloud, monster->pos(), 1 + random2(3), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } } @@ -1539,7 +1539,7 @@ int monster_die(monsters *monster, killer_type killer, && !submerged) { place_cloud(CLOUD_FIRE, monster->pos(), 2 + random2(4), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } if (killer == KILL_RESET) @@ -1558,7 +1558,7 @@ int monster_die(monsters *monster, killer_type killer, if (!wizard && !mons_reset && !submerged) { place_cloud(CLOUD_COLD, monster->pos(), 2 + random2(4), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } if (killer == KILL_RESET) @@ -3731,7 +3731,7 @@ void monster_teleport(monsters *monster, bool instan, bool silent) // Leave a purple cloud. place_cloud(CLOUD_TLOC_ENERGY, oldplace, 1 + random2(3), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); monster->check_redraw(oldplace); monster->apply_location_effects(oldplace); -- cgit v1.2.3-54-g00ecf