Skip to content

Commit

Permalink
Fix blades equipped to a void cloak having visible sprites
Browse files Browse the repository at this point in the history
  • Loading branch information
Absolucy committed Feb 5, 2025
1 parent 8c4fd05 commit d10b24a
Show file tree
Hide file tree
Showing 18 changed files with 55 additions and 49 deletions.
13 changes: 6 additions & 7 deletions code/__DEFINES/obj_flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,16 @@
#define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips
#define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
#define HAND_ITEM (1<<14) // If an item is just your hand (circled hand, slapper) and shouldn't block things like riding
#define EXAMINE_SKIP (1<<15) // Makes the Examine proc not read out this item.
#define XENOMORPH_HOLDABLE (1<<16) // A Xenomorph can hold this item.
#define NO_PIXEL_RANDOM_DROP (1<<17) //if dropped, it wont have a randomized pixel_x/pixel_y
#define XENOMORPH_HOLDABLE (1<<15) // A Xenomorph can hold this item.
#define NO_PIXEL_RANDOM_DROP (1<<16) //if dropped, it wont have a randomized pixel_x/pixel_y
///Can be equipped on digitigrade legs.
#define IGNORE_DIGITIGRADE (1<<18)
#define IGNORE_DIGITIGRADE (1<<17)
/// Has contextual screentips when HOVERING OVER OTHER objects
#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 19)
#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 18)
/// No blood overlay is allowed to appear on this item, and it cannot gain blood DNA forensics
#define NO_BLOOD_ON_ITEM (1 << 20)
#define NO_BLOOD_ON_ITEM (1 << 19)
/// Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks
#define SKIP_FANTASY_ON_SPAWN (1<<21)
#define SKIP_FANTASY_ON_SPAWN (1<<20)

// Flags for the clothing_flags var on /obj/item/clothing

Expand Down
6 changes: 6 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -819,6 +819,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_HAUNTED "haunted"
/// An item that, if it has contents, will ignore its contents when scanning for contraband.
/* #define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" */
/// For edible items that cannot be composted inside hydro trays
/* #define TRAIT_UNCOMPOSTABLE "uncompostable" */
/// Items with this trait will not have their worn icon overlayed.
#define TRAIT_NO_WORN_ICON "no_worn_icon"
/// Items with this trait will not appear when examined.
#define TRAIT_EXAMINE_SKIP "examine_skip"

