summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dgnevent.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/dgnevent.cc')
-rw-r--r--crawl-ref/source/dgnevent.cc17
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)
{