From 4f4f12c948b69c77d42b78f2fd2a514bd92680f8 Mon Sep 17 00:00:00 2001
From: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Date: Fri, 22 Aug 2025 13:52:10 +0200
Subject: [PATCH] Fixes reading paper bundles and removing accessories on other
people (#21214)
Apparently the adjacent check wasn't set properly on these two. Also it
fixes that when removing someone's accessory, it tried to apply some
modifiers to the one removing it instead of the one wearing it.
---
code/game/objects/items.dm | 2 +-
code/modules/clothing/clothing_accessories.dm | 12 ++++++------
code/modules/mob/living/carbon/human/stripping.dm | 2 +-
html/changelogs/AdjacentFix.yml | 7 +++++++
4 files changed, 15 insertions(+), 8 deletions(-)
create mode 100644 html/changelogs/AdjacentFix.yml
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index de673ea70fa..fef0c9d805e 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -337,7 +337,7 @@
//Changed this switch to ranges instead of tiered values, to cope with granularity and also
//things outside its range ~Nanako
- . = ..(user, distance, "", "It is a [size] item.", get_extended = get_extended)
+ . = ..(user, distance, is_adjacent, "It is a [size] item.", get_extended = get_extended)
var/datum/component/armor/armor_component = GetComponent(/datum/component/armor)
if(armor_component)
. += FONT_SMALL(SPAN_NOTICE("\[?\] This item has armor values. \[Show Armor Values\]"))
diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm
index 8d3ed7f977e..86730a558ad 100644
--- a/code/modules/clothing/clothing_accessories.dm
+++ b/code/modules/clothing/clothing_accessories.dm
@@ -137,17 +137,14 @@
update_accessory_slowdown()
recalculate_body_temperature_change()
-/obj/item/clothing/proc/remove_accessory(mob/user, obj/item/clothing/accessory/A)
+/obj/item/clothing/proc/remove_accessory(mob/wearer, obj/item/clothing/accessory/A)
if(!(A in accessories))
return
- if(use_check_and_message(user))
- return
-
- A.on_removed(user)
+ A.on_removed(wearer)
LAZYREMOVE(accessories, A)
update_clothing_icon()
- update_accessory_slowdown(user)
+ update_accessory_slowdown(wearer)
recalculate_body_temperature_change()
/obj/item/clothing/proc/remove_accessory_verb()
@@ -187,6 +184,9 @@
else
A = accessories[1]
+ if(use_check_and_message(user))
+ return
+
remove_accessory(usr, A)
if(try_reopen_radial_after_removal)
diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm
index 396192a9554..85db055520d 100644
--- a/code/modules/mob/living/carbon/human/stripping.dm
+++ b/code/modules/mob/living/carbon/human/stripping.dm
@@ -82,7 +82,7 @@
user.visible_message(SPAN_DANGER("\The [user] tears off \the [A] from [src]'s [suit.name]!"))
attack_log += "\[[time_stamp()]\] Has had \the [A] removed by [user.name] ([user.ckey])"
user.attack_log += "\[[time_stamp()]\] Attempted to remove [name]'s ([ckey]) [A.name]"
- suit.remove_accessory(user, A)
+ suit.remove_accessory(src, A)
return 1
// Are we placing or stripping?
diff --git a/html/changelogs/AdjacentFix.yml b/html/changelogs/AdjacentFix.yml
new file mode 100644
index 00000000000..6e17665640b
--- /dev/null
+++ b/html/changelogs/AdjacentFix.yml
@@ -0,0 +1,7 @@
+author: TheGreyWolf
+
+delete-after: True
+
+changes:
+ - bugfix: "Paper bundles can now be read while next to them."
+ - bugfix: "It is now possible to remove accessories on other people again."