diff options
author | DracoOmega <draco_omega@live.com> | 2013-03-19 21:53:50 -0230 |
---|---|---|
committer | DracoOmega <draco_omega@live.com> | 2013-03-19 22:00:01 -0230 |
commit | 2d18c1fe75c8867dfeacb2acf0b3ce8eca57aa05 (patch) | |
tree | 061d9f3b4a4937d6f888475830c8ce467a0ca74f /crawl-ref/source/godcompanions.cc | |
parent | 5cf8fccbb1dec24949af0965722dd467f1aad57c (diff) | |
download | crawl-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.cc | 16 |
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(); |