From 6b6ba7b163b1c716f419ec0cbcb12fbb96525888 Mon Sep 17 00:00:00 2001 From: Charles Otto Date: Sat, 7 Nov 2009 18:10:51 -0500 Subject: Avoid an infinite loop in tilse related to Feawn neutralizing plants Avoid an infinite loop caused caused by calling remove_auto_exclude on plants that get neutralized by Feawn. feawn_neutralise is called via viewwindow, and it was calling remove_auto_exclude, in tiles remove_auto_exclude calls viewwindow creating an infinite loop. Instead of calling remove_auto_exclude directly I added an attitude check to maybe_remove_autoexclusion which is (safely) called from viewwindow already. --- crawl-ref/source/attitude-change.cc | 7 ------- 1 file changed, 7 deletions(-) (limited to 'crawl-ref/source/attitude-change.cc') diff --git a/crawl-ref/source/attitude-change.cc b/crawl-ref/source/attitude-change.cc index be4781a81c..342de10985 100644 --- a/crawl-ref/source/attitude-change.cc +++ b/crawl-ref/source/attitude-change.cc @@ -133,13 +133,6 @@ void feawn_neutralise(monsters* monster) && !testbits(monster->flags, MF_ATT_CHANGE_ATTEMPT) && !player_under_penance()) { - // We must call remove_auto_exclude before neutralizing the - // plant because remove_auto_exclude only removes exclusions - // it thinks were caused by auto-exclude, and - // auto-exclusions now check for ATT_HOSTILE. Oh, what a - // tangled web, etc. - remove_auto_exclude(monster, false); - feawn_neutralise_plant(monster); monster->flags |= MF_ATT_CHANGE_ATTEMPT; -- cgit v1.2.3-54-g00ecf