mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-25 06:07:22 +01:00
[MIRROR-FIX] Upstream merge 15464 (#7176)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
This commit is contained in:
@@ -23,6 +23,10 @@
|
||||
|
||||
var/polychromic = FALSE //VOREStation edit
|
||||
|
||||
var/update_icon_define_orig = null // temp storage for original update_icon_define (if it exists)
|
||||
var/update_icon_define_digi = null // dmi used for the digi sprites
|
||||
var/fit_for_digi = FALSE // flag for if clothing has already been reskinned to digitigrade
|
||||
|
||||
//Updates the icons of the mob wearing the clothing item, if any.
|
||||
/obj/item/clothing/proc/update_clothing_icon()
|
||||
return
|
||||
@@ -621,6 +625,8 @@
|
||||
drop_sound = 'sound/items/drop/shoes.ogg'
|
||||
pickup_sound = 'sound/items/pickup/shoes.ogg'
|
||||
|
||||
update_icon_define_digi = "icons/inventory/feet/mob_digi.dmi"
|
||||
|
||||
/obj/item/clothing/shoes/proc/draw_knife()
|
||||
set name = "Draw Boot Knife"
|
||||
set desc = "Pull out your boot knife."
|
||||
@@ -757,6 +763,8 @@
|
||||
valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND)
|
||||
restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND)
|
||||
|
||||
update_icon_define_digi = "icons/inventory/suit/mob_digi.dmi"
|
||||
|
||||
/obj/item/clothing/suit/update_clothing_icon()
|
||||
if (ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
@@ -866,6 +874,8 @@
|
||||
var/icon/rolled_down_icon = 'icons/inventory/uniform/mob_rolled_down.dmi'
|
||||
var/icon/rolled_down_sleeves_icon = 'icons/inventory/uniform/mob_sleeves_rolled.dmi'
|
||||
|
||||
update_icon_define_digi = "icons/inventory/uniform/mob_digi.dmi"
|
||||
|
||||
/obj/item/clothing/under/attack_hand(var/mob/user)
|
||||
if(LAZYLEN(accessories))
|
||||
..()
|
||||
@@ -1071,3 +1081,49 @@
|
||||
M.forceMove(get_turf(src))
|
||||
return ..()
|
||||
//Vorestation edit end
|
||||
|
||||
/obj/item/clothing/proc/handle_digitigrade(var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
// if digitigrade-use flag is set
|
||||
if(H.digitigrade)
|
||||
|
||||
// Don't reset if already set
|
||||
if(!fit_for_digi)
|
||||
fit_for_digi = TRUE // set flag even if no icon_state exists, so we don't repeat checks
|
||||
|
||||
//if update_icon_define is already set to something, place it in a var to hold it temporarily
|
||||
if(update_icon_define)
|
||||
update_icon_define_orig = update_icon_define
|
||||
|
||||
// only override icon if a corresponding digitigrade replacement icon_state exists
|
||||
// otherwise, keep the old non-digi icon_define (or nothing)
|
||||
if(icon_state && icon_states(update_icon_define_digi).Find(icon_state))
|
||||
update_icon_define = update_icon_define_digi
|
||||
|
||||
|
||||
// if not-digitigrade, only act if the clothing was previously fit for a digitigrade char
|
||||
else
|
||||
if(fit_for_digi)
|
||||
fit_for_digi = FALSE
|
||||
|
||||
//either reset update_icon_define to it's old value
|
||||
// or reset update_icon_define to null
|
||||
if(update_icon_define_orig)
|
||||
update_icon_define = update_icon_define_orig
|
||||
update_icon_define_orig = null
|
||||
else
|
||||
update_icon_define = null
|
||||
|
||||
/obj/item/clothing/shoes/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
/obj/item/clothing/suit/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
/obj/item/clothing/under/equipped(var/mob/user, var/slot)
|
||||
. = ..()
|
||||
handle_digitigrade(user)
|
||||
|
||||
Reference in New Issue
Block a user