//quirk traits
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
Expand Down
1 change: 0 additions & 1 deletion code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ DEFINE_BITFIELD(item_flags, list(
"ABSTRACT" = ABSTRACT,
"BEING_REMOVED" = BEING_REMOVED,
"DROPDEL" = DROPDEL,
"EXAMINE_SKIP" = EXAMINE_SKIP,
"FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE,
"HAND_ITEM" = HAND_ITEM,
"IGNORE_DIGITIGRADE" = IGNORE_DIGITIGRADE,
Expand Down
4 changes: 3 additions & 1 deletion code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_GENELESS" = TRAIT_GENELESS,
"TRAIT_GHOST_CRITTER" = TRAIT_GHOST_CRITTER,
"TRAIT_GIANT" = TRAIT_GIANT,
"TRAIT_GODMODE" = TRAIT_GODMODE,
"TRAIT_GODMODE" = TRAIT_GODMODE,
"TRAIT_GONE_FISHING" = TRAIT_GONE_FISHING,
"TRAIT_GOURMAND" = TRAIT_GOURMAND,
"TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS,
Expand Down Expand Up @@ -625,6 +625,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_BYPASS_COMPRESS_CHECK" = TRAIT_BYPASS_COMPRESS_CHECK,
"TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND,
"TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT,
"TRAIT_EXAMINE_SKIP" = TRAIT_EXAMINE_SKIP,
"TRAIT_FEATHERED" = TRAIT_FEATHERED,
"TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT,
"TRAIT_FOOD_GRILLED" = TRAIT_FOOD_GRILLED,
Expand All @@ -640,6 +641,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_MAY_CONTAIN_BLENDED_DUST" = TRAIT_MAY_CONTAIN_BLENDED_DUST,
"TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS,
"TRAIT_NODROP" = TRAIT_NODROP,
"TRAIT_NO_WORN_ICON" = TRAIT_NO_WORN_ICON,
"TRAIT_NON_IMPORTANT_SHOE_BLOCK" = TRAIT_NON_IMPORTANT_SHOE_BLOCK,
"TRAIT_NO_BARCODES" = TRAIT_NO_BARCODES,
"TRAIT_NO_ORGAN_DECAY" = TRAIT_NO_ORGAN_DECAY,
Expand Down
3 changes: 1 addition & 2 deletions code/datums/brain_damage/phobia.dm
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@
return FALSE
if (!isitem(checked))
return TRUE
var/obj/item/checked_item = checked
return !(checked_item.item_flags & EXAMINE_SKIP)
return !HAS_TRAIT(checked, TRAIT_EXAMINE_SKIP)

/datum/brain_trauma/mild/phobia/handle_hearing(datum/source, list/hearing_args)
if(!owner.can_hear() || owner == hearing_args[HEARING_SPEAKER] || !owner.has_language(hearing_args[HEARING_LANGUAGE])) //words can't trigger you if you can't hear them *taps head*
Expand Down
2 changes: 1 addition & 1 deletion code/datums/elements/dextrous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
/datum/element/dextrous/proc/on_examined(mob/living/examined, mob/user, list/examine_list)
SIGNAL_HANDLER
for(var/obj/item/held_item in examined.held_items)
if(held_item.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM))
if((held_item.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_item, TRAIT_EXAMINE_SKIP))
continue
examine_list += span_info("[examined.p_They()] [examined.p_have()] [held_item.get_examine_string(user)] in [examined.p_their()] \
[examined.get_held_index_name(examined.get_held_index_of_item(held_item))].")
2 changes: 1 addition & 1 deletion code/datums/elements/strippable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@
continue

var/obj/item/item = item_data.get_item(owner)
if (isnull(item) || (HAS_TRAIT(item, TRAIT_NO_STRIP) || (item.item_flags & EXAMINE_SKIP)))
if (isnull(item) || HAS_TRAIT(item, TRAIT_NO_STRIP) || HAS_TRAIT(item, TRAIT_EXAMINE_SKIP))
items[strippable_key] = result
continue

Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,7 @@
if(item_flags & DROPDEL && !QDELETED(src))
qdel(src)
item_flags &= ~IN_INVENTORY
UnregisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)))
SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user)
if(user && iscarbon(user))
SEND_SIGNAL(user, COMSIG_CARBON_ITEM_DROPPED, src)
Expand Down Expand Up @@ -753,6 +754,7 @@
give_item_action(action, user, slot)

item_flags |= IN_INVENTORY
RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)), PROC_REF(update_slot_icon), override = TRUE)
if(!initial)
if(equip_sound && (slot_flags & slot))
playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE, mixer_channel = equip_mixer_channel) // monkestation: sound mixer
Expand Down Expand Up @@ -911,6 +913,7 @@
return null

/obj/item/proc/update_slot_icon()
SIGNAL_HANDLER
if(!ismob(loc))
return
var/mob/owner = loc
Expand Down
17 changes: 6 additions & 11 deletions code/modules/antagonists/heretic/items/heretic_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
icon_state = "void_cloak"
flags_inv = NONE
flags_cover = NONE
item_flags = EXAMINE_SKIP
clothing_flags = STOPSPRESSUREDAMAGE
armor_type = /datum/armor/cult_hoodie_void

Expand All @@ -70,7 +69,7 @@

/obj/item/clothing/head/hooded/cult_hoodie/void/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src))
add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT)

/obj/item/clothing/suit/hooded/cultrobes/void
name = "void cloak"
Expand Down Expand Up @@ -113,17 +112,15 @@
/obj/item/clothing/suit/hooded/cultrobes/void/proc/hide_item(datum/source, obj/item/item, slot)
SIGNAL_HANDLER
if(slot & ITEM_SLOT_SUITSTORE)
ADD_TRAIT(item, TRAIT_NO_STRIP, REF(src)) // i'd use examine hide but its a flag and yeah
item.add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP, TRAIT_NO_WORN_ICON), REF(src))

/obj/item/clothing/suit/hooded/cultrobes/void/proc/show_item(datum/source, obj/item/item, slot)
SIGNAL_HANDLER
REMOVE_TRAIT(item, TRAIT_NO_STRIP, REF(src))
item.remove_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP, TRAIT_NO_WORN_ICON), REF(src))

