From 071d7828b2617979ee1db29d1fc3dcaf149d026e Mon Sep 17 00:00:00 2001 From: Morrow Date: Mon, 2 Oct 2023 18:12:40 -0400 Subject: [PATCH] Initial --- code/game/objects/items.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 077c0a463aaa..f6f1b3674546 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -828,6 +828,15 @@ cases. Override_icon_state should be a list.*/ INVOKE_ASYNC(user, TYPE_PROC_REF(/atom, visible_message), SPAN_NOTICE("[user] looks up from [zoom_device]."), SPAN_NOTICE("You look up from [zoom_device].")) zoom = !zoom + + // Due to how qdel calls back when the item is destroyed we lack a user, if we are still zoomed in and the item is being destroyed it should be in the direct contents of the user (hypothetically). + // When you read this in 10 years from now when it stops working uuuh sorry about that. + if(!user) + user = loc + if(!istype(user)) + log_debug("[src] called unzoom without a user and user was not loc. Current loc: [loc ? loc : "null"]") + return + COOLDOWN_START(user, zoom_cooldown, 20) SEND_SIGNAL(user, COMSIG_LIVING_ZOOM_OUT, src) SEND_SIGNAL(src, COMSIG_ITEM_UNZOOM, user)