mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 12:02:31 +01:00
Refactored deletion observables to use the COMSIG_QDELETING signal (#20121)
Refactored deletion observables to use the COMSIG_QDELETING signal instead, removed the observable.
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
/obj/item/device/multitool/hacktool/Destroy()
|
||||
for(var/T in known_targets)
|
||||
var/atom/target = T
|
||||
GLOB.destroyed_event.unregister(target, src)
|
||||
UnregisterSignal(target, COMSIG_QDELETING)
|
||||
known_targets.Cut()
|
||||
qdel(hack_state)
|
||||
hack_state = null
|
||||
@@ -88,7 +88,7 @@
|
||||
return FALSE
|
||||
|
||||
known_targets.Insert(1, target) // Insert the newly hacked target first,
|
||||
GLOB.destroyed_event.register(target, src, PROC_REF(on_target_destroy))
|
||||
RegisterSignal(target, COMSIG_QDELETING, PROC_REF(on_target_destroy))
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/multitool/hacktool/proc/sanity_check()
|
||||
@@ -98,7 +98,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]
|
||||
GLOB.destroyed_event.unregister(A, src)
|
||||
UnregisterSignal(A, COMSIG_QDELETING)
|
||||
known_targets.Cut(max_known_targets + 1)
|
||||
|
||||
/obj/item/device/multitool/hacktool/proc/on_target_destroy(var/target)
|
||||
|
||||
@@ -65,14 +65,18 @@
|
||||
unregister_buffer(buffer_object)
|
||||
buffer_object = buffer
|
||||
if(buffer_object)
|
||||
GLOB.destroyed_event.register(buffer_object, src, PROC_REF(unregister_buffer))
|
||||
RegisterSignal(buffer_object, COMSIG_QDELETING, PROC_REF(on_buffer_object_deletion))
|
||||
update_icon()
|
||||
|
||||
/obj/item/device/multitool/proc/unregister_buffer(var/atom/buffer_to_unregister)
|
||||
/obj/item/device/multitool/proc/on_buffer_object_deletion(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
unregister_buffer(source)
|
||||
|
||||
/obj/item/device/multitool/proc/unregister_buffer(atom/buffer_to_unregister)
|
||||
// Only remove the buffered object, don't reset the name
|
||||
// This means one cannot know if the buffer has been destroyed until one attempts to use it.
|
||||
if(buffer_to_unregister == buffer_object && buffer_object)
|
||||
GLOB.destroyed_event.unregister(buffer_object, src)
|
||||
UnregisterSignal(buffer_object, COMSIG_QDELETING)
|
||||
buffer_object = null
|
||||
update_icon()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user