diff options
Diffstat (limited to 'crawl-ref/source/dgnevent.cc')
-rw-r--r-- | crawl-ref/source/dgnevent.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/crawl-ref/source/dgnevent.cc b/crawl-ref/source/dgnevent.cc index 96d87fecc4..20533a5cc5 100644 --- a/crawl-ref/source/dgnevent.cc +++ b/crawl-ref/source/dgnevent.cc @@ -2,7 +2,7 @@ * File: dgnevent.cc * Summary: General dungeon events. * - * Modified for Crawl Reference by $Author: dshaligram $ on $Date: 2007-07-20T11:40:25.964128Z $ + * Modified for Crawl Reference by $Author$ on $Date$ * */ @@ -41,11 +41,17 @@ bool dgn_event_dispatcher::has_listeners_at(const coord_def &pos) const void dgn_event_dispatcher::fire_position_event( dgn_event_type event, const coord_def &pos) { + const dgn_event et(event, pos); + fire_position_event(et, pos); +} + +void dgn_event_dispatcher::fire_position_event( + const dgn_event &et, const coord_def &pos) +{ dgn_square_alarm *alarm = grid_triggers[pos.x][pos.y].get(); - if (alarm && (alarm->eventmask & event)) + if (alarm && (alarm->eventmask & et.type)) { dgn_square_alarm alcopy = *alarm; - const dgn_event et(event, pos); for (std::list<dgn_event_listener*>::iterator i = alcopy.listeners.begin(); i != alcopy.listeners.end(); ++i) @@ -53,6 +59,7 @@ void dgn_event_dispatcher::fire_position_event( (*i)->notify_dgn_event(et); } } + } void dgn_event_dispatcher::fire_event(const dgn_event &e) |