From 4e54abc6ef8060640f0faa6296767d136e9f201d Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:01:08 +0100 Subject: [PATCH] Fixes MODsuit deactivation not disabling modules (#87649) ## About The Pull Request Closes #87618 Technically either part of this fix (moving the active check in seal_part and removing the parts check in control_activation) is enough to fix this particular issue but I'm doing both for sanity reasons (and possibly edge cases with modules that modify their required parts? not sure if we have those) also yeah it didn't call deactivate() ## Changelog :cl: fix: Fixed MODsuit deactivation not disabling modules /:cl: --- code/modules/mod/mod_activation.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm index ed19d0a4f6a..ee4725075aa 100644 --- a/code/modules/mod/mod_activation.dm +++ b/code/modules/mod/mod_activation.dm @@ -262,9 +262,9 @@ wearer.update_obscured_slots(part.visor_flags_inv) if((part.clothing_flags & (MASKINTERNALS|HEADINTERNALS)) && wearer.invalid_internals()) wearer.cutoff_internals() - if(!active) - return if(is_sealed) + if (!active) + return for(var/obj/item/mod/module/module as anything in modules) if(module.part_activated || !module.has_required_parts(mod_parts, need_active = TRUE)) continue @@ -293,10 +293,13 @@ module.part_activated = TRUE else for(var/obj/item/mod/module/module as anything in modules) - if(!module.part_activated || module.has_required_parts(mod_parts, need_active = TRUE)) + if(!module.part_activated) continue module.on_part_deactivation() module.part_activated = FALSE + if(!module.active || (module.allow_flags & MODULE_ALLOW_INACTIVE)) + continue + module.deactivate(display_message = FALSE) update_speed() update_charge_alert() update_appearance(UPDATE_ICON_STATE)