diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm
index 41c7a33a19..1331f5adb7 100644
--- a/code/game/machinery/frame.dm
+++ b/code/game/machinery/frame.dm
@@ -429,6 +429,7 @@
circuit = null
if(frame_type.frame_class == FRAME_CLASS_MACHINE)
req_components = null
+ update_desc()
else if(state == FRAME_WIRED)
if(frame_type.frame_class == FRAME_CLASS_MACHINE)
@@ -498,27 +499,21 @@
else if(P.is_wirecutter())
if(state == FRAME_WIRED)
- if(frame_type.frame_class == FRAME_CLASS_COMPUTER)
+ if( \
+ frame_type.frame_class == FRAME_CLASS_COMPUTER || \
+ frame_type.frame_class == FRAME_CLASS_DISPLAY || \
+ frame_type.frame_class == FRAME_CLASS_ALARM || \
+ frame_type.frame_class == FRAME_CLASS_MACHINE \
+ )
playsound(src, P.usesound, 50, 1)
- to_chat(user, "You remove the cables.")
- state = FRAME_FASTENED
- new /obj/item/stack/cable_coil(src.loc, 5)
-
- else if(frame_type.frame_class == FRAME_CLASS_DISPLAY)
- playsound(src, P.usesound, 50, 1)
- to_chat(user, "You remove the cables.")
- state = FRAME_FASTENED
- new /obj/item/stack/cable_coil(src.loc, 5)
-
- else if(frame_type.frame_class == FRAME_CLASS_ALARM)
- playsound(src, P.usesound, 50, 1)
- to_chat(user, "You remove the cables.")
- state = FRAME_FASTENED
- new /obj/item/stack/cable_coil(src.loc, 5)
-
- else if(frame_type.frame_class == FRAME_CLASS_MACHINE)
- playsound(src, P.usesound, 50, 1)
- to_chat(user, "You remove the cables.")
+ if (components.len == 0)
+ to_chat(user, "You remove the cables.")
+ else
+ to_chat(user, "You remove the cables and components.")
+ for(var/obj/item/weapon/W in components)
+ W.forceMove(src.loc)
+ check_components()
+ update_desc()
state = FRAME_FASTENED
new /obj/item/stack/cable_coil(src.loc, 5)