diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index ebb293c8a53..d9297835d19 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -237,15 +237,15 @@ var/obj/item/card/id/all_access/ghost_all_access
return botcard
/mob/living/carbon/human/GetIdCard()
+ if(wear_id)
+ var/id = wear_id.GetID()
+ if(id)
+ return id
var/obj/item/I = get_active_hand()
if(I)
var/id = I.GetID()
if(id)
return id
- if(wear_id)
- var/id = wear_id.GetID()
- if(id)
- return id
if(gloves)
var/id = gloves.GetID()
if(id)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 4f232fb5f17..6dc968cd35e 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -132,10 +132,16 @@
//gloves
if(gloves && !skipgloves)
+ var/gloves_name = gloves
+ if(istype(wear_id, /obj/item/modular_computer))
+ var/obj/item/modular_computer/C = wear_id
+ var/obj/item/card/id/ID = C.GetID()
+ if(ID)
+ gloves_name = "[C.name] ([ID.registered_name] ([ID.assignment]))"
if(gloves.blood_color)
- msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [fluid_color_type_map(gloves.blood_color)]-stained [gloves.name] on [T.his] hands!\n"
+ msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [fluid_color_type_map(gloves.blood_color)]-stained [gloves_name] on [T.his] hands!\n"
else
- msg += "[T.He] [T.has] \icon[gloves] \a [gloves] on [T.his] hands.\n"
+ msg += "[T.He] [T.has] \icon[gloves] \a [gloves_name] on [T.his] hands.\n"
else if(blood_color)
msg += "[T.He] [T.has] [fluid_color_type_map(hand_blood_color)]-stained hands!\n"
@@ -190,17 +196,13 @@
//ID
if(wear_id)
- /*var/id
- if(istype(wear_id, /obj/item/device/pda))
- var/obj/item/device/pda/pda = wear_id
- id = pda.owner
- else if(istype(wear_id, /obj/item/card/id)) //just in case something other than a PDA/ID card somehow gets in the ID slot :c
- var/obj/item/card/id/idcard = wear_id
- id = idcard.registered_name
- if(id && (id != real_name) && (get_dist(src, usr) <= 1) && prob(10))
- msg += "[T.He] [T.is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...\n"
- else*/
- msg += "[T.He] [T.is] wearing \icon[wear_id] \a [wear_id].\n"
+ var/id_name = wear_id
+ if(istype(wear_id, /obj/item/modular_computer))
+ var/obj/item/modular_computer/C = wear_id
+ var/obj/item/card/id/ID = C.GetID()
+ if(ID)
+ id_name = "[C.name] ([ID.registered_name] ([ID.assignment]))"
+ msg += "[T.He] [T.is] wearing \icon[wear_id] \a [id_name].\n"
//Jitters
if(is_jittery)
@@ -351,12 +353,9 @@
var/perpname = "wot"
var/medical = "None"
- if(wear_id)
- if(istype(wear_id,/obj/item/card/id))
- perpname = wear_id:registered_name
- else if(istype(wear_id,/obj/item/device/pda))
- var/obj/item/device/pda/tempPda = wear_id
- perpname = tempPda.owner
+ var/obj/item/card/id/ID = GetIdCard()
+ if(ID)
+ perpname = ID.registered_name
else
perpname = src.name
diff --git a/html/changelogs/geeves-modular_comp_examine.yml b/html/changelogs/geeves-modular_comp_examine.yml
new file mode 100644
index 00000000000..ae24ee75e9f
--- /dev/null
+++ b/html/changelogs/geeves-modular_comp_examine.yml
@@ -0,0 +1,8 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - bugfix: "Examining someone with a modular computer on their ID or gloves slot will now show the ID info if there's one inside."
+ - bugfix: "Security and medical HUDs now get the proper person info if the person has the ID in their modular computer."
+ - tweak: "Things that check your ID will now primarily use the ID in your slot, rather than the one in your hands."
\ No newline at end of file