From a51daf610d183d60edc07f825ae1f87a2fa5fe7e Mon Sep 17 00:00:00 2001 From: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Date: Sun, 7 Dec 2025 04:43:21 +0530 Subject: [PATCH] Correctly clears `hanging_support_atom` from atom mounted components (#94295) --- code/datums/components/atom_mounted.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/datums/components/atom_mounted.dm b/code/datums/components/atom_mounted.dm index 0d2382e6947..12d73e1ae24 100644 --- a/code/datums/components/atom_mounted.dm +++ b/code/datums/components/atom_mounted.dm @@ -8,25 +8,28 @@ if(!isobj(parent)) return COMPONENT_INCOMPATIBLE hanging_support_atom = target_structure - -/datum/component/atom_mounted/RegisterWithParent() - ADD_TRAIT(parent, TRAIT_WALLMOUNTED, REF(src)) RegisterSignal(hanging_support_atom, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) if(isclosedturf(hanging_support_atom)) RegisterSignal(hanging_support_atom, COMSIG_TURF_CHANGE, PROC_REF(on_turf_changing)) else RegisterSignal(hanging_support_atom, COMSIG_QDELETING, PROC_REF(on_structure_delete)) + +/datum/component/atom_mounted/RegisterWithParent() + ADD_TRAIT(parent, TRAIT_WALLMOUNTED, REF(src)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) /datum/component/atom_mounted/UnregisterFromParent() REMOVE_TRAIT(parent, TRAIT_WALLMOUNTED, REF(src)) + UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) + +/datum/component/atom_mounted/Destroy(force) UnregisterSignal(hanging_support_atom, list(COMSIG_ATOM_EXAMINE)) if(isclosedturf(hanging_support_atom)) UnregisterSignal(hanging_support_atom, COMSIG_TURF_CHANGE) else UnregisterSignal(hanging_support_atom, COMSIG_QDELETING) - UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) hanging_support_atom = null + return ..() /** * When the wall is examined, explains that it's supporting the linked object.