summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/godcompanions.cc
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2013-03-19 21:53:50 -0230
committerDracoOmega <draco_omega@live.com>2013-03-19 22:00:01 -0230
commit2d18c1fe75c8867dfeacb2acf0b3ce8eca57aa05 (patch)
tree061d9f3b4a4937d6f888475830c8ce467a0ca74f /crawl-ref/source/godcompanions.cc
parent5cf8fccbb1dec24949af0965722dd467f1aad57c (diff)
downloadcrawl-ref-2d18c1fe75c8867dfeacb2acf0b3ce8eca57aa05.tar.gz
crawl-ref-2d18c1fe75c8867dfeacb2acf0b3ce8eca57aa05.zip
Properly recall Yred enslaved souls from off-level
This fixes #6794
Diffstat (limited to 'crawl-ref/source/godcompanions.cc')
-rw-r--r--crawl-ref/source/godcompanions.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/crawl-ref/source/godcompanions.cc b/crawl-ref/source/godcompanions.cc
index a6fd67df8f..29d44e0b45 100644
--- a/crawl-ref/source/godcompanions.cc
+++ b/crawl-ref/source/godcompanions.cc
@@ -37,6 +37,22 @@ void remove_companion(monster* mons)
companion_list.erase(mons->mid);
}
+void remove_enslaved_soul_companion()
+{
+ for (map<mid_t, companion>::iterator i = companion_list.begin();
+ i != companion_list.end(); ++i)
+ {
+ monster* mons = monster_by_mid(i->first);
+ if (!mons)
+ mons = &i->second.mons.mons;
+ if (mons_enslaved_soul(mons))
+ {
+ remove_companion(mons);
+ return;
+ }
+ }
+}
+
void remove_all_companions(god_type god)
{
for (map<mid_t, companion>::iterator i = companion_list.begin();