/obj/item/clothing/suit/hooded/cultrobes/void/examine(mob/user)
. = ..()
if(!IS_HERETIC(user))
return
if(!hood_up)
if(!IS_HERETIC(user) || !hood_up)
return

// Let examiners know this works as a focus only if the hood is down
Expand All @@ -149,8 +146,7 @@

/// Makes our cloak "invisible". Not the wearer, the cloak itself.
/obj/item/clothing/suit/hooded/cultrobes/void/proc/make_invisible()
item_flags |= EXAMINE_SKIP
ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src))
add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src))
RemoveElement(/datum/element/heretic_focus)

if(isliving(loc))
Expand All @@ -159,8 +155,7 @@

/// Makes our cloak "visible" again.
/obj/item/clothing/suit/hooded/cultrobes/void/proc/make_visible()
item_flags &= ~EXAMINE_SKIP
REMOVE_TRAIT(src, TRAIT_NO_STRIP, REF(src))
remove_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src))
AddElement(/datum/element/heretic_focus)

if(isliving(loc))
Expand Down
5 changes: 4 additions & 1 deletion code/modules/antagonists/traitor/objectives/steal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,6 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/obj/item/traitor_bug
name = "suspicious device"
desc = "It looks dangerous."
item_flags = EXAMINE_SKIP

icon = 'icons/obj/device_syndie.dmi'
icon_state = "bug"
Expand All @@ -265,6 +264,10 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/// The time it takes to place this bug.
var/deploy_time = 10 SECONDS

/obj/item/traitor_bug/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_EXAMINE_SKIP, INNATE_TRAIT)

/obj/item/traitor_bug/examine(mob/user)
. = ..()
if(planted_on)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/head/wig.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
/obj/item/clothing/head/wig/equipped(mob/user, slot)
. = ..()
if(ishuman(user) && (slot & ITEM_SLOT_HEAD))
item_flags |= EXAMINE_SKIP
ADD_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT)

/obj/item/clothing/head/wig/dropped(mob/user)
. = ..()
item_flags &= ~EXAMINE_SKIP
REMOVE_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT)

/obj/item/clothing/head/wig/update_icon_state()
var/datum/sprite_accessory/hair_style = GLOB.roundstart_hairstyles_list[hairstyle]
Expand Down
4 changes: 2 additions & 2 deletions code/modules/hallucination/inhand_fake_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
name = "mirage"
plane = ABOVE_HUD_PLANE
interaction_flags_item = NONE
item_flags = ABSTRACT | DROPDEL | EXAMINE_SKIP | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry
item_flags = ABSTRACT | DROPDEL | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/// The hallucination that created us.
var/datum/hallucination/parent
Expand All @@ -132,7 +132,7 @@
RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(parent_deleting))
src.parent = parent

ADD_TRAIT(src, TRAIT_NODROP, INNATE_TRAIT)
add_traits(list(TRAIT_NODROP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT)

/obj/item/hallucinated/Destroy(force)
UnregisterSignal(parent, COMSIG_QDELETING)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/basic/drone/_drone.dm
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@

//Hands
for(var/obj/item/held_thing in held_items)
if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM))
if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP))
continue
. += "It has [held_thing.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(held_thing))]."

Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
. += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck."

for(var/obj/item/held_thing in held_items)
if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM))
if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP))
continue
. += "[t_He] [t_is] holding [held_thing.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]."

Expand Down
28 changes: 14 additions & 14 deletions code/modules/mob/living/carbon/human/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
var/obscured = check_obscured_slots()

//uniform
if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !(w_uniform.item_flags & EXAMINE_SKIP))
if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !HAS_TRAIT(w_uniform, TRAIT_EXAMINE_SKIP))
//accessory
var/accessory_message = ""
if(istype(w_uniform, /obj/item/clothing/under))
Expand All @@ -40,26 +40,26 @@

. += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_message]."
//head
if(head && !(obscured & ITEM_SLOT_HEAD) && !(head.item_flags & EXAMINE_SKIP))
if(head && !(obscured & ITEM_SLOT_HEAD) && !HAS_TRAIT(head, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head."
//suit/armor
if(wear_suit && !(wear_suit.item_flags & EXAMINE_SKIP))
if(wear_suit && !HAS_TRAIT(wear_suit, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]."
//suit/armor storage
if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !(s_store.item_flags & EXAMINE_SKIP))
if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !HAS_TRAIT(s_store, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]."
//back
if(back && !(back.item_flags & EXAMINE_SKIP))
if(back && !HAS_TRAIT(back, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back."

//Hands
for(var/obj/item/held_thing in held_items)
if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM))
if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP))
continue
. += "[t_He] [t_is] holding [held_thing.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]."

