mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-23 13:18:09 +01:00
clothing normal-digitigrade icon swap optimizations
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
//CHOMP Overrides for if holder is digitigrade
|
||||
/obj/item/clothing
|
||||
var/update_icon_define_orig = null
|
||||
var/update_icon_define_orig = null // temp storage for original update_icon_define (if it exists)
|
||||
var/fit_for_digi = FALSE // flag for if clothing has already been reskinned to digitigrade
|
||||
|
||||
/obj/item/clothing/proc/handle_digitigrade(var/mob/user)
|
||||
if(ishuman(user))
|
||||
@@ -20,13 +21,14 @@
|
||||
update_icon_define_digi = "icons/inventory/uniform/mob_digi_ch.dmi"
|
||||
else
|
||||
return
|
||||
|
||||
// only override icon if a corresponding digitigrade replacement icon_state exists
|
||||
// otherwise, keep the old non-digi icon
|
||||
if(icon_state && icon_states(update_icon_define_digi).Find(icon_state))
|
||||
|
||||
// Don't reset if already set
|
||||
if(update_icon_define <> update_icon_define_digi)
|
||||
|
||||
// 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
|
||||
|
||||
// only override icon if a corresponding digitigrade replacement icon_state exists
|
||||
// otherwise, keep the old non-digi icon
|
||||
if(icon_state && icon_states(update_icon_define_digi).Find(icon_state))
|
||||
|
||||
//if update_icon_define is already set to something, place it in a var to hold it temporarily
|
||||
if(update_icon_define)
|
||||
@@ -36,16 +38,18 @@
|
||||
update_icon_define = update_icon_define_digi
|
||||
|
||||
|
||||
// if not-digitigrade and update_icon_define set by previous digi-user, replacing an 'original' value
|
||||
else if(update_icon_define_orig)
|
||||
update_icon_define = update_icon_define_orig
|
||||
update_icon_define_orig = null
|
||||
|
||||
|
||||
else if(update_icon_define)
|
||||
// if not-digitigrade and update_icon_define set by previous digi-user, but nothing replaced
|
||||
update_icon_define = null
|
||||
|
||||
// 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)
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user