summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dat/clua
diff options
context:
space:
mode:
authorMatthew Cline <zelgadis@sourceforge.net>2009-11-08 23:49:54 -0800
committerMatthew Cline <zelgadis@sourceforge.net>2009-11-08 23:49:54 -0800
commitc3074999a910d76d6f5f2c644894a7baeb3a0d49 (patch)
tree784ca425119459ce0399709d9a6634d11293c81a /crawl-ref/source/dat/clua
parentb06c289636354686e9bd6b60024f4526af3bb118 (diff)
downloadcrawl-ref-c3074999a910d76d6f5f2c644894a7baeb3a0d49.tar.gz
crawl-ref-c3074999a910d76d6f5f2c644894a7baeb3a0d49.zip
lm_trig.lua: "listen_to_slaves" not for globals
"listen_to_slaves" shouldn't apply to global events, only position-dependent events.
Diffstat (limited to 'crawl-ref/source/dat/clua')
-rw-r--r--crawl-ref/source/dat/clua/lm_trig.lua16
1 files changed, 13 insertions, 3 deletions
diff --git a/crawl-ref/source/dat/clua/lm_trig.lua b/crawl-ref/source/dat/clua/lm_trig.lua
index d08d3fa1bd..336da856b0 100644
--- a/crawl-ref/source/dat/clua/lm_trig.lua
+++ b/crawl-ref/source/dat/clua/lm_trig.lua
@@ -210,8 +210,14 @@ function Triggerable:activate(marker)
end
for _, trig in ipairs(self.triggerers) do
- for _, slave_marker in ipairs(slaves) do
- trig:activate(self, marker, slave_marker:pos())
+ local et = dgn.dgn_event_type(trig.type)
+
+ if (dgn.dgn_event_is_position(et)) then
+ for _, slave_marker in ipairs(slaves) do
+ trig:activate(self, marker, slave_marker:pos())
+ end
+ else
+ trig:activate(self, marker)
end
end
self.activating = false
@@ -299,7 +305,11 @@ function Triggerable:do_trigger(triggerer, marker, ev)
-- simply stop being slaved to itself.
self.props.slaved_to = nil
if self:property("listen_to_slaves") ~= "" then
- triggerer:remove(self, slave_marker)
+ local et = dgn.dgn_event_type(triggerer.type)
+
+ if (dgn.dgn_event_is_position(et)) then
+ triggerer:remove(self, slave_marker)
+ end
end
else
triggerer:remove(self, slave_marker)