//gloves
if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !(gloves.item_flags & EXAMINE_SKIP))
if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !HAS_TRAIT(gloves, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands."
else if(GET_ATOM_BLOOD_DNA_LENGTH(src))
if(num_hands)
Expand All @@ -73,35 +73,35 @@
. += span_warning("[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!")

//belt
if(belt && !(belt.item_flags & EXAMINE_SKIP))
if(belt && !HAS_TRAIT(belt, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist."

//shoes
if(shoes && !(obscured & ITEM_SLOT_FEET) && !(shoes.item_flags & EXAMINE_SKIP))
if(shoes && !(obscured & ITEM_SLOT_FEET) && !HAS_TRAIT(shoes, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet."

//mask
if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !(wear_mask.item_flags & EXAMINE_SKIP))
if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !HAS_TRAIT(wear_mask, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face."

if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !(wear_neck.item_flags & EXAMINE_SKIP))
if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !HAS_TRAIT(wear_neck, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck."

//eyes
if(!(obscured & ITEM_SLOT_EYES) )
if(glasses && !(glasses.item_flags & EXAMINE_SKIP))
if(glasses && !HAS_TRAIT(glasses, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes."
else if(HAS_TRAIT(src, TRAIT_UNNATURAL_RED_GLOWY_EYES))
. += "<span class='warning'><B>[t_His] eyes are glowing with an unnatural red aura!</B></span>"
else if(HAS_TRAIT(src, TRAIT_BLOODSHOT_EYES))
. += "<span class='warning'><B>[t_His] eyes are bloodshot!</B></span>"

//ears
if(ears && !(obscured & ITEM_SLOT_EARS) && !(ears.item_flags & EXAMINE_SKIP))
if(ears && !(obscured & ITEM_SLOT_EARS) && !HAS_TRAIT(ears, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears."

//ID
if(wear_id && !(wear_id.item_flags & EXAMINE_SKIP))
if(wear_id && !HAS_TRAIT(wear_id, TRAIT_EXAMINE_SKIP))
. += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)]."

. += wear_id.get_id_examine_strings(user)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mod/modules/modules_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -484,10 +484,10 @@ monkestation end */
incompatible_modules = list(/obj/item/mod/module/infiltrator, /obj/item/mod/module/armor_booster, /obj/item/mod/module/welding)

/obj/item/mod/module/infiltrator/on_install()
mod.item_flags |= EXAMINE_SKIP
ADD_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src))

/obj/item/mod/module/infiltrator/on_uninstall(deleting = FALSE)
mod.item_flags &= ~EXAMINE_SKIP
REMOVE_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src))

/obj/item/mod/module/infiltrator/on_suit_activation()
mod.wearer.add_traits(list(TRAIT_SILENT_FOOTSTEPS, TRAIT_UNKNOWN), MOD_TRAIT)
Expand Down
2 changes: 1 addition & 1 deletion monkestation/code/datums/components/basic_inhands.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
SIGNAL_HANDLER
var/mob/living/parent = src.parent
for(var/obj/item/held_thing in parent.held_items)
if(held_thing.item_flags & (ABSTRACT | EXAMINE_SKIP | HAND_ITEM))
if((held_thing.item_flags & (ABSTRACT | HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP))
continue
examine_info += span_info("[parent.p_They()] [parent.p_are()] holding [held_thing.get_examine_string(user)] in [parent.p_their()] [parent.get_held_index_name(parent.get_held_index_of_item(held_thing))].")
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
if(QDELETED(thing) || prob(50))
continue
// ignore abstract items and such
if((thing.item_flags & (ABSTRACT | EXAMINE_SKIP | HAND_ITEM)) || (thing.resistance_flags & INDESTRUCTIBLE))
if((thing.item_flags & (ABSTRACT | HAND_ITEM)) || (thing.resistance_flags & INDESTRUCTIBLE) || HAS_TRAIT(thing, TRAIT_EXAMINE_SKIP))
continue
// don't delete people's ID cards
if(istype(thing, /obj/item/card/id))
Expand Down

0 comments on commit d10b24a

Please sign in to comment.