Turns events into vars instead of a list, to greatly simplify qdel() cleanup.

This commit is contained in:
PsiOmegaDelta
2015-12-14 13:44:05 +01:00
parent 3996c2a57a
commit 7d7aa4b50b
8 changed files with 69 additions and 57 deletions
+3 -3
View File
@@ -17,7 +17,7 @@
/obj/item/device/multitool/hacktool/Destroy()
for(var/T in known_targets)
var/atom/target = T
target.unregister(OBSERVER_EVENT_DESTROY, src)
target.destruction.unregister(src)
known_targets.Cut()
qdel(hack_state)
hack_state = null
@@ -68,7 +68,7 @@
return 0
known_targets.Insert(1, target) // Insert the newly hacked target first,
target.register(OBSERVER_EVENT_DESTROY, src, /obj/item/device/multitool/hacktool/proc/on_target_destroy)
target.destruction.register(src, /obj/item/device/multitool/hacktool/proc/on_target_destroy)
return 1
/obj/item/device/multitool/hacktool/proc/sanity_check()
@@ -77,7 +77,7 @@
if(known_targets.len > max_known_targets)
for(var/i = (max_known_targets + 1) to known_targets.len)
var/atom/A = known_targets[i]
A.unregister(OBSERVER_EVENT_DESTROY, src)
A.destruction.unregister(src)
known_targets.Cut(max_known_targets + 1)
/obj/item/device/multitool/hacktool/proc/on_target_destroy(var/target)