diff options
author | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-04 22:52:13 -0800 |
---|---|---|
committer | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-04 22:52:51 -0800 |
commit | 22dcda95ae7c2bed364484fa130e78da9d96275d (patch) | |
tree | 174d0648859cd16149cd76c52e51abde7403cbf9 | |
parent | 1dcf964cd3782c4e559d9422f199d127eb4eb8a4 (diff) | |
download | crawl-ref-22dcda95ae7c2bed364484fa130e78da9d96275d.tar.gz crawl-ref-22dcda95ae7c2bed364484fa130e78da9d96275d.zip |
lm_trig.lua: do_trigger(): simplify
-rw-r--r-- | crawl-ref/source/dat/clua/lm_trig.lua | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/crawl-ref/source/dat/clua/lm_trig.lua b/crawl-ref/source/dat/clua/lm_trig.lua index a37a3aa88a..17d2898d78 100644 --- a/crawl-ref/source/dat/clua/lm_trig.lua +++ b/crawl-ref/source/dat/clua/lm_trig.lua @@ -192,15 +192,6 @@ function Triggerable:do_trigger(triggerer, marker, ev) local slaves = dgn.find_markers_by_prop("slaved_to", master_name) - -- Pretend that the master marker is gone if it asked to be removed. - if self.master_removed then - for i = #slaves, 1, -1 do - if slaves[i] == marker then - table.remove(slaves, i) - end - end - end - -- If all slaves are gone, we're done. if #slaves == 0 then self:remove(marker) @@ -223,16 +214,15 @@ function Triggerable:do_trigger(triggerer, marker, ev) if self.want_remove then num_want_remove = num_want_remove + 1 - -- XXX: hack: don't remove ourself (the master marker) until the end. if slave_marker == marker then - self.master_removed = true + -- The master marker shouldn't be removed until the end, so + -- simply stop being slaved. + self.props.slaved_to = nil else triggerer:remove(self, slave_marker) dgn.remove_marker(slave_marker) end end - - self.want_remove = false end self.calling_slaves = false @@ -241,17 +231,13 @@ function Triggerable:do_trigger(triggerer, marker, ev) slaves = dgn.find_markers_by_prop("slaved_to", master_name) - if #slaves == 0 - or (self.master_removed and #slaves == 1 and slaves[1] == marker) - then + if #slaves == 0 then self:remove(marker) end end end function Triggerable:write(marker, th) - file.marshall_meta(th, self.master_removed) - file.marshall(th, #self.triggerers) for _, trig in ipairs(self.triggerers) do -- We'll be handling the de-serialization of the triggerer, so we need to @@ -265,8 +251,6 @@ function Triggerable:write(marker, th) end function Triggerable:read(marker, th) - self.master_removed = file.unmarshall_meta(th) - self.triggerers = {} local num_trigs = file.unmarshall_number(th) |