From c3e94b5e3d45168a0b25772fab357264949ca1af Mon Sep 17 00:00:00 2001 From: Militaires Date: Sun, 15 Oct 2017 23:34:46 +0300 Subject: [PATCH 1/4] Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons --- code/__DEFINES/mobs.dm | 19 +++- .../mob/living/carbon/human/species.dm | 20 ++-- .../mob/living/carbon/human/update_icons.dm | 101 +++++++++++++++++- .../modules/mob/living/carbon/update_icons.dm | 1 + 4 files changed, 131 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index c2d3256e59..8017cde520 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -155,4 +155,21 @@ #define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5 -#define SHADOW_SPECIES_LIGHT_THRESHOLD 0.2 \ No newline at end of file +#define SHADOW_SPECIES_LIGHT_THRESHOLD 0.2 + +// Offsets defines + +#define OFFSET_UNIFORM "uniform" +#define OFFSET_ID "id" +#define OFFSET_GLOVES "gloves" +#define OFFSET_GLASSES "glasses" +#define OFFSET_EARS "ears" +#define OFFSET_SHOES "shoes" +#define OFFSET_S_STORE "s_store" +#define OFFSET_FACEMASK "mask" +#define OFFSET_HEAD "head" +#define OFFSET_FACE "face" +#define OFFSET_BELT "belt" +#define OFFSET_BACK "back" +#define OFFSET_SUIT "suit" +#define OFFSET_NECK "neck" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index dce7c62879..10b2436f7c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -8,7 +8,6 @@ #define COLD_DAMAGE_LEVEL_2 1.5 #define COLD_DAMAGE_LEVEL_3 3 - /datum/species var/id // if the game needs to manually check your race to do something not included in a proc here, it will use this var/limbs_id //this is used if you want to use a different species limb sprites. Mainly used for angels as they look like humans. @@ -18,8 +17,7 @@ var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows - var/face_y_offset = 0 - var/hair_y_offset = 0 + var/list/offset_features = list(OFFSET_UNIFORM = list(0,0), OFFSET_ID = list(0,0), OFFSET_GLOVES = list(0,0), OFFSET_GLASSES = list(0,0), OFFSET_EARS = list(0,0), OFFSET_SHOES = list(0,0), OFFSET_S_STORE = list(0,0), OFFSET_FACEMASK = list(0,0), OFFSET_HEAD = list(0,0), OFFSET_FACE = list(0,0), OFFSET_BELT = list(0,0), OFFSET_BACK = list(0,0), OFFSET_SUIT = list(0,0), OFFSET_NECK = list(0,0)) var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent. @@ -263,11 +261,11 @@ C.dropItemToGround(I) else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand C.put_in_hands(new mutanthands()) - + if(VIRUSIMMUNE in species_traits) for(var/datum/disease/A in C.viruses) A.cure(FALSE) - + if(NOAROUSAL in species_traits) C.canbearoused = FALSE @@ -411,7 +409,9 @@ else hair_overlay.color = forced_colour hair_overlay.alpha = hair_alpha - hair_overlay.pixel_y += hair_y_offset + if(OFFSET_FACE in H.dna.species.offset_features) + hair_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1] + hair_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2] if(hair_overlay.icon) standing += hair_overlay @@ -432,14 +432,18 @@ if(H.lip_style && (LIPS in species_traits) && HD) var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/human_face.dmi', "lips_[H.lip_style]", -BODY_LAYER) lip_overlay.color = H.lip_color - lip_overlay.pixel_y += face_y_offset + if(OFFSET_FACE in H.dna.species.offset_features) + lip_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1] + lip_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2] standing += lip_overlay // eyes if((EYECOLOR in species_traits) && HD) var/mutable_appearance/eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER) eye_overlay.color = "#" + H.eye_color - eye_overlay.pixel_y += face_y_offset + if(OFFSET_FACE in H.dna.species.offset_features) + eye_overlay.pixel_x += H.dna.species.offset_features[OFFSET_FACE][1] + eye_overlay.pixel_y += H.dna.species.offset_features[OFFSET_FACE][2] standing += eye_overlay //Underwear, Undershirts & Socks diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 7fa8a90318..ec1346be80 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -134,6 +134,10 @@ There are several things that need to be remembered: if(!uniform_overlay) uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = ((w_uniform.icon_override) ? w_uniform.icon_override : 'icons/mob/uniform.dmi'), isinhands = FALSE) + + if(OFFSET_UNIFORM in dna.species.offset_features) + uniform_overlay.pixel_x += dna.species.offset_features[OFFSET_UNIFORM][1] + uniform_overlay.pixel_y += dna.species.offset_features[OFFSET_UNIFORM][2] overlays_standing[UNIFORM_LAYER] = uniform_overlay apply_overlay(UNIFORM_LAYER) @@ -147,6 +151,8 @@ There are several things that need to be remembered: var/obj/screen/inventory/inv = hud_used.inv_slots[slot_wear_id] inv.update_icon() + var/mutable_appearance/id_overlay = overlays_standing[ID_LAYER] + if(wear_id) wear_id.screen_loc = ui_id if(client && hud_used && hud_used.hud_shown) @@ -154,7 +160,15 @@ There are several things that need to be remembered: update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey +<<<<<<< HEAD overlays_standing[ID_LAYER] = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = ((wear_id.icon_override) ? wear_id.icon_override : 'icons/mob/mob.dmi')) +======= + id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') + if(OFFSET_ID in dna.species.offset_features) + id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1] + id_overlay.pixel_y += dna.species.offset_features[OFFSET_ID][2] + overlays_standing[ID_LAYER] = id_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(ID_LAYER) @@ -176,6 +190,7 @@ There are several things that need to be remembered: overlays_standing[GLOVES_LAYER] = bloody_overlay + var/mutable_appearance/gloves_overlay = overlays_standing[GLOVES_LAYER] if(gloves) gloves.screen_loc = ui_gloves if(client && hud_used && hud_used.hud_shown) @@ -185,8 +200,17 @@ There are several things that need to be remembered: var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state +<<<<<<< HEAD overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = ((gloves.icon_override) ? gloves.icon_override : 'icons/mob/hands.dmi')) +======= + overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') + gloves_overlay = overlays_standing[GLOVES_LAYER] + if(OFFSET_GLOVES in dna.species.offset_features) + gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] + gloves_overlay.pixel_y += dna.species.offset_features[OFFSET_GLOVES][2] + overlays_standing[GLOVES_LAYER] = gloves_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(GLOVES_LAYER) @@ -207,9 +231,18 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) +<<<<<<< HEAD overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = ((glasses.icon_override) ? glasses.icon_override : 'icons/mob/eyes.dmi')) +======= + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) + var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] + if(OFFSET_GLASSES in dna.species.offset_features) + glasses_overlay.pixel_x += dna.species.offset_features[OFFSET_GLASSES][1] + glasses_overlay.pixel_y += dna.species.offset_features[OFFSET_GLASSES][2] + overlays_standing[GLASSES_LAYER] = glasses_overlay apply_overlay(GLASSES_LAYER) @@ -230,8 +263,17 @@ There are several things that need to be remembered: client.screen += ears //add it to the client's screen update_observer_view(ears,1) +<<<<<<< HEAD overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = ((ears.icon_override) ? ears.icon_override : 'icons/mob/ears.dmi')) +======= + overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') + var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER] + if(OFFSET_EARS in dna.species.offset_features) + ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1] + ears_overlay.pixel_y += dna.species.offset_features[OFFSET_EARS][2] + overlays_standing[EARS_LAYER] = ears_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(EARS_LAYER) @@ -251,7 +293,16 @@ There are several things that need to be remembered: if(hud_used.inventory_shown) //if the inventory is open client.screen += shoes //add it to client's screen update_observer_view(shoes,1) +<<<<<<< HEAD overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = ((shoes.icon_override) ? shoes.icon_override : 'icons/mob/feet.dmi')) +======= + overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi') + var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] + if(OFFSET_SHOES in dna.species.offset_features) + shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1] + shoes_overlay.pixel_y += dna.species.offset_features[OFFSET_SHOES][2] + overlays_standing[SHOES_LAYER] = shoes_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(SHOES_LAYER) @@ -272,13 +323,25 @@ There are several things that need to be remembered: if(!t_state) t_state = s_store.icon_state overlays_standing[SUIT_STORE_LAYER] = mutable_appearance('icons/mob/belt_mirror.dmi', t_state, -SUIT_STORE_LAYER) - + var/mutable_appearance/s_store_overlay = overlays_standing[SUIT_LAYER] + if(OFFSET_S_STORE in dna.species.offset_features) + s_store_overlay.pixel_x += dna.species.offset_features[OFFSET_S_STORE][1] + s_store_overlay.pixel_y += dna.species.offset_features[OFFSET_S_STORE][2] + overlays_standing[SUIT_STORE_LAYER] = s_store_overlay apply_overlay(SUIT_STORE_LAYER) /mob/living/carbon/human/update_inv_head() ..() update_mutant_bodyparts() + var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] + if(head_overlay) + remove_overlay(HEAD_LAYER) + if(OFFSET_HEAD in dna.species.offset_features) + head_overlay.pixel_x += dna.species.offset_features[OFFSET_HEAD][1] + head_overlay.pixel_y += dna.species.offset_features[OFFSET_HEAD][2] + overlays_standing[HEAD_LAYER] = head_overlay + apply_overlay(HEAD_LAYER) /mob/living/carbon/human/update_inv_belt() remove_overlay(BELT_LAYER) @@ -297,8 +360,17 @@ There are several things that need to be remembered: if(!t_state) t_state = belt.icon_state +<<<<<<< HEAD overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = ((belt.icon_override) ? belt.icon_override : 'icons/mob/belt.dmi')) +======= + overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') + var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] + if(OFFSET_BELT in dna.species.offset_features) + belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] + belt_overlay.pixel_y += dna.species.offset_features[OFFSET_BELT][2] + overlays_standing[BELT_LAYER] = belt_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(BELT_LAYER) @@ -318,8 +390,17 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) +<<<<<<< HEAD overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = ((wear_suit.icon_override) ? wear_suit.icon_override : 'icons/mob/suit.dmi')) +======= + overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi') + var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] + if(OFFSET_SUIT in dna.species.offset_features) + suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] + suit_overlay.pixel_y += dna.species.offset_features[OFFSET_SUIT][2] + overlays_standing[SUIT_LAYER] = suit_overlay +>>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) update_hair() update_mutant_bodyparts() @@ -351,8 +432,26 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_wear_mask() ..() + var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] + if(mask_overlay) + remove_overlay(FACEMASK_LAYER) + if(OFFSET_FACEMASK in dna.species.offset_features) + mask_overlay.pixel_x += dna.species.offset_features[OFFSET_FACEMASK][1] + mask_overlay.pixel_y += dna.species.offset_features[OFFSET_FACEMASK][2] + overlays_standing[FACEMASK_LAYER] = mask_overlay + apply_overlay(FACEMASK_LAYER) update_mutant_bodyparts() //e.g. upgate needed because mask now hides lizard snout +/mob/living/carbon/human/update_inv_back() + ..() + var/mutable_appearance/back_overlay = overlays_standing[BACK_LAYER] + if(back_overlay) + remove_overlay(BACK_LAYER) + if(OFFSET_BACK in dna.species.offset_features) + back_overlay.pixel_x += dna.species.offset_features[OFFSET_BACK][1] + back_overlay.pixel_y += dna.species.offset_features[OFFSET_BACK][2] + overlays_standing[BACK_LAYER] = back_overlay + apply_overlay(BACK_LAYER) /mob/living/carbon/human/update_inv_legcuffed() remove_overlay(LEGCUFF_LAYER) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index d2013f458d..173b088c3c 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -153,6 +153,7 @@ if(back) overlays_standing[BACK_LAYER] = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi') update_hud_back(back) + apply_overlay(BACK_LAYER) /mob/living/carbon/update_inv_head() From 8a14bab2ee623ff365d320c8de80b7d3f1578d7f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 16 Oct 2017 06:10:06 -0500 Subject: [PATCH 2/4] Update update_icons.dm --- code/modules/mob/living/carbon/human/update_icons.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ec1346be80..e02ba838e1 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -160,16 +160,11 @@ There are several things that need to be remembered: update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey -<<<<<<< HEAD - overlays_standing[ID_LAYER] = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = ((wear_id.icon_override) ? wear_id.icon_override : 'icons/mob/mob.dmi')) -======= id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') if(OFFSET_ID in dna.species.offset_features) id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1] id_overlay.pixel_y += dna.species.offset_features[OFFSET_ID][2] overlays_standing[ID_LAYER] = id_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) - apply_overlay(ID_LAYER) From 6f35f66dcaf1633a2516781fbced1c25e8c33df5 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 16 Oct 2017 07:24:08 -0500 Subject: [PATCH 3/4] Update update_icons.dm --- code/modules/mob/living/carbon/human/update_icons.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e02ba838e1..d8dcd6d713 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -195,17 +195,12 @@ There are several things that need to be remembered: var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state -<<<<<<< HEAD - overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = ((gloves.icon_override) ? gloves.icon_override : 'icons/mob/hands.dmi')) - -======= overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') gloves_overlay = overlays_standing[GLOVES_LAYER] if(OFFSET_GLOVES in dna.species.offset_features) gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] gloves_overlay.pixel_y += dna.species.offset_features[OFFSET_GLOVES][2] overlays_standing[GLOVES_LAYER] = gloves_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(GLOVES_LAYER) From 75a4f22143cde4e68b41db0b33329e76bc983f25 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 16 Oct 2017 07:53:19 -0500 Subject: [PATCH 4/4] Update update_icons.dm --- .../mob/living/carbon/human/update_icons.dm | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index d8dcd6d713..4a9983b9e6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -221,13 +221,7 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) -<<<<<<< HEAD - - overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = ((glasses.icon_override) ? glasses.icon_override : 'icons/mob/eyes.dmi')) -======= overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) - var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] if(OFFSET_GLASSES in dna.species.offset_features) glasses_overlay.pixel_x += dna.species.offset_features[OFFSET_GLASSES][1] @@ -253,17 +247,12 @@ There are several things that need to be remembered: client.screen += ears //add it to the client's screen update_observer_view(ears,1) -<<<<<<< HEAD - overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = ((ears.icon_override) ? ears.icon_override : 'icons/mob/ears.dmi')) - -======= overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER] if(OFFSET_EARS in dna.species.offset_features) ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1] ears_overlay.pixel_y += dna.species.offset_features[OFFSET_EARS][2] overlays_standing[EARS_LAYER] = ears_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) apply_overlay(EARS_LAYER) @@ -283,17 +272,12 @@ There are several things that need to be remembered: if(hud_used.inventory_shown) //if the inventory is open client.screen += shoes //add it to client's screen update_observer_view(shoes,1) -<<<<<<< HEAD - overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = ((shoes.icon_override) ? shoes.icon_override : 'icons/mob/feet.dmi')) -======= overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi') var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] if(OFFSET_SHOES in dna.species.offset_features) shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1] shoes_overlay.pixel_y += dna.species.offset_features[OFFSET_SHOES][2] overlays_standing[SHOES_LAYER] = shoes_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) - apply_overlay(SHOES_LAYER) @@ -350,18 +334,12 @@ There are several things that need to be remembered: if(!t_state) t_state = belt.icon_state -<<<<<<< HEAD - overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = ((belt.icon_override) ? belt.icon_override : 'icons/mob/belt.dmi')) - -======= overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] if(OFFSET_BELT in dna.species.offset_features) belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] belt_overlay.pixel_y += dna.species.offset_features[OFFSET_BELT][2] overlays_standing[BELT_LAYER] = belt_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) - apply_overlay(BELT_LAYER) @@ -380,17 +358,12 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) -<<<<<<< HEAD - overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = ((wear_suit.icon_override) ? wear_suit.icon_override : 'icons/mob/suit.dmi')) - -======= overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi') var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] if(OFFSET_SUIT in dna.species.offset_features) suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] suit_overlay.pixel_y += dna.species.offset_features[OFFSET_SUIT][2] overlays_standing[SUIT_LAYER] = suit_overlay ->>>>>>> 068f91e... Refactors species-based offsets, condenses all offsets into a single list, adds support for all other standing icons (#31642) update_hair() update_mutant_bodyparts()