diff options
Diffstat (limited to 'crawl-ref/source/mon-transit.cc')
-rw-r--r-- | crawl-ref/source/mon-transit.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-transit.cc b/crawl-ref/source/mon-transit.cc index e04eec7805..708deae8a9 100644 --- a/crawl-ref/source/mon-transit.cc +++ b/crawl-ref/source/mon-transit.cc @@ -12,6 +12,7 @@ #include "artefact.h" #include "coord.h" #include "coordit.h" +#include "dactions.h" #include "dungeon.h" #include "env.h" #include "godcompanions.h" @@ -244,6 +245,39 @@ void place_transiting_items() ilist = keep; } +void apply_daction_to_transit(daction_type act) +{ + for (monsters_in_transit::iterator i = the_lost_ones.begin(); + i != the_lost_ones.end(); ++i) + { + m_transit_list* m = &i->second; + for (m_transit_list::iterator j = m->begin(); j != m->end(); ++j) + { + monster* mon = &j->mons; + if (mons_matches_daction(mon, act)) + apply_daction_to_mons(mon, act, false); + } + } +} + +int count_daction_in_transit(daction_type act) +{ + int count = 0; + for (monsters_in_transit::iterator i = the_lost_ones.begin(); + i != the_lost_ones.end(); ++i) + { + m_transit_list* m = &i->second; + for (m_transit_list::iterator j = m->begin(); j != m->end(); ++j) + { + monster* mon = &j->mons; + if (mons_matches_daction(mon, act)) + count++; + } + } + + return count; +} + ////////////////////////////////////////////////////////////////////////// // follower |