diff options
Diffstat (limited to 'crawl-ref/source/dgnevent.cc')
-rw-r--r-- | crawl-ref/source/dgnevent.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crawl-ref/source/dgnevent.cc b/crawl-ref/source/dgnevent.cc index 0109c0090a..b0c24c5fb1 100644 --- a/crawl-ref/source/dgnevent.cc +++ b/crawl-ref/source/dgnevent.cc @@ -21,6 +21,23 @@ void dgn_event_dispatcher::clear() grid_triggers[x][y].reset(NULL); } +void dgn_event_dispatcher::clear_listeners_at(const coord_def &pos) +{ + grid_triggers[pos.x][pos.y].reset(NULL); +} + +void dgn_event_dispatcher::move_listeners( + const coord_def &from, const coord_def &to) +{ + // Any existing listeners at to will be discarded. YHBW. + grid_triggers[to.x][to.y] = grid_triggers[from.x][from.y]; +} + +bool dgn_event_dispatcher::has_listeners_at(const coord_def &pos) const +{ + return (grid_triggers[pos.x][pos.y].get()); +} + void dgn_event_dispatcher::fire_position_event( dgn_event_type event, const coord_def &pos) { |