From fc4de530ce208ad6d91ad85cf241b094e64b2ae5 Mon Sep 17 00:00:00 2001 From: Fikou <23585223+Fikou@users.noreply.github.com> Date: Sat, 5 Aug 2023 16:12:05 +0200 Subject: [PATCH] reorganizes the human sprite folder and replaces the human_basic sprite with an updated one (#77323) instead of mob/species/human the icon folders are now mob/human/species, this makes much more sense imo than having human stuff like hair or bodyparts (which are a GENERAL thing, not human species only) be behind a folder while you see shit like podperson hair and golem in the main folder the icon for human is replaced by the new sprites instead of the old yellow guy with green eyes --- code/__DEFINES/mobs.dm | 2 +- code/__DEFINES/species_clothing_paths.dm | 8 +-- .../emote_bodypart_overlay.dm | 2 +- .../simple_bodypart_overlay.dm | 2 +- code/datums/sprite_accessories.dm | 42 +++++++------- .../effects/decals/cleanable/humans.dm | 6 +- .../stacks/golem_food/golem_status_effects.dm | 2 +- code/game/objects/structures/mannequin.dm | 2 +- code/modules/client/preferences/clothing.dm | 16 +++--- .../preferences/species_features/basic.dm | 2 +- .../preferences/species_features/ethereal.dm | 10 ++-- .../preferences/species_features/lizard.dm | 10 ++-- .../preferences/species_features/moth.dm | 14 ++--- .../preferences/species_features/pod.dm | 2 +- code/modules/clothing/head/wig.dm | 2 +- .../restaurant/customers/_customer.dm | 4 +- code/modules/hallucination/body.dm | 2 +- code/modules/hallucination/delusions.dm | 6 +- code/modules/hallucination/shock.dm | 2 +- code/modules/holodeck/mobs.dm | 2 +- .../mob/living/basic/space_fauna/ghost.dm | 4 +- code/modules/mob/living/carbon/human/emote.dm | 2 +- .../mob/living/carbon/human/human_defines.dm | 2 +- code/modules/mob/living/emote.dm | 2 +- .../crossbreeding/_status_effects.dm | 2 +- code/modules/surgery/bodyparts/_bodyparts.dm | 8 +-- code/modules/surgery/bodyparts/head.dm | 22 +++---- .../surgery/bodyparts/head_hair_and_lips.dm | 12 ++-- code/modules/surgery/bodyparts/parts.dm | 54 +++++++++--------- .../species_parts/ethereal_bodyparts.dm | 12 ++-- .../species_parts/lizard_bodyparts.dm | 16 +++--- .../bodyparts/species_parts/misc_bodyparts.dm | 24 ++++---- .../bodyparts/species_parts/moth_bodyparts.dm | 24 ++++---- .../species_parts/plasmaman_bodyparts.dm | 24 ++++---- .../surgery/organs/internal/eyes/_eyes.dm | 10 ++-- icons/mob/{species => }/human/bodyparts.dmi | Bin .../human/bodyparts_greyscale.dmi | Bin .../mob/{species => }/human/cat_features.dmi | Bin .../mob/{species => }/human/emote_visuals.dmi | Bin .../mob/{species => }/human/fox_features.dmi | Bin icons/mob/human/human.dmi | Bin 0 -> 19246 bytes icons/mob/{species => }/human/human_face.dmi | Bin icons/mob/{species => }/human/mannequin.dmi | Bin .../{ => human}/species/alien/bodyparts.dmi | Bin .../species/ethereal/bodyparts.dmi | Bin icons/mob/{ => human}/species/golems.dmi | Bin .../{ => human}/species/hair_gradients.dmi | Bin .../{ => human}/species/lizard/bodyparts.dmi | Bin .../species/lizard/lizard_misc.dmi | Bin .../species/lizard/lizard_spines.dmi | Bin .../species/lizard/lizard_tails.dmi | Bin .../species/misc/bodypart_overlay_simple.dmi | Bin .../{ => human}/species/misc/digitigrade.dmi | Bin .../{ => human}/species/monkey/bodyparts.dmi | Bin .../species/monkey/monkey_tail.dmi | Bin .../{ => human}/species/monkey/uniform.dmi | Bin .../{ => human}/species/moth/bodyparts.dmi | Bin .../species/moth/moth_antennae.dmi | Bin .../species/moth/moth_markings.dmi | Bin .../{ => human}/species/moth/moth_wings.dmi | Bin icons/mob/{ => human}/species/mush_cap.dmi | Bin .../species/plasmaman/bodyparts.dmi | Bin .../{ => human}/species/podperson_hair.dmi | Bin icons/mob/{ => human}/species/wings.dmi | Bin icons/mob/species/human/human.dmi | Bin 18225 -> 0 bytes 65 files changed, 178 insertions(+), 178 deletions(-) rename icons/mob/{species => }/human/bodyparts.dmi (100%) rename icons/mob/{species => }/human/bodyparts_greyscale.dmi (100%) rename icons/mob/{species => }/human/cat_features.dmi (100%) rename icons/mob/{species => }/human/emote_visuals.dmi (100%) rename icons/mob/{species => }/human/fox_features.dmi (100%) create mode 100644 icons/mob/human/human.dmi rename icons/mob/{species => }/human/human_face.dmi (100%) rename icons/mob/{species => }/human/mannequin.dmi (100%) rename icons/mob/{ => human}/species/alien/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/ethereal/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/golems.dmi (100%) rename icons/mob/{ => human}/species/hair_gradients.dmi (100%) rename icons/mob/{ => human}/species/lizard/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/lizard/lizard_misc.dmi (100%) rename icons/mob/{ => human}/species/lizard/lizard_spines.dmi (100%) rename icons/mob/{ => human}/species/lizard/lizard_tails.dmi (100%) rename icons/mob/{ => human}/species/misc/bodypart_overlay_simple.dmi (100%) rename icons/mob/{ => human}/species/misc/digitigrade.dmi (100%) rename icons/mob/{ => human}/species/monkey/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/monkey/monkey_tail.dmi (100%) rename icons/mob/{ => human}/species/monkey/uniform.dmi (100%) rename icons/mob/{ => human}/species/moth/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/moth/moth_antennae.dmi (100%) rename icons/mob/{ => human}/species/moth/moth_markings.dmi (100%) rename icons/mob/{ => human}/species/moth/moth_wings.dmi (100%) rename icons/mob/{ => human}/species/mush_cap.dmi (100%) rename icons/mob/{ => human}/species/plasmaman/bodyparts.dmi (100%) rename icons/mob/{ => human}/species/podperson_hair.dmi (100%) rename icons/mob/{ => human}/species/wings.dmi (100%) delete mode 100644 icons/mob/species/human/human.dmi diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 24d0fd9355d..690b87d4ffe 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -58,7 +58,7 @@ #define RESPIRATION_OXYGEN (1 << 0) #define RESPIRATION_N2 (1 << 1) #define RESPIRATION_PLASMA (1 << 2) -#define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/species/human/bodyparts_greyscale.dmi' +#define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human/bodyparts_greyscale.dmi' #define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi' #define MONKEY_BODYPART "monkey" diff --git a/code/__DEFINES/species_clothing_paths.dm b/code/__DEFINES/species_clothing_paths.dm index 51d94eb0463..2582d81b613 100644 --- a/code/__DEFINES/species_clothing_paths.dm +++ b/code/__DEFINES/species_clothing_paths.dm @@ -8,12 +8,12 @@ //MONKEY PATHS ///The dmi for monkey uniforms -#define MONKEY_UNIFORM_FILE 'icons/mob/species/monkey/uniform.dmi' +#define MONKEY_UNIFORM_FILE 'icons/mob/human/species/monkey/uniform.dmi' //DIGITIGRADE PATHS ///The dmi containing digitigrade uniforms -#define DIGITIGRADE_UNIFORM_FILE 'icons/mob/species/misc/digitigrade.dmi' +#define DIGITIGRADE_UNIFORM_FILE 'icons/mob/human/species/misc/digitigrade.dmi' ///The dmi containing digitigrade shoes -#define DIGITIGRADE_SHOES_FILE 'icons/mob/species/misc/digitigrade_shoes.dmi' +#define DIGITIGRADE_SHOES_FILE 'icons/mob/human/species/misc/digitigrade_shoes.dmi' ///The dmi containing digitigrade oversuits -#define DIGITIGRADE_SUIT_FILE 'icons/mob/species/misc/digitigrade_suits.dmi' +#define DIGITIGRADE_SUIT_FILE 'icons/mob/human/species/misc/digitigrade_suits.dmi' diff --git a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm index 4143efb67db..524dd176056 100644 --- a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm @@ -1,6 +1,6 @@ ///Variant of bodypart_overlay for displaying emote overlays. See [/datum/emote/living/blush/run_emote] for an example on how to use one of these. /datum/bodypart_overlay/simple/emote - icon = 'icons/mob/species/human/emote_visuals.dmi' + icon = 'icons/mob/human/emote_visuals.dmi' ///The body zone to attach the overlay to, overlay won't be added if no bodypart can be found with this var/attached_body_zone = BODY_ZONE_CHEST ///The feature key used to figure out what specific bodily feature we offset this to follow diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm index 00df41a89e3..72fef44b2d4 100644 --- a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm @@ -4,7 +4,7 @@ ///Icon state of the overlay var/icon_state ///Icon of the overlay - var/icon = 'icons/mob/species/misc/bodypart_overlay_simple.dmi' + var/icon = 'icons/mob/human/species/misc/bodypart_overlay_simple.dmi' ///Color we apply to our overlay (none by default) var/draw_color diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index ad8e7645ee2..8b9cb31defd 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -84,7 +84,7 @@ // Hair Definitions // ////////////////////// /datum/sprite_accessory/hair - icon = 'icons/mob/species/human/human_face.dmi' // default icon for all hairs + icon = 'icons/mob/human/human_face.dmi' // default icon for all hairs // please make sure they're sorted alphabetically and, where needed, categorized // try to capitalize the names please~ @@ -832,7 +832,7 @@ */ /datum/sprite_accessory/gradient - icon = 'icons/mob/species/hair_gradients.dmi' + icon = 'icons/mob/human/species/hair_gradients.dmi' ///whether this gradient applies to hair and/or beards. Some gradients do not work well on beards. var/gradient_category = GRADIENT_APPLIES_TO_HAIR|GRADIENT_APPLIES_TO_FACIAL_HAIR @@ -923,7 +923,7 @@ ///////////////////////////// /datum/sprite_accessory/facial_hair - icon = 'icons/mob/species/human/human_face.dmi' + icon = 'icons/mob/human/human_face.dmi' gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P) em_block = TRUE @@ -1720,7 +1720,7 @@ ///////////////////////////// /datum/sprite_accessory/body_markings - icon = 'icons/mob/species/lizard/lizard_misc.dmi' + icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' /datum/sprite_accessory/body_markings/none name = "None" @@ -1745,7 +1745,7 @@ em_block = TRUE /datum/sprite_accessory/tails/lizard - icon = 'icons/mob/species/lizard/lizard_tails.dmi' + icon = 'icons/mob/human/species/lizard/lizard_tails.dmi' /datum/sprite_accessory/tails/lizard/smooth name = "Smooth" @@ -1765,18 +1765,18 @@ /datum/sprite_accessory/tails/human/cat name = "Cat" - icon = 'icons/mob/species/human/cat_features.dmi' + icon = 'icons/mob/human/cat_features.dmi' icon_state = "default" color_src = HAIR_COLOR /datum/sprite_accessory/tails/monkey name = "Monkey" - icon = 'icons/mob/species/monkey/monkey_tail.dmi' + icon = 'icons/mob/human/species/monkey/monkey_tail.dmi' icon_state = "monkey" color_src = FALSE /datum/sprite_accessory/pod_hair - icon = 'icons/mob/species/podperson_hair.dmi' + icon = 'icons/mob/human/species/podperson_hair.dmi' em_block = TRUE /datum/sprite_accessory/pod_hair/ivy @@ -1820,7 +1820,7 @@ icon_state = "hibiscus" /datum/sprite_accessory/snouts - icon = 'icons/mob/species/lizard/lizard_misc.dmi' + icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' em_block = TRUE /datum/sprite_accessory/snouts/sharp @@ -1840,7 +1840,7 @@ icon_state = "roundlight" /datum/sprite_accessory/horns - icon = 'icons/mob/species/lizard/lizard_misc.dmi' + icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' em_block = TRUE /datum/sprite_accessory/horns/none @@ -1868,7 +1868,7 @@ icon_state = "angler" /datum/sprite_accessory/ears - icon = 'icons/mob/species/human/cat_features.dmi' + icon = 'icons/mob/human/cat_features.dmi' em_block = TRUE /datum/sprite_accessory/ears/none @@ -1882,7 +1882,7 @@ color_src = HAIR_COLOR /datum/sprite_accessory/ears/fox - icon = 'icons/mob/species/human/fox_features.dmi' + icon = 'icons/mob/human/fox_features.dmi' name = "Fox" icon_state = "fox" hasinner = TRUE @@ -1894,11 +1894,11 @@ icon_state = "none" /datum/sprite_accessory/wings - icon = 'icons/mob/species/wings.dmi' + icon = 'icons/mob/human/species/wings.dmi' em_block = TRUE /datum/sprite_accessory/wings_open - icon = 'icons/mob/species/wings.dmi' + icon = 'icons/mob/human/species/wings.dmi' em_block = TRUE /datum/sprite_accessory/wings/angel @@ -2019,7 +2019,7 @@ dimension_y = 32 /datum/sprite_accessory/frills - icon = 'icons/mob/species/lizard/lizard_misc.dmi' + icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' /datum/sprite_accessory/frills/none name = "None" @@ -2038,11 +2038,11 @@ icon_state = "aqua" /datum/sprite_accessory/spines - icon = 'icons/mob/species/lizard/lizard_spines.dmi' + icon = 'icons/mob/human/species/lizard/lizard_spines.dmi' em_block = TRUE /datum/sprite_accessory/spines_animated - icon = 'icons/mob/species/lizard/lizard_spines.dmi' + icon = 'icons/mob/human/species/lizard/lizard_spines.dmi' em_block = TRUE /datum/sprite_accessory/spines/none @@ -2104,7 +2104,7 @@ name = DIGITIGRADE_LEGS /datum/sprite_accessory/caps - icon = 'icons/mob/species/mush_cap.dmi' + icon = 'icons/mob/human/species/mush_cap.dmi' color_src = HAIR_COLOR em_block = TRUE @@ -2113,7 +2113,7 @@ icon_state = "round" /datum/sprite_accessory/moth_wings - icon = 'icons/mob/species/moth/moth_wings.dmi' + icon = 'icons/mob/human/species/moth/moth_wings.dmi' color_src = null em_block = TRUE @@ -2215,7 +2215,7 @@ icon_state = "moffra" /datum/sprite_accessory/moth_antennae //Finally splitting the sprite - icon = 'icons/mob/species/moth/moth_antennae.dmi' + icon = 'icons/mob/human/species/moth/moth_antennae.dmi' color_src = null /datum/sprite_accessory/moth_antennae/plain @@ -2302,7 +2302,7 @@ icon_state = "moffra" /datum/sprite_accessory/moth_markings // the markings that moths can have. finally something other than the boring tan - icon = 'icons/mob/species/moth/moth_markings.dmi' + icon = 'icons/mob/human/species/moth/moth_markings.dmi' color_src = null /datum/sprite_accessory/moth_markings/none diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index b88b43c35ab..8c737036597 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -314,11 +314,11 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) if(species == "unknown") . += "Some feet." else if(species == SPECIES_MONKEY) - . += "[icon2html('icons/mob/species/human/human.dmi', user, "monkey")] Some monkey feet." + . += "[icon2html('icons/mob/human/human.dmi', user, "monkey")] Some monkey feet." else if(species == SPECIES_HUMAN) - . += "[icon2html('icons/mob/species/human/bodyparts.dmi', user, "default_human_l_leg")] Some human feet." + . += "[icon2html('icons/mob/human/bodyparts.dmi', user, "default_human_l_leg")] Some human feet." else - . += "[icon2html('icons/mob/species/human/bodyparts.dmi', user, "[species]_l_leg")] Some [species] feet." + . += "[icon2html('icons/mob/human/bodyparts.dmi', user, "[species]_l_leg")] Some [species] feet." /obj/effect/decal/cleanable/blood/footprints/replace_decal(obj/effect/decal/cleanable/C) if(blood_state != C.blood_state) //We only replace footprints of the same type as us diff --git a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm index 54d6f1c39cb..5ed7fcd4682 100644 --- a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm +++ b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm @@ -99,7 +99,7 @@ /// Body part overlays applied by golem status effects /datum/bodypart_overlay/simple/golem_overlay - icon = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' layers = ALL_EXTERNAL_OVERLAYS ///The bodypart that the overlay is currently applied to var/datum/weakref/attached_bodypart diff --git a/code/game/objects/structures/mannequin.dm b/code/game/objects/structures/mannequin.dm index c568c0a1261..ad9588d5aa8 100644 --- a/code/game/objects/structures/mannequin.dm +++ b/code/game/objects/structures/mannequin.dm @@ -6,7 +6,7 @@ /obj/structure/mannequin name = "mannequin" desc = "Oh, so this is a dress-up game now." - icon = 'icons/mob/species/human/mannequin.dmi' + icon = 'icons/mob/human/mannequin.dmi' icon_state = "mannequin_wood_male" density = TRUE resistance_flags = FLAMMABLE diff --git a/code/modules/client/preferences/clothing.dm b/code/modules/client/preferences/clothing.dm index 476014649a9..84ffa7319e5 100644 --- a/code/modules/client/preferences/clothing.dm +++ b/code/modules/client/preferences/clothing.dm @@ -2,7 +2,7 @@ var/icon/lower_half = icon('icons/blanks/32x32.dmi', "nothing") for (var/icon in icons) - lower_half.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', icon), ICON_OVERLAY) + lower_half.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', icon), ICON_OVERLAY) var/list/values = list() @@ -95,13 +95,13 @@ should_generate_icons = TRUE /datum/preference/choiced/undershirt/init_possible_values() - var/icon/body = icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_r_leg") - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_l_leg"), ICON_OVERLAY) - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_r_arm"), ICON_OVERLAY) - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_l_arm"), ICON_OVERLAY) - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_r_hand"), ICON_OVERLAY) - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_l_hand"), ICON_OVERLAY) - body.Blend(icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_chest_m"), ICON_OVERLAY) + var/icon/body = icon('icons/mob/human/bodyparts_greyscale.dmi', "human_r_leg") + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_l_leg"), ICON_OVERLAY) + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_r_arm"), ICON_OVERLAY) + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_l_arm"), ICON_OVERLAY) + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_r_hand"), ICON_OVERLAY) + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_l_hand"), ICON_OVERLAY) + body.Blend(icon('icons/mob/human/bodyparts_greyscale.dmi', "human_chest_m"), ICON_OVERLAY) var/list/values = list() diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index da49610a930..5cf0fc5905f 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -1,7 +1,7 @@ /proc/generate_possible_values_for_sprite_accessories_on_head(accessories) var/list/values = possible_values_for_sprite_accessory_list(accessories) - var/icon/head_icon = icon('icons/mob/species/human/bodyparts_greyscale.dmi', "human_head_m") + var/icon/head_icon = icon('icons/mob/human/bodyparts_greyscale.dmi', "human_head_m") head_icon.Blend(skintone2hex("caucasian1"), ICON_MULTIPLY) for (var/name in values) diff --git a/code/modules/client/preferences/species_features/ethereal.dm b/code/modules/client/preferences/species_features/ethereal.dm index 56fe5089589..ba0f3d3a202 100644 --- a/code/modules/client/preferences/species_features/ethereal.dm +++ b/code/modules/client/preferences/species_features/ethereal.dm @@ -8,12 +8,12 @@ /datum/preference/choiced/ethereal_color/init_possible_values() var/list/values = list() - var/icon/ethereal_base = icon('icons/mob/species/ethereal/bodyparts.dmi', "ethereal_head") - ethereal_base.Blend(icon('icons/mob/species/ethereal/bodyparts.dmi', "ethereal_chest"), ICON_OVERLAY) - ethereal_base.Blend(icon('icons/mob/species/ethereal/bodyparts.dmi', "ethereal_l_arm"), ICON_OVERLAY) - ethereal_base.Blend(icon('icons/mob/species/ethereal/bodyparts.dmi', "ethereal_r_arm"), ICON_OVERLAY) + var/icon/ethereal_base = icon('icons/mob/human/species/ethereal/bodyparts.dmi', "ethereal_head") + ethereal_base.Blend(icon('icons/mob/human/species/ethereal/bodyparts.dmi', "ethereal_chest"), ICON_OVERLAY) + ethereal_base.Blend(icon('icons/mob/human/species/ethereal/bodyparts.dmi', "ethereal_l_arm"), ICON_OVERLAY) + ethereal_base.Blend(icon('icons/mob/human/species/ethereal/bodyparts.dmi', "ethereal_r_arm"), ICON_OVERLAY) - var/icon/eyes = icon('icons/mob/species/human/human_face.dmi', "eyes") + var/icon/eyes = icon('icons/mob/human/human_face.dmi', "eyes") eyes.Blend(COLOR_BLACK, ICON_MULTIPLY) ethereal_base.Blend(eyes, ICON_OVERLAY) diff --git a/code/modules/client/preferences/species_features/lizard.dm b/code/modules/client/preferences/species_features/lizard.dm index df7b847f48e..8be62b4abd4 100644 --- a/code/modules/client/preferences/species_features/lizard.dm +++ b/code/modules/client/preferences/species_features/lizard.dm @@ -1,13 +1,13 @@ /proc/generate_lizard_side_shots(list/sprite_accessories, key, include_snout = TRUE) var/list/values = list() - var/icon/lizard = icon('icons/mob/species/lizard/bodyparts.dmi', "lizard_head", EAST) - var/icon/eyes = icon('icons/mob/species/human/human_face.dmi', "eyes", EAST) + var/icon/lizard = icon('icons/mob/human/species/lizard/bodyparts.dmi', "lizard_head", EAST) + var/icon/eyes = icon('icons/mob/human/human_face.dmi', "eyes", EAST) eyes.Blend(COLOR_GRAY, ICON_MULTIPLY) lizard.Blend(eyes, ICON_OVERLAY) if (include_snout) - lizard.Blend(icon('icons/mob/species/lizard/lizard_misc.dmi', "m_snout_round_ADJ", EAST), ICON_OVERLAY) + lizard.Blend(icon('icons/mob/human/species/lizard/lizard_misc.dmi', "m_snout_round_ADJ", EAST), ICON_OVERLAY) for (var/name in sprite_accessories) var/datum/sprite_accessory/sprite_accessory = sprite_accessories[name] @@ -37,7 +37,7 @@ /datum/preference/choiced/lizard_body_markings/init_possible_values() var/list/values = list() - var/icon/lizard = icon('icons/mob/species/lizard/bodyparts.dmi', "lizard_chest_m") + var/icon/lizard = icon('icons/mob/human/species/lizard/bodyparts.dmi', "lizard_chest_m") for (var/name in GLOB.body_markings_list) var/datum/sprite_accessory/sprite_accessory = GLOB.body_markings_list[name] @@ -46,7 +46,7 @@ if (sprite_accessory.icon_state != "none") var/icon/body_markings_icon = icon( - 'icons/mob/species/lizard/lizard_misc.dmi', + 'icons/mob/human/species/lizard/lizard_misc.dmi', "m_body_markings_[sprite_accessory.icon_state]_ADJ", ) diff --git a/code/modules/client/preferences/species_features/moth.dm b/code/modules/client/preferences/species_features/moth.dm index 87823a12d37..2553e75d1ba 100644 --- a/code/modules/client/preferences/species_features/moth.dm +++ b/code/modules/client/preferences/species_features/moth.dm @@ -8,8 +8,8 @@ /datum/preference/choiced/moth_antennae/init_possible_values() var/list/values = list() - var/icon/moth_head = icon('icons/mob/species/moth/bodyparts.dmi', "moth_head") - moth_head.Blend(icon('icons/mob/species/human/human_face.dmi', "motheyes"), ICON_OVERLAY) + var/icon/moth_head = icon('icons/mob/human/species/moth/bodyparts.dmi', "moth_head") + moth_head.Blend(icon('icons/mob/human/human_face.dmi', "motheyes"), ICON_OVERLAY) for (var/antennae_name in GLOB.moth_antennae_list) var/datum/sprite_accessory/antennae = GLOB.moth_antennae_list[antennae_name] @@ -41,7 +41,7 @@ var/icon/moth_body = icon('icons/blanks/32x32.dmi', "nothing") - moth_body.Blend(icon('icons/mob/species/moth/moth_wings.dmi', "m_moth_wings_plain_BEHIND"), ICON_OVERLAY) + moth_body.Blend(icon('icons/mob/human/species/moth/moth_wings.dmi', "m_moth_wings_plain_BEHIND"), ICON_OVERLAY) var/list/body_parts = list( /obj/item/bodypart/head/moth, @@ -52,9 +52,9 @@ for (var/obj/item/bodypart/body_part in body_parts) var/gender = (initial(body_part.is_dimorphic)) ? "_m" : "" - moth_body.Blend(icon('icons/mob/species/moth/bodyparts.dmi', "moth_[body_part][gender]"), ICON_OVERLAY) + moth_body.Blend(icon('icons/mob/human/species/moth/bodyparts.dmi', "moth_[body_part][gender]"), ICON_OVERLAY) - moth_body.Blend(icon('icons/mob/species/human/human_face.dmi', "motheyes"), ICON_OVERLAY) + moth_body.Blend(icon('icons/mob/human/human_face.dmi', "motheyes"), ICON_OVERLAY) for (var/markings_name in GLOB.moth_markings_list) var/datum/sprite_accessory/markings = GLOB.moth_markings_list[markings_name] @@ -68,8 +68,8 @@ body_part_icon.Crop(1, 1, 32, 32) icon_with_markings.Blend(body_part_icon, ICON_OVERLAY) - icon_with_markings.Blend(icon('icons/mob/species/moth/moth_wings.dmi', "m_moth_wings_plain_FRONT"), ICON_OVERLAY) - icon_with_markings.Blend(icon('icons/mob/species/moth/moth_antennae.dmi', "m_moth_antennae_plain_FRONT"), ICON_OVERLAY) + icon_with_markings.Blend(icon('icons/mob/human/species/moth/moth_wings.dmi', "m_moth_wings_plain_FRONT"), ICON_OVERLAY) + icon_with_markings.Blend(icon('icons/mob/human/species/moth/moth_antennae.dmi', "m_moth_antennae_plain_FRONT"), ICON_OVERLAY) // Zoom in on the top of the head and the chest icon_with_markings.Scale(64, 64) diff --git a/code/modules/client/preferences/species_features/pod.dm b/code/modules/client/preferences/species_features/pod.dm index f2534ac7105..a3d65397c29 100644 --- a/code/modules/client/preferences/species_features/pod.dm +++ b/code/modules/client/preferences/species_features/pod.dm @@ -8,7 +8,7 @@ /datum/preference/choiced/pod_hair/init_possible_values() var/list/values = list() - var/icon/pod_head = icon('icons/mob/species/human/bodyparts_greyscale.dmi', "pod_head_m") + var/icon/pod_head = icon('icons/mob/human/bodyparts_greyscale.dmi', "pod_head_m") for (var/pod_name in GLOB.pod_hair_list) var/datum/sprite_accessory/pod_hair = GLOB.pod_hair_list[pod_name] diff --git a/code/modules/clothing/head/wig.dm b/code/modules/clothing/head/wig.dm index 486dde4a891..b692c1383c5 100644 --- a/code/modules/clothing/head/wig.dm +++ b/code/modules/clothing/head/wig.dm @@ -1,7 +1,7 @@ /obj/item/clothing/head/wig name = "wig" desc = "A bunch of hair without a head attached." - icon = 'icons/mob/species/human/human_face.dmi' // default icon for all hairs + icon = 'icons/mob/human/human_face.dmi' // default icon for all hairs worn_icon = 'icons/mob/clothing/head/costume.dmi' icon_state = "hair_vlong" inhand_icon_state = "pwig" diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.dm b/code/modules/food_and_drinks/restaurant/customers/_customer.dm index 460f0edaa90..6e1b39095e6 100644 --- a/code/modules/food_and_drinks/restaurant/customers/_customer.dm +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.dm @@ -314,7 +314,7 @@ var/datum/sprite_accessory/moth_wings/wings = get_wings(customer) - var/mutable_appearance/wings_behind = mutable_appearance(icon = 'icons/mob/species/moth/moth_wings.dmi', icon_state = "m_moth_wings_[wings.icon_state]_BEHIND") + var/mutable_appearance/wings_behind = mutable_appearance(icon = 'icons/mob/human/species/moth/moth_wings.dmi', icon_state = "m_moth_wings_[wings.icon_state]_BEHIND") wings_behind.appearance_flags = RESET_COLOR underlays += wings_behind @@ -325,7 +325,7 @@ var/datum/sprite_accessory/moth_wings/wings = get_wings(customer) - var/mutable_appearance/wings_front = mutable_appearance(icon = 'icons/mob/species/moth/moth_wings.dmi', icon_state = "m_moth_wings_[wings.icon_state]_FRONT") + var/mutable_appearance/wings_front = mutable_appearance(icon = 'icons/mob/human/species/moth/moth_wings.dmi', icon_state = "m_moth_wings_[wings.icon_state]_FRONT") wings_front.appearance_flags = RESET_COLOR overlays += wings_front diff --git a/code/modules/hallucination/body.dm b/code/modules/hallucination/body.dm index cec96f9f828..5167b63c5ee 100644 --- a/code/modules/hallucination/body.dm +++ b/code/modules/hallucination/body.dm @@ -58,7 +58,7 @@ /datum/hallucination/body/husk random_hallucination_weight = 8 - body_image_file = 'icons/mob/species/human/human.dmi' + body_image_file = 'icons/mob/human/human.dmi' body_image_state = "husk" /datum/hallucination/body/husk/sideways diff --git a/code/modules/hallucination/delusions.dm b/code/modules/hallucination/delusions.dm index 3a5e1798823..312972f5c9a 100644 --- a/code/modules/hallucination/delusions.dm +++ b/code/modules/hallucination/delusions.dm @@ -141,7 +141,7 @@ delusion_name = "???" /datum/hallucination/delusion/preset/monkey - delusion_icon_file = 'icons/mob/species/human/human.dmi' + delusion_icon_file = 'icons/mob/human/human.dmi' delusion_icon_state = "monkey" delusion_name = "monkey" @@ -160,12 +160,12 @@ delusion_name = "carp" /datum/hallucination/delusion/preset/skeleton - delusion_icon_file = 'icons/mob/species/human/human.dmi' + delusion_icon_file = 'icons/mob/human/human.dmi' delusion_icon_state = "skeleton" delusion_name = "skeleton" /datum/hallucination/delusion/preset/zombie - delusion_icon_file = 'icons/mob/species/human/human.dmi' + delusion_icon_file = 'icons/mob/human/human.dmi' delusion_icon_state = "zombie" delusion_name = "zombie" diff --git a/code/modules/hallucination/shock.dm b/code/modules/hallucination/shock.dm index 32fc17fce1d..99db2530d85 100644 --- a/code/modules/hallucination/shock.dm +++ b/code/modules/hallucination/shock.dm @@ -2,7 +2,7 @@ /datum/hallucination/shock random_hallucination_weight = 1 - var/electrocution_icon = 'icons/mob/species/human/human.dmi' + var/electrocution_icon = 'icons/mob/human/human.dmi' var/electrocution_icon_state = "electrocuted_base" var/image/shock_image var/image/electrocution_skeleton_anim diff --git a/code/modules/holodeck/mobs.dm b/code/modules/holodeck/mobs.dm index c683905e33e..7a7e7c22d9e 100644 --- a/code/modules/holodeck/mobs.dm +++ b/code/modules/holodeck/mobs.dm @@ -5,7 +5,7 @@ /mob/living/simple_animal/holodeck_monkey name = "monkey" desc = "A holographic creature fond of bananas." - icon = 'icons/mob/species/human/human.dmi' + icon = 'icons/mob/human/human.dmi' icon_state = "monkey" icon_living = "monkey" icon_dead = "monkey_dead" diff --git a/code/modules/mob/living/basic/space_fauna/ghost.dm b/code/modules/mob/living/basic/space_fauna/ghost.dm index 9a4f476f42b..058c2d2cd3f 100644 --- a/code/modules/mob/living/basic/space_fauna/ghost.dm +++ b/code/modules/mob/living/basic/space_fauna/ghost.dm @@ -72,14 +72,14 @@ if(!isnull(ghost_hairstyle) && ghost_hairstyle != "Bald") //Bald hairstyle and the Shaved facial hairstyle lack an associated sprite and will not properly generate hair, and just cause runtimes. var/datum/sprite_accessory/hair_style = GLOB.hairstyles_list[ghost_hairstyle] //We use the hairstyle name to get the sprite accessory, which we copy the icon_state from. - ghost_hair = mutable_appearance('icons/mob/species/human/human_face.dmi', "[hair_style.icon_state]", -HAIR_LAYER) + ghost_hair = mutable_appearance('icons/mob/human/human_face.dmi', "[hair_style.icon_state]", -HAIR_LAYER) ghost_hair.alpha = 200 ghost_hair.color = ghost_hair_color add_overlay(ghost_hair) if(!isnull(ghost_facial_hairstyle) && ghost_facial_hairstyle != "Shaved") var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hairstyles_list[ghost_facial_hairstyle] - ghost_facial_hair = mutable_appearance('icons/mob/species/human/human_face.dmi', "[facial_hair_style.icon_state]", -HAIR_LAYER) + ghost_facial_hair = mutable_appearance('icons/mob/human/human_face.dmi', "[facial_hair_style.icon_state]", -HAIR_LAYER) ghost_facial_hair.alpha = 200 ghost_facial_hair.color = ghost_facial_hair_color add_overlay(ghost_facial_hair) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 5989e88ef9a..97ae66c8ed5 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -41,7 +41,7 @@ /datum/emote/living/carbon/human/glasses/run_emote(mob/user, params, type_override, intentional) . = ..() - var/image/emote_animation = image('icons/mob/species/human/emote_visuals.dmi', user, "glasses") + var/image/emote_animation = image('icons/mob/human/emote_visuals.dmi', user, "glasses") flick_overlay_global(emote_animation, GLOB.clients, 1.6 SECONDS) /datum/emote/living/carbon/human/grumble diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 65e67d8ce74..88e5941b5e5 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -2,7 +2,7 @@ /mob/living/carbon/human name = "Unknown" real_name = "Unknown" - icon = 'icons/mob/species/human/human.dmi' + icon = 'icons/mob/human/human.dmi' icon_state = "human_basic" appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,FAN_HUD) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 1285c9886fc..2d3e487176b 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -372,7 +372,7 @@ . = ..() if(!ishuman(user)) return - var/image/emote_animation = image('icons/mob/species/human/emote_visuals.dmi', user, "sigh") + var/image/emote_animation = image('icons/mob/human/emote_visuals.dmi', user, "sigh") flick_overlay_global(emote_animation, GLOB.clients, 2.0 SECONDS) /datum/emote/living/sit diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index f23c2b71857..43d393cc849 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -383,7 +383,7 @@ duration = 300 /datum/status_effect/spookcookie/on_apply() - var/image/I = image(icon = 'icons/mob/species/human/human.dmi', icon_state = "skeleton", layer = ABOVE_MOB_LAYER, loc = owner) + var/image/I = image(icon = 'icons/mob/human/human.dmi', icon_state = "skeleton", layer = ABOVE_MOB_LAYER, loc = owner) I.override = 1 owner.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "spookyscary", I) return ..() diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index cb5ac1cbf9a..d267b9422df 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -4,16 +4,16 @@ force = 3 throwforce = 3 w_class = WEIGHT_CLASS_SMALL - icon = 'icons/mob/species/human/bodyparts.dmi' + icon = 'icons/mob/human/bodyparts.dmi' icon_state = "" //Leave this blank! Bodyparts are built using overlays /// The icon for Organic limbs using greyscale VAR_PROTECTED/icon_greyscale = DEFAULT_BODYPART_ICON_ORGANIC ///The icon for non-greyscale limbs - VAR_PROTECTED/icon_static = 'icons/mob/species/human/bodyparts.dmi' + VAR_PROTECTED/icon_static = 'icons/mob/human/bodyparts.dmi' ///The icon for husked limbs - VAR_PROTECTED/icon_husk = 'icons/mob/species/human/bodyparts.dmi' + VAR_PROTECTED/icon_husk = 'icons/mob/human/bodyparts.dmi' ///The icon for invisible limbs - VAR_PROTECTED/icon_invisible = 'icons/mob/species/human/bodyparts.dmi' + VAR_PROTECTED/icon_invisible = 'icons/mob/human/bodyparts.dmi' ///The type of husk for building an iconstate var/husk_type = "humanoid" layer = BELOW_MOB_LAYER //so it isn't hidden behind objects when on the floor diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 55c6e310f74..26423e16971 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -1,7 +1,7 @@ /obj/item/bodypart/head name = BODY_ZONE_HEAD desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb." - icon = 'icons/mob/species/human/bodyparts.dmi' + icon = 'icons/mob/human/bodyparts.dmi' icon_state = "default_human_head" max_damage = 200 body_zone = BODY_ZONE_HEAD @@ -206,8 +206,8 @@ if(dropped) // This is a bit of copy/paste code from eyes.dm:generate_body_overlay if(eyes?.eye_icon_state && (head_flags & HEAD_EYESPRITES)) - var/image/eye_left = image('icons/mob/species/human/human_face.dmi', "[eyes.eye_icon_state]_l", -BODY_LAYER, SOUTH) - var/image/eye_right = image('icons/mob/species/human/human_face.dmi', "[eyes.eye_icon_state]_r", -BODY_LAYER, SOUTH) + var/image/eye_left = image('icons/mob/human/human_face.dmi', "[eyes.eye_icon_state]_l", -BODY_LAYER, SOUTH) + var/image/eye_right = image('icons/mob/human/human_face.dmi', "[eyes.eye_icon_state]_r", -BODY_LAYER, SOUTH) if(head_flags & HEAD_EYECOLOR) if(eyes.eye_color_left) eye_left.color = eyes.eye_color_left @@ -226,7 +226,7 @@ . += eye_left . += eye_right else if(!eyes && (head_flags & HEAD_EYEHOLES)) - var/image/no_eyes = image('icons/mob/species/human/human_face.dmi', "eyes_missing", -BODY_LAYER, SOUTH) + var/image/no_eyes = image('icons/mob/human/human_face.dmi', "eyes_missing", -BODY_LAYER, SOUTH) worn_face_offset?.apply_offset(no_eyes) . += no_eyes @@ -244,9 +244,9 @@ return "The head of [real_name]" /obj/item/bodypart/head/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" icon_state = "default_monkey_head" limb_id = SPECIES_MONKEY @@ -257,8 +257,8 @@ head_flags = HEAD_LIPS|HEAD_DEBRAIN /obj/item/bodypart/head/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_head" limb_id = BODYPART_ID_ALIEN is_dimorphic = FALSE @@ -270,8 +270,8 @@ bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC /obj/item/bodypart/head/larva - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "larva_head" limb_id = BODYPART_ID_LARVA is_dimorphic = FALSE diff --git a/code/modules/surgery/bodyparts/head_hair_and_lips.dm b/code/modules/surgery/bodyparts/head_hair_and_lips.dm index a37bebce6ed..94a90155733 100644 --- a/code/modules/surgery/bodyparts/head_hair_and_lips.dm +++ b/code/modules/surgery/bodyparts/head_hair_and_lips.dm @@ -88,7 +88,7 @@ if(!facial_hair_hidden && lip_style && (head_flags & HEAD_LIPS)) //not a sprite accessory, don't ask //Overlay - var/image/lip_overlay = image('icons/mob/species/human/human_face.dmi', "lips_[lip_style]", -BODY_LAYER, image_dir) + var/image/lip_overlay = image('icons/mob/human/human_face.dmi', "lips_[lip_style]", -BODY_LAYER, image_dir) lip_overlay.color = lip_color //Emissive blocker if(blocks_emissive != EMISSIVE_BLOCK_NONE) @@ -162,16 +162,16 @@ /// Returns an appropriate debrained overlay /obj/item/bodypart/head/proc/get_debrain_overlay(can_rotate = TRUE) RETURN_TYPE(/image) - var/debrain_icon = 'icons/mob/species/human/human_face.dmi' + var/debrain_icon = 'icons/mob/human/human_face.dmi' var/debrain_icon_state = "debrained" if(bodytype & BODYTYPE_ALIEN) - debrain_icon = 'icons/mob/species/alien/bodyparts.dmi' + debrain_icon = 'icons/mob/human/species/alien/bodyparts.dmi' debrain_icon_state = "debrained_alien" else if(bodytype & BODYTYPE_LARVA_PLACEHOLDER) - debrain_icon = 'icons/mob/species/alien/bodyparts.dmi' + debrain_icon = 'icons/mob/human/species/alien/bodyparts.dmi' debrain_icon_state = "debrained_larva" else if(bodytype & BODYTYPE_GOLEM) - debrain_icon = 'icons/mob/species/golems.dmi' + debrain_icon = 'icons/mob/human/species/golems.dmi' debrain_icon_state = "debrained" var/image/debrain_overlay @@ -185,7 +185,7 @@ /// Returns an appropriate missing eyes overlay /obj/item/bodypart/head/proc/get_eyeless_overlay(can_rotate = TRUE) RETURN_TYPE(/image) - var/eyeless_icon = 'icons/mob/species/human/human_face.dmi' + var/eyeless_icon = 'icons/mob/human/human_face.dmi' var/eyeless_icon_state = "eyes_missing" var/image/eyeless_overlay diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 65b3a7062fb..fdfe8f22cb0 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -56,9 +56,9 @@ ..() /obj/item/bodypart/chest/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" top_offset = -5 icon_state = "default_monkey_chest" @@ -71,8 +71,8 @@ dmg_overlay_type = SPECIES_MONKEY /obj/item/bodypart/chest/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_chest" limb_id = BODYPART_ID_ALIEN bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC @@ -83,8 +83,8 @@ acceptable_bodytype = BODYTYPE_HUMANOID /obj/item/bodypart/chest/larva - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "larva_chest" limb_id = BODYPART_ID_LARVA is_dimorphic = FALSE @@ -194,9 +194,9 @@ /obj/item/bodypart/arm/left/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" icon_state = "default_monkey_l_arm" limb_id = SPECIES_MONKEY @@ -211,8 +211,8 @@ unarmed_stun_threshold = 3 /obj/item/bodypart/arm/left/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_l_arm" limb_id = BODYPART_ID_ALIEN bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC @@ -297,9 +297,9 @@ /obj/item/bodypart/arm/right/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" icon_state = "default_monkey_r_arm" limb_id = SPECIES_MONKEY @@ -314,8 +314,8 @@ unarmed_stun_threshold = 3 /obj/item/bodypart/arm/right/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_r_arm" limb_id = BODYPART_ID_ALIEN bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC @@ -412,9 +412,9 @@ owner.set_usable_legs(owner.usable_legs + 1) /obj/item/bodypart/leg/left/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" top_offset = -3 icon_state = "default_monkey_l_leg" @@ -429,8 +429,8 @@ unarmed_stun_threshold = 4 /obj/item/bodypart/leg/left/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_l_leg" limb_id = BODYPART_ID_ALIEN bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC @@ -506,9 +506,9 @@ owner.set_usable_legs(owner.usable_legs + 1) /obj/item/bodypart/leg/right/monkey - icon = 'icons/mob/species/monkey/bodyparts.dmi' - icon_static = 'icons/mob/species/monkey/bodyparts.dmi' - icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' + icon = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' + icon_husk = 'icons/mob/human/species/monkey/bodyparts.dmi' husk_type = "monkey" top_offset = -3 icon_state = "default_monkey_r_leg" @@ -523,8 +523,8 @@ unarmed_stun_threshold = 4 /obj/item/bodypart/leg/right/alien - icon = 'icons/mob/species/alien/bodyparts.dmi' - icon_static = 'icons/mob/species/alien/bodyparts.dmi' + icon = 'icons/mob/human/species/alien/bodyparts.dmi' + icon_static = 'icons/mob/human/species/alien/bodyparts.dmi' icon_state = "alien_r_leg" limb_id = BODYPART_ID_ALIEN bodytype = BODYTYPE_HUMANOID | BODYTYPE_ALIEN | BODYTYPE_ORGANIC diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm index ab11c69d66c..2215b388320 100644 --- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm @@ -1,5 +1,5 @@ /obj/item/bodypart/head/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL is_dimorphic = FALSE dmg_overlay_type = null @@ -17,7 +17,7 @@ species_color = eth_holder.current_color /obj/item/bodypart/chest/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL is_dimorphic = FALSE dmg_overlay_type = null @@ -31,7 +31,7 @@ species_color = eth_holder.current_color /obj/item/bodypart/arm/left/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN //burn bish @@ -48,7 +48,7 @@ species_color = eth_holder.current_color /obj/item/bodypart/arm/right/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN // bish buzz @@ -65,7 +65,7 @@ species_color = eth_holder.current_color /obj/item/bodypart/leg/left/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN // bish buzz @@ -81,7 +81,7 @@ species_color = eth_holder.current_color /obj/item/bodypart/leg/right/ethereal - icon_greyscale = 'icons/mob/species/ethereal/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/ethereal/bodyparts.dmi' limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN // bish buzz diff --git a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm index 15a6176891a..c5f7ff87346 100644 --- a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm @@ -1,16 +1,16 @@ /obj/item/bodypart/head/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD is_dimorphic = FALSE head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYECOLOR|HEAD_EYEHOLES|HEAD_DEBRAIN /obj/item/bodypart/chest/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD is_dimorphic = TRUE /obj/item/bodypart/arm/left/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD unarmed_attack_verb = "slash" unarmed_attack_effect = ATTACK_EFFECT_CLAW @@ -18,7 +18,7 @@ unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' /obj/item/bodypart/arm/right/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD unarmed_attack_verb = "slash" unarmed_attack_effect = ATTACK_EFFECT_CLAW @@ -32,15 +32,15 @@ bodypart_traits = list(TRAIT_CHUNKYFINGERS) /obj/item/bodypart/leg/left/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD /obj/item/bodypart/leg/right/lizard - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = SPECIES_LIZARD /obj/item/bodypart/leg/left/digitigrade - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = BODYPART_ID_DIGITIGRADE bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE @@ -66,7 +66,7 @@ limb_id = SPECIES_LIZARD /obj/item/bodypart/leg/right/digitigrade - icon_greyscale = 'icons/mob/species/lizard/bodyparts.dmi' + icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' limb_id = BODYPART_ID_DIGITIGRADE bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm index 6e33cc88b53..35ef9edb6ed 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -401,8 +401,8 @@ //GOLEM /obj/item/bodypart/head/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_head" biological_state = BIO_INORGANIC bodytype = BODYTYPE_GOLEM | BODYTYPE_ORGANIC @@ -438,8 +438,8 @@ return ..() /obj/item/bodypart/chest/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_chest" biological_state = BIO_INORGANIC acceptable_bodytype = BODYTYPE_GOLEM @@ -459,8 +459,8 @@ return ..() /obj/item/bodypart/arm/left/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_l_arm" biological_state = BIO_INORGANIC bodytype = BODYTYPE_GOLEM | BODYTYPE_ORGANIC @@ -493,8 +493,8 @@ old_owner.RemoveComponentSource(REF(src), /datum/component/shovel_hands) /obj/item/bodypart/arm/right/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_r_arm" biological_state = BIO_INORGANIC bodytype = BODYTYPE_GOLEM | BODYTYPE_ORGANIC @@ -527,8 +527,8 @@ old_owner.RemoveComponentSource(REF(src), /datum/component/shovel_hands) /obj/item/bodypart/leg/left/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_l_leg" biological_state = BIO_INORGANIC bodytype = BODYTYPE_GOLEM | BODYTYPE_ORGANIC @@ -540,8 +540,8 @@ unarmed_stun_threshold = 11 /obj/item/bodypart/leg/right/golem - icon = 'icons/mob/species/golems.dmi' - icon_static = 'icons/mob/species/golems.dmi' + icon = 'icons/mob/human/species/golems.dmi' + icon_static = 'icons/mob/human/species/golems.dmi' icon_state = "golem_r_leg" biological_state = BIO_INORGANIC bodytype = BODYTYPE_GOLEM | BODYTYPE_ORGANIC diff --git a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm index 232dd44d505..ed6c91ed0fc 100644 --- a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm @@ -1,24 +1,24 @@ /obj/item/bodypart/head/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_head" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH is_dimorphic = FALSE should_draw_greyscale = FALSE head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN //what the fuck, moths have lips? /obj/item/bodypart/chest/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_chest_m" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH is_dimorphic = TRUE should_draw_greyscale = FALSE /obj/item/bodypart/arm/left/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_l_arm" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH should_draw_greyscale = FALSE unarmed_attack_verb = "slash" @@ -27,9 +27,9 @@ unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' /obj/item/bodypart/arm/right/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_r_arm" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH should_draw_greyscale = FALSE unarmed_attack_verb = "slash" @@ -38,15 +38,15 @@ unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' /obj/item/bodypart/leg/left/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_l_leg" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH should_draw_greyscale = FALSE /obj/item/bodypart/leg/right/moth - icon = 'icons/mob/species/moth/bodyparts.dmi' + icon = 'icons/mob/human/species/moth/bodyparts.dmi' icon_state = "moth_r_leg" - icon_static = 'icons/mob/species/moth/bodyparts.dmi' + icon_static = 'icons/mob/human/species/moth/bodyparts.dmi' limb_id = SPECIES_MOTH should_draw_greyscale = FALSE diff --git a/code/modules/surgery/bodyparts/species_parts/plasmaman_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/plasmaman_bodyparts.dm index d9bbee1ea03..85eea7edba0 100644 --- a/code/modules/surgery/bodyparts/species_parts/plasmaman_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/plasmaman_bodyparts.dm @@ -1,7 +1,7 @@ /obj/item/bodypart/head/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_head" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN is_dimorphic = FALSE @@ -12,9 +12,9 @@ head_flags = HEAD_EYESPRITES /obj/item/bodypart/chest/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_chest" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN is_dimorphic = FALSE @@ -24,9 +24,9 @@ burn_modifier = 1.5 //Plasmemes are weak /obj/item/bodypart/arm/left/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_l_arm" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN should_draw_greyscale = FALSE @@ -35,9 +35,9 @@ burn_modifier = 1.5 //Plasmemes are weak /obj/item/bodypart/arm/right/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_r_arm" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN should_draw_greyscale = FALSE @@ -46,9 +46,9 @@ burn_modifier = 1.5 //Plasmemes are weak /obj/item/bodypart/leg/left/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_l_leg" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN should_draw_greyscale = FALSE @@ -57,9 +57,9 @@ burn_modifier = 1.5 //Plasmemes are weak /obj/item/bodypart/leg/right/plasmaman - icon = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon = 'icons/mob/human/species/plasmaman/bodyparts.dmi' icon_state = "plasmaman_r_leg" - icon_static = 'icons/mob/species/plasmaman/bodyparts.dmi' + icon_static = 'icons/mob/human/species/plasmaman/bodyparts.dmi' biological_state = BIO_BONE limb_id = SPECIES_PLASMAMAN should_draw_greyscale = FALSE diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm index 54972cce2ed..01171ac3f87 100644 --- a/code/modules/surgery/organs/internal/eyes/_eyes.dm +++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm @@ -123,8 +123,8 @@ if(isnull(eye_icon_state)) return list() - var/mutable_appearance/eye_left = mutable_appearance('icons/mob/species/human/human_face.dmi', "[eye_icon_state]_l", -BODY_LAYER) - var/mutable_appearance/eye_right = mutable_appearance('icons/mob/species/human/human_face.dmi', "[eye_icon_state]_r", -BODY_LAYER) + var/mutable_appearance/eye_left = mutable_appearance('icons/mob/human/human_face.dmi', "[eye_icon_state]_l", -BODY_LAYER) + var/mutable_appearance/eye_right = mutable_appearance('icons/mob/human/human_face.dmi', "[eye_icon_state]_r", -BODY_LAYER) var/obscured = parent.check_obscured_slots(TRUE) if(overlay_ignore_lighting && !(obscured & ITEM_SLOT_EYES)) @@ -657,12 +657,12 @@ switch(eye_color_mode) if(MATCH_LIGHT_COLOR) - eyes_overlay = emissive_appearance('icons/mob/species/human/human_face.dmi', "eyes_glow_gs", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) + eyes_overlay = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) eyes_overlay.color = current_color_string eye_owner.add_overlay(eyes_overlay) if(USE_CUSTOM_COLOR) - eyes_overlay_left = emissive_appearance('icons/mob/species/human/human_face.dmi', "eyes_glow_gs_left", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) - eyes_overlay_right = emissive_appearance('icons/mob/species/human/human_face.dmi', "eyes_glow_gs_right", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) + eyes_overlay_left = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs_left", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) + eyes_overlay_right = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs_right", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha) eyes_overlay_left.color = eye_color_left eyes_overlay_right.color = eye_color_right eye_owner.add_overlay(eyes_overlay_left) diff --git a/icons/mob/species/human/bodyparts.dmi b/icons/mob/human/bodyparts.dmi similarity index 100% rename from icons/mob/species/human/bodyparts.dmi rename to icons/mob/human/bodyparts.dmi diff --git a/icons/mob/species/human/bodyparts_greyscale.dmi b/icons/mob/human/bodyparts_greyscale.dmi similarity index 100% rename from icons/mob/species/human/bodyparts_greyscale.dmi rename to icons/mob/human/bodyparts_greyscale.dmi diff --git a/icons/mob/species/human/cat_features.dmi b/icons/mob/human/cat_features.dmi similarity index 100% rename from icons/mob/species/human/cat_features.dmi rename to icons/mob/human/cat_features.dmi diff --git a/icons/mob/species/human/emote_visuals.dmi b/icons/mob/human/emote_visuals.dmi similarity index 100% rename from icons/mob/species/human/emote_visuals.dmi rename to icons/mob/human/emote_visuals.dmi diff --git a/icons/mob/species/human/fox_features.dmi b/icons/mob/human/fox_features.dmi similarity index 100% rename from icons/mob/species/human/fox_features.dmi rename to icons/mob/human/fox_features.dmi diff --git a/icons/mob/human/human.dmi b/icons/mob/human/human.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7532655b5277d20381f4ff53565baa174e853b53 GIT binary patch literal 19246 zcmaI81z42d);2yvr*wCBN+~TN0t!+R5)uN^iZsm7NFyL1k`hXnlyrv(ib{7X4FZD< zGv6M6=e*~<|NnP=UYFP7GxNmWd#!!1`(A5}FZA!-CM9AdflMZ@5-i9zyR25KXNHa=#=8M+{V>RF3nw7>Rk#<|b8y>(9x>#6%# zZ|m#3@#@9)Jz&~yN>cRY>EAcVoXy4Nn;Q!}_dRgGth-3WO&$1zp3KzoA!|xz2^5u3 zz)@by-@C>4yBjr? z*BNi;+ptO=J1w%k{r+oa_QcNP`8n&IE8|cpi|Z$+i-A96%cp*Qn4SFc1xgD3$R@9y zL8PRl9*Z_WoSmGSqs-jNx&&AQwhN$tu0Bjz31x;NB~V8$)$N;EcaV4Q-ffyZ0Jr76 zTmLK*B0InyyL6q#PQ`8jZMi>jU=*uDdpHOQn)F5_m8o~Rp-M_h<}ySrM_6Hp-T2z1 z;&TY&Bvo#7T6UNjy)q;y<6P@8q;m!VUCw@7txnmQjv(*+?P7DfV%_TfGs0s%tFQVg zN#R9l8YC+o?OT%fRRcUz3b7`&VXJkvg8z*^e-1fGVWBR6gUpVlkC{XM zWDg{H|9MHEBn<++qoI;@Q5lx5k;FEb#=^qjL_ zsohWjw9XmXW4P*mQX1+4eRR!WaCx1{x=5mROnD*Y6swP8va7rTQaOiwjHH-JxrXMg zQzIzmob2+D!HcP9FcVQR;USZ;QgRmSb3XL;cZ>rUi1<0zmp+R%@6!q#qaYEjTCUb zb8td6(s-N4Jn;MYKGGX|CoAr_bQ{o195{392C6f5%ppt8Pd&XdT}`poZI1ZAU~Tv1 zt1}kNAve#T%MYXx-BXt>SIqbJ{CE|~guFxY&`jRQorFq(HQkO~thZ7i$pY#AU@eZd zH;tA(A&a!>@}PN4nI#`rOHHj;+6nq~V#1Tu91gb2!*E)5unnff9dL#o3-mRt<^8NN zB$8mcC>1J+fH+KCOJ^?@DFfcNoK2?qTVL1sw)%I)g2@kRJVQ_7e#yXY3R|{PciSBL z7_(4>cjwo9&@$^JPf;tQ#HZOHb3e&m@u3ngM!x?s*K8TKJYZh*)8JTw=R9g^Vj`0@ zlhRO}lr-Tdp@<42BV$#!7s2I%YHXd&ivw8^mI zfOX%IwRh@Lf`mO(nb=RSguDO#-`ghUD=dl$q@|^UXTq$rpsz2ClQ@VGowie^7#3En;ZZSJwPTDhqR@UE#N0_q@%nuYC0iKL ze@>HYua{rDMI7Nuq07_7xUbeoP(r!k$^^_dxs!l>&MgmIiaVnDUTJcOc zizEr$93lk!2i+*N@QkNayl-n-n2E<8nYM&V@n_vqpUjp*eoYW3uG6nNG>qpPJI&x# zmukP$E4DyT&rZBSq}=cK^&#wrVu1i8N05N$I{97A3~1*!74OD@N7Q|J9WPf-Gbm$t z-;TnqpRnJwSQ95&)e|6onnSz#m|Nw2owW%zg~%8x;AvRo$VtVgu*J>cvypXp1JcZj2F6i>E(y!+rTwTe`wz`cH|=FM7i9~ z7JaTtCX(ld`5Bro87vxKF;5pTIqcJoCk2`&*Xwj7 z?Av_>rwIk;NX;F0p)+@Shv9R`nV!8L7cIe83!CG#`#*iq*J;_C>dDo(Dx>Rj zb?OU+k2Qv|9O1B%-g^R3+^Bf4K8NGp(*pf9CmoG9IZG_i?ByaZtv(gBNNo+LpI?g! z@WQQ4zEeohlL%VIrB$&AshU{)@ZK{OL8Qk{Okar^{P%a=cPxIypGWDXANU3mwlcZg zFS&dPlYjFEr3Z62n_Bv^cnGG-$eABL0S;CF8s3l`p1r1_VQLZvNMd3b60d{!o{Wnm zzOi2}*fNON@A+tyu*nkea7r0I;!(n(;Y|C4kPG?G zsXdPpZ^#^{RAtyiorZWi#HE>RhBH$eF8!wa6+~J}O8uqCO#>GEr*gFFED$du7MJpNZ5oXDePb2ee6`ZR&r8o-d^%z4eZrPVI zE@qUmCkUyhGRA!VAr~KpnCu~`?o3mWVz9(R8eo5!VT`^{4tt&b7iUT!-gwAHtS?z6 zy^gN`10Wp6XF|jD5wXcEZ!?@@W|AYHfvMJ6-x**xiZF2Ke0k_7e9IYk=*3`x;qj`? z?H~e9jsJa;h{!}-rz{Ytzg`ygapD~IxHmoLex@~d|T!(e&%4oIIvaP{+v9jv zW^2zdsDk-0&j8M!zspTf*(#Tgu%~-lMp9>}GIOsoBXz3CuX?=sypATq#PW@HP+i=8 zW4sxGeAm(+qr)x+ZBvlH5R}!y>!xG!Z|LB3AIvmRjoQ9RL6LH5bC1OQ6#*a$L7P7D z0yOq9RsW#Re_+MvV-cVlj-&MRttj`CkCq8}B6gXg=NMRNx?Bk3`p)E88U3A{jI_G zla-zN-(P)?m8B>7WAt2|1TS2BinG{dP&@hiD``u46XK9!PAMPs*85*E^dxxcRT|n; ziRu4?Lkw~H1A)DzBj+D$X&<$UT{QLn^dY>}XqohLXz%PaqyNCk!w>8fQi=&xC(Mrd z7i+R-#+K}5cA~5m4vamjhc_|t2mlq~`xMFc7fj|i$#AeFAVZ_0YC1Y`w|Qj8$spY} z6Evu{Hih{3c-xmgBtjiaXTnc@q`Zf7!}{b2mE00$Db=ECYLo_N!=a2vgkO z`5Dpa*)B=pnGNfWBCTx?41rMC)rhFPHy14<4;5Z+((Nv%4e!s2Ar5+J%sHon}wZ>k3qgkX`ayIQF|qK*P=# zs5TdxYRM@5O%+3FY>c;eeyYpOlUa8^{C(=(^FTZ!__BOm7H!y11_@6QU&CEp9KRw{ z*mfehg{yT&J+z;zMu|vmv@@2#b#Zb+@ROo%OI}Q>p3xiRbP_Qu27IgEdtr?Y;l!Tu zvQU-a#6EhZFqeyvPGnUSd`|T3>(|wp*1ZSdoqaakBdnLPv)=mySlp6uoXeB zWj}N{Ong86g^RQEk^0;F$>a}=-J%~+gW1sKUHd%~qCDvAcb%H33vOX35qp%`a)C(F zs-fbyHmbi=E!PjM)!VjA#D4J@7Gl5{5u^Vb& z=n(ecH+-8ag5&PEGS8^?`>`(xJy};&?-hM~M9RT+Q~gX^_Lln5h&aeN+qLsvaUwos z+OQtRobAWad9{PUwuhGwZql+_7}gl&M(;uzvh8Z>siNauGjlwGvO#o6+CjKd}yelQa+SUL%xJ;MTnorkgxs*Vg?j-am;L-%|5( z#=TWAx&7-29;BhM1FpX<6{{n(d~%UVFtMY4l6sVP<3x~&n4Auq0jU7i>o^#1WYh)P zhrR60Vx@#IT;JH33DFZ#F~o5{h`(W|ibt1p(pPH6!?V;?W^4h4Y;1h^gpCEs8;=Id z&r8jDaa&VUoSx9`t})k|u)qZ#>*d*`uu!At%B=#V!tC66k2ukn@89E3zbmVDjAI^A z8+5^yc+mhUh8$c?)BJ~jqH|JL@_xoF?k1*ZOmR}*OjucYL_$XPwz&bTy&ZNd@X`vn zUtxK9mcL4GZ!bLqgDO}IFq+h}TZOV8?Tn4*vNEnKD8vWlrF7k~8$M^K5ETMXDJ$DE zXv^OiWqTx1-K|Bxw-@NO`KcTjm!Xrz2|5CyHvOy)v3Ff?>L)9Wg+Xv6)fEoFZGA#Kb?sZQ!jlKSdJd~Y;a;PLS>nEKncwpW$CKf$&Evy-4F z|bD zQix4>E{|C$aG*%gg!Wyxztl;E)L~18p0J*t{w{RyRx@Pye+V{@-9Z3|iA|$4_8GQA0UkmmnmvA3r%PSpL^F(U zz?57o=3Z!Vhb0=`hQM(ho;`a;L4ac$bwB3ptUWQ|<<`NkCy$ZdZ?MLwea$~S5qkRU z85Dlx`&?S@^-}!B$rd)m>Y{g?{MxzRAspCxHusFM8aI`+DSq@GW6;fGz|nu5ynQZ1 zC)xmo1O%cZt~**qj&Iq~tQ1T*zX5&-S?-CHX%xLp4YStcTZ3IJ>zQr72L?~k!U2X- zb$KTG&`Hf&uT(tbI^u&KfIN(c`n*9s#_w_Iw(qS(M9rD;H(k_6T5McwT$1qeuJ1vP z1U_e7ujWN^d%wBaqpqV)@~*lxRYa-CPDO!qX=*YnIjXdlCc`8jz>_v_d{@$z(T=;q z*x`f zRT1zmCs8z9jn!3VAvA#4aPK0qH2xYy2RW+TOT2yqOM;+1x*fiB& z9*44Ze#U|IV|k6+_plbT=yXE+G+Q~q4T|aia)ai-AI0oXB(EINRXHYI2HaGAfAR9A z2RrpmQh*%S+7WhV%$Q+JB+G^TS=c!(tS+SjJHcyzJ`eL+Ip6(pQ{aNgW4de+Yc9%Y zGPW}X6k@FwI2l!mRq9bggi&vK1@`DGiR6rx&9n*9kf!pZ1=jFK)Tn>myabtw-ej(uS)mG^-vr^FXbxFxE@U*N$;8}@rHqRMDC_UdYw7)=e z$zC`L$^>t1nF7Z#H#b)(H*xDPIY2%nJow-;1%W6dzl10tme0R{xZ{7=eXtg-JX;-+ zmzdLaaSAqNL^}sfJRp-XabqS|2`q?{2>H?-DJTttPT=dTQt|I45d z1~Hz^d3OV=EI+;?kJ!lLOU(;7(C57;qnzX0o zq}dD2(ht9NHE2gojh*l9@r1qO#_ZvtxQ@ngyPq*!R4Eu@#MB){%4FNp(&DI%m zP8x#=(#Afd6-qEv&*?~2=Nytr#x-Vd;RL%`8ZYI{!vY>N|AuH+?z#F4g74qHaq}xf zc-4VFzY4)d7;%YV!CzmsIG@O(7$+{ur(aKff}Q>{2Ejhr5`Si@>(|Nc%c62|m8J`q zCr@kxQG+mt1$vNXZn&CDgaR;F9+S0dQV?b0RszWLpxVj-4fhLk?K%>YXe( zgjK0pS+QQ`l%*QOt8NflTUq74G;RhtvEAPPAJ@~~?@T|U=q$VRaB%VHIBKP2qIN?! z+Nl6O)r=0sr#dUf+ikLaBOIi}#+jnkqes*4*H(~1r!r{teRaaX@1_T2Dvm(nQvWvr zyt73I7N^t(SUuOce85fu5Tl{dxoZ1AM~Jng`WuaA5v(xeQKqX{%o0=VZFl!7$`IBs zPEwDU%bJr|6@P)W=8LS-N8oi2e}`b)dcI@tGJOHYz7ItM)H~{B+hZGz7}?qaLDlTe z&_5JVpAf8_Z(39}xY@EjfTm#LXGF`vpI>=e7DC2G9x z2$p+JA}v=e4kk`HaJ-RJQ>)LcMXSsKcrga{C|y4vSijKUZaBUa8$r1dCxbw2@$_)6 z^A(_5OO6B{-}*`yhkFk%f(Vy7ej7#+WGafCG%3M!8wvc|7jceSeD)aEwy;+vA0@VD zU1%)9jun0wN%w4>6o7yY;(4Py|K43IFxkBELG`YE+U~656DI7hrtl-HFNGKWe(hH4 zmn4leQf><*eZIQJ&(RvQoo>*=W7r?sk#hzNk7aYB53(K?gg?wsCrwTI1~1^OYZ7;bUdQC*E91nd{w84CjV{U2#o01jyL z0hEDIwrde1+6Gk0fwlAboohLN0F8j}aVeJMGf%?}VNqy7B+GOye} zL$W^hy>}wfP!OD4LB0}JD2?ZVe#u^tn8iunhXGoSVL-q^F{19lgX<^oZB+EFQeZ!M zXEE-8dU+G$4>|rf0Jj}FXCQnd^$KvtDhmS7!1%O#M%CQ$vH_C%Q~oJoALn(w{(BZeP)fK8(SzR=?`l z^E$xfvcy?|Bvi9X-u_7-R^!gGfTeC##77)L%-o6wt7_V~`v@$AF!|j@0&6OM+wwPH zKuXr$XdqJ3GN$TI#V{9v*pA2b$Oj$jB~L*}nFSWIJCfK9%s?2gWCWYi4GpAu5xlZe zjGO$W3qKJMFUxWF-v4HomG$lUMnbQLo9)tX-=*-~Py)@%D%)gzUnC@m=^L=YH-$3~ zxj!SY!GYGCcMnhaWq#~oRt+5N&y|_?=>ifExuZ-wKC6JfVMr|41DFF?-*^7IOTu|# zlso0HFie=62Lq(VHZ*?0K8tcA)CUT$;=^eqArbwx^ZKqdVYT(CWz!dAO67tY^UF{e}EmqC^;03cHdO zkMD`N>;zPvGlk&hJr*d0Hm&$luQq0wkq6iRMP8y|e%9(eK!NTyqp3?NM2Nn@{s3(k z|3Pg-F&~W5pd=WF;mkt^4m=XGppUEp(*?^9$jg~*NQuG1Y{bb;&G7Y2^0?4#}%9kKmY;GjSB%9WZ=g}%<2IU z??^E=q`;^G2z%_5FY?=i#pc*{z@4K5M}=M0!Hn?{Su3fQBX44dYhV^w>NptT|K`cU z*u7W2H#AH%3~jPP@L$3vE?!Z0`L)?g=AYLDuo1_A`gQ;Yxt>o^~E6B!Y(US>5J=E$;!Q&Gf3XtGtrR4aNGv08h>cp;uONcp79IhHE zKIcSvkDmv$H(J}#H7Js}LG4(pKfNw`^@^4(hw8-yU>_J8mPBz%NZI?ro8MtbI>-)W zvfrPWJg^?d;bTnbv2I>ev(>21BT;_Ajy2Y4f) z6@j>WTwCx6oaEB?8`bNuV5A27(=VglW19V?3#kqfergomdI#ykPvT!= zW0af@^l!(=U)zi0+nyM1|9q|*V`Nw3hVL%wVf$z>tli9CGIDU!OJ8mk5fKqq&hc{w zjB>Q9esD*l=6j)fSXrg>Lf=Yn^vqKnl=(Z?J1)=jj2B?N{Cx#r(6oV z?Uw?U5S!Jj2mN~U?xLDBgoAU(khK{yV+Y6=C+}Nr;T=~3?1EtSbSGQmdZrr+l9D|? zh+A@q9uS@c2pgX(f0vlaWnXw!eyP_v&K*;OzT>Zg*%x5?Gg9!*pM6`W0e~@3{UB+< zH8$iZ$Fgk7f6BOh8UUz|AJC~(`)DB;g5lq*1vW^I=PrOEdd-64OAq?UnKTcv>JedKw`ZL~6Mk zxl2q5#CrpTOr?iYp?s}S8K;3%G^fKcH&P_6Cg}wPtt|huP7^9zi>&;&d#2wRG~#3XDrn(y_dq89#6dgvv;Q&9mT@L zNI8g}vsUg7xKE`F>wIq?{@QDJkt=>*xw2VQw6ZIbI4QAm`jxiGJc>oS7}T&Q$U_CF zfW(`~4Ea}4j9E;5Jx;_}9aWzNYShhR)e`j_BPdW<`YSckum=RwT4Eh$K+gp|Nx(=4 zEz5Hk5|gc^D=YUzS`Jbga%UK*$Z*P*a$W``4jN(lLb#Q_CFq^fSA14RU8a1o5r3zl zr6#C8msd%zFHZlP+<*L|BgM7zw_6MK0ER*CMQiTWRBT?fUYuc2Gs!+k-zvV9 zaCVA`Ai>b_TGC}Az}U;<*)lq*6=xWUjgcz0T)e*qe9_osUyX*iMu{0tIy}J%@2-wJ zYid-KFos!6ax5n`W z$y9>9FAP3K)K*yRu^Fcme#^X(?2LBCjY&&dYy*$RjN-$GjkhZEq%N)%kK>NF z{RZKHbp5LP@Yt8lIIGR?Rn?Sg`AIUk2Z@iO~Sz|Lw=C zBt}h+CoU4&%-*OYCQ3@3Oq_N9FPTolQjG;1PGVYW1om?oOka9wRY&Pb_wc2s8JB8)E({m{|!Mh^wtsChsto^_;_b_YI;;^{| z8YNJGc<~?=WXFO-caPz4gm--BHBdKZpF|m!th@z@*|f*?PY)`8tU$cz;=g%G3V1bL zjO82Wr-k5jZ4Pql7T)lmIMo`^Va>YN?}8b;&ZXO(9aksT>1k6%?M_1tIavIV#$Ni} zoxts@smil@0);Vo7vQV{1ez{(_IuyQs)Io`*X+zZ~YYG1uXFq-5JH8 zOda70R2p`n?2g>?2$oXlkuo7mX=06PTnzLG*Tb8Ho{sSuqZ0GJqqKo!Kb(!Mr3gMx zPtq>i(v7^~;uI4FmQw&U14KnHrae(~Qdxg_-y{ZaMeN~0LHF0499yTM!wHS$rP0_t z7-PWxct3xd$Yb06UZ9^lV`?J$?>w5W5}fHH`7h1WS}a#QmES2w z5jBsE$C3MUgs0RP^kT|nlzBmU1z=+{0374WXuoWqXC7&klJ(s%)#!2PaSLI^*wMYu z283?Kjjx`#oO|PE#HqNij70jLWm~J+@v1dk{q)esROgoY@$9RRR!y_jQh4jUu-4jl z5f)pO63+m-G~oa3Q;?)(@A#5_V|zsT)pznyw-C~VEE2P`j1)*QC!GX=Jo2BQ!hp6?NuqwB)PpK#G z4?%pK(E!Ng?piiz^Bkqp<`_#v!MP@eKY?45SEdd}OtIdKNX?ch2-@N9OEtdGQ{51!~*3<`L!P<;5pdVEmclQODoJC}N++$6ZS(uo=Ae zv#sswv@MVpcuc^eV)-YO{dDIZJ$dJ{$Li6;j~-hDL0qE027LZ6@yUZVReM6J2s~qX zT4DpqjkB<@Fd~3G&&utsot5i3Ay|c@uqMX?8k5S(<35xgnh3zptvwwK;5KAL;=%RY2c2knG032`={= zH=-RvL2AYW?U!#t_-mDcnwkTfCO%04V!W!R;LU}Ba!`!z2x~!j=j+`>mtqGW(tL`1 zL|s?uXv1$_bW06v+A@Ne$+kU{M4ySEt|6xtF{sf4{-Wdtc#)Bj3nZJhCeB+A|H zfh|9;@U?T?Um;>B*>nL_b4u28rCS6zKXkUv=&H`8WRu39kBxqH2(uNo58}QRgw!aZ z$h;sdL->>I&f-JmTcYP)*gITblOdtBQ-^DKQjkK}S(j#%?jVe(Dt zDjQPoHQUHM11H!>h!Ad&B&$&C6g+y%q-udpajzk=sHHpY&)w*)+`xOW9Ia#HN#WyI zRf^tP7u3l(?;(;lthHbOXOZlb^uqc9q`>Oo!n<`Vo_}3HwHvclKg) zjs17f7fg^%YPfxKkF=zW5o80Ca@a;&zoYIm*vaXeF^o!e{Q9ECBnpmab#Yjtl={#p97^=lbF~DcJJn96?2`2*%{v?YLbXtfUW&Tr-Y4{bALnv z^r!#tn_u$xqC=0`XQ2Fhx>^sBi@O*aAo<6D?OjEDx}EK>DWc!LDV%-PABQ8XBk7Y7 zhjCDRpS_nFvQX}uD)Vcpg!NY`V_&v98XJSsTvK4V{FkX9Qsc(R`axW=6|A7n^-5vF zc10%CnE2lyaxED9ovXH9E?v$RhGQtpq&)OUPpgTitCX%Cx%FuGK$653>?ptemMzIu zd`eOyJOo7HZa45o{g*Gws;UNn(@)=c@Zfh7g!_p4T?gUX`Pun!^>%xLaA2DZ$ zq|B-;G0C{z0Kc6eLD$o6wuIaL=FH}J_f1S*EmMq`;yXCN+Q#|=54i(W;BuFSkI>HN zQGEKI&&4Ses{Fd1 zs!_N63ry(Hce25CJXeu*W|FepYv`=i53KW)C0=Lx)sYt+k@^X1vKHng48e9Mmgm6T zp8lvjOUiX3-TXe(rV%0%sLbbzqlC#pXu_?Oi-b@=RTXJAMPL>Wwe${ zQemsuKslT6t(l0sz7zCM2-YfRo#lNs9qJ-|E6&lYZeP@jWCq=90sOR_I@Fjq7|0tf zVwV9{oKAzpTNM>($!^1^zILud8fJm}JQX*>q2j*8NhzgbmWw?GHVQsX1-G|jOvhWH zWs*X;12Ac7dAin4m|k@DMAs1p0zV|#5r&DvP0}0Z&aBPuAM!MoofpjjhttN>!VroF z{eKBX)(W6YyB>9*@J>%g-bo9XA<5h1tGiOI;<>9EwZL=_TLM>40P0HAxICDRPiNs? z^Y|E8NPj=p{Oqf42YtHogPBtsl|njARcEvQnugC&yVbR|0cjzniR8%Ifq`H5%`>=S ztxK*-6aEsBcs|L}6%dtw6q%RMAFgp^kSAMEYaiTo=ZAf+)333+eGA@FRz}1p>(*1K z5qCJ{5?AZ=h4amP1EI08F=QaTsIaX5ro9r(S$z=bB2Z?{7q`-dZh8Dne`paZMreiu`v|{;p)wC*x`4M3PF9SBo(W)N?^$lUHLgyo&~)|N_y8X zK^RpkJ9x2V(ayL5u`+KrmxD>_H||B!S=kI4ovIZ&voD0xS@}W1=F@tw#&!7ILL6|znvcl z9&&1}a7M1O##xchY;b3DE!_qKe=Gn6c*NppG zLoq5%R%VMh`ZE1Dr0!OCBFl6~u>3Fio4oXIi5eOkZ7h7Z9cN5+@jE~$n+E+dCaa+@#)9>GgiM&#Av1_;2xZC-=ELr;v8B zY3lG_WI??2(;r6DaZ}QAp4mY;r8%A%LQ1iLy#5ro5B8!^c6bR>oObi`#j?_e5tjjh zA`j#~O0%YK(7hkXKSnNK<^dWUhUks5^4wT6vxj~N92uz&VD*Xh%isrJ43;%+W;rik z9v21X3WuE^kG7(%To-9*sC&GlokT}j6&pDL+kt4SXGTU6FesfOZCPM@P z4xmP5i7{p4Ne4KYznIS7m*&2lrI0Xwpl&YlcP5-tH7;~>R3f1BbuP;Xz&BMZ=g2L= zwWgb*e@+A@QP-bnk9&mc>ePplU&@QjR8>~e7jHq5-HRGl>wr2;cM)f_t`*40h&_q1 z{!R&R($ALj-!uEfNn|*oRPv z1oC&kLwCvG`tm?_CZ1uM@F&QjED=Bc>(>B#?JI5tAE_mbAaAu+eNCKbQB@~I8veQ2LL6fCc#q-vLTAW z&wb|rca8XyH27&=@VsORkVDry9%6}0*cC8*g#LXYf}U3*7Ph_}XeD#YRm|7B^6l*i zYX~h?Gg%jmpII$9ICyvU7eU$Ck_s!l8r$zaM<==-*0*nJ_F|^#^Wd1!)Zx+3YsH+) zU=+0ok8odGCJD)}4iVJiegjd`FEHD;y?4P0;!DD#p6 zJ_RICbwL_KcXvAxLf*_P;KOhyt}U;+(WS>=a>rmzWuksaK$~@BB%+@}T+WwllE9_i zM}ez$sV~rPcXR0>!iO}=xqOK>XO$;j<5ah6x*jAS`qCh|Lu9KT8V=|!_it^cyEOZ6 zFz)-W62$H|Zd1I$1GSO=MZH}Fr8a|CKy_DlI%8IWcZOaSX~70TO---;2!t2vZ7{-V zv>;0}UoAp*zi$`KC|AU2x!6QAiFl^hL+fo591+P-8w1m3*&(we0P0y6JT?B8@rS zT5`=`jb6F%f49mf+*XeBVEml(7==$COCp}MjXa{AreNy|g`{-pQx#%JXfJ<6wT&pq zmDOMRG#>p=CEHb=oG~tz{dadbz9LxC2KU@>v4O-3u}iPRWmO(opaZ2 zF7Xyc1Pvr22*L0LsFuxW&I3Mo&Rm0-Hn=iCmXXon)cb z2SVDK{JfB44$nM?n~S)KA6Q$neYAgQ3-v^mR!B^=GD)HUTsdkUT>knRvF2O3#IC@T zD}3rUuxqikmYAOY)!^7LMjqGlcQ-unDmI_N-C389zwtBr1dP=~>dz z6fv4_*9x(_mIBI+lq5ss$px?!l#AOcyU=%E5iA^!H}P$VwN_*4xMvCZvXFl$%pcnx z3#=~>^Y=KzME4L^&X#+$G#mu^R9(Y?1J}&$3&hWSC1WC-d$>KX{yYc1hz;ARWH`cx zjBFCDZ5{Q~S+j@vZ6@_?u5aE@IVXM7hL5o5UW#}Ivgys#bnUgzu89!cq2plBU1>p> zIF4*R3@WGEN@~(tK_k5J`3!`TmUp=%<@qT5>Y{g7BTX*9HYeB?w{f1web$20@ zI8o<#h&8noC`Wl}B_f&=n=q*|@x^KrR)3D)8|B5Y><3k$bdgG`NgvOU1HpGq*pup}KxWM(&Ts{?zeY=`wi5 zk_Ul2$g2_lhGnhVQ>c0$88N!`dF9u|Vub4(r;zJP=u1ArTZ4Iltq3E@X-f9jzb4jP zkKvG-_XYf{Abg8ldUUPTCc5Z}V`-RvMB`zB@zB6^x*{a}6j)tnVA!B8$6r0Qqw!sy zDk*QCnJz+SfTtj6CMwQx+%~ite)U$8;LnylOS~nDDg1%yj~6&miNl++y+I;xx>9PZ zKz_5>=Up4V5zsA+?K2`GRFv&AEagBcNe8N|cy^|-BPz`5#hH$#H7zYIplh~`m#_)bhlXyyglOrXS#|kfC1DBmq~}A8Me-91I4Ey}P7r!c4)Bjdm$2=BYb?4R(4UK; z6TFnxK}WcY_@<9v(B-FQZ`n+&uOucW0*Q0bhbt(ir|7q+u`gJ3Z+;<;R3Qr!(d zm@Bf*^XUn5pRL5^)hB#$k41%`tE=;3FD$C|8W2g!2HLv)Pc{i@EJH@R1L>qh3gKdG zbOl?a8hBlLS?b5BAlXbioae3^bR=L&{1NwkVyTc3j`og+(=V=Pf|>`xn51s??U&!_ zb8#(OASZ=oJQ%CeikL?b=WW@2DbzR`G}bZAN31Iz#iu3D7VR@NUVI70u9PhAZGj)m zUdc|>+YzEVYX?tRSPZ7Z#$HPk6A$>&iJ0S{9h7Mya$=!zB?|BlkIag^mDtcN=bjMZ^(Ewm^>hBJuR!?Mu9TV+2jTWyOeVZ{?QNPq+JA-atB4I$^ts`7 zQ68$oP75gPdMG4WX-^y13g=FcdWP+xW}8hnmhj9elolItlE~9lMdr0}sdIQ(MRqhb z2hS#cb3Ig&(c% z@D?s*CGbO-8EHfI>jn2uBZL!SL9OA&k=aZUk$_ZO2i!&g3Gj#a){(#uNuP&!oizKc zFdCsg>1T71Yft?CCGhk%RoKb7jtU}Ukkj^$?Co**WXD5q^aT;BEXi(ZdEi4KKz7~p zn{T%xZ1ok+@_a~pjahDaIQVE2QFt5DBDQE`fFu8i=EJ-P-6at+>*e)ay_w*?MRJ-Y#h{696X2M6LevFizVH#9BRr>cWrJP|Kx^b%{6F_q z#k}nD#VTqQGrv^ZlXUVWU|^xhn3t5*+;M-rbdwFRySy&FLAc-Bpczj4=b!IsI2lA< zH%d1Dr%*x)T8E`@-mj`)Y9;^DvWr#-@+FE>vE#9W0LLae>L*)Q8@RvpDXrAGUXfnn+7u}OdXw)=(N*|f98S8q&g zTs}4}6rw_nqfsxuU3FLGvMr(A>LRQEs^3gekaYGAB)HCa6Yp=O=wH7;8V`k>6L&(UZ1yC8?P{59z3^focgw8w+^HHqvD`@!*Pmh2AZO z*CK-TwJ*QP{aUh9X#P=)$Sz{P^lW8#WW>~Qi?;1-hL;EV_}#K>QfMb04Nba)F{jFw zw*K=g=@K^AL3r$b2h+KNmwgYf^SzI&b5IYz+*le2M6aJnN~sC=G!(I9d}yJHtE`Mi z$<}(!9o}qg2}}5iZ-Mn&W6RnOkV<%N#xJVG+ly%S4zKL85N?mo1k@ zjpd3x@x%!WOD>;~klo_Y+_a<;c2`HR$6D9i@fvwwrvt9|r^@gXO?WU7;zA;`I`pY$ z;oDz-Ty&ME6QPz0fwaCA6}s;rB|p+6118KLEzSLAJ2&MxYbSLzOF@`QBV1IFWjHmq zpC$`kmIp3ebjiSNV`a@#Cj%a^bbazcv9VW#$4ZTvJ*?ikXViUeA=mlH(ifw%MippD z6LeSnI94~FZF$-q648Qc-P9k_W;=)C25lR5_j#~jO?#fU4CGP4M{B20f6iqYK=ug) z{VE4k^q=p8UwtS3fG#{o3j)ra;u&9N>(!<)9Kc>r0D4}KGvau%7vsCJaSNf#2nm+( z*8w$qP>~h~_fNt~5rFm8UX^L|AQNrPLbsVl*{9y>>(XrozXhc>LuT*>s#CZ5X=&N7EuUr0qGQ-UXTt zBkq)x7N8x>*fG9$vRz@x_REF~Te-SYQXV*d8*h^ir*nL@iDM|yLTtei%E~@l5uGOj z0a^K8u4d3Kje}^A1sk;eOcINCaFG*OCwYc`6->7jNbJ|K=AUHdcM$<;uPU@<%RQLp z_JA`cf*g-J%M1{X$)0bdcm7WR`~w607TgS}J^*ZabOp8m_}=e-AN%)LKAP~HXPgugu;9|Imb_hjs~WzS2Ag*#tsrj`mkAjXrHXCj1BwZAHtSr zp24ke#f`r{5dZK|fYQ+*(!h!z0ESzh!MYX6`7=2;JJ0)M>>Hjx|6AXB2LH2T{B<(1 zd`E}pe|B_ucy78DpIF4CGCeOkp6c41;ih6dQi%`XZo#fbYSye|e=rXO<1YE~9pi4fN)UhG`S`yRZ^w;q-3lQ1zH)D; z=1(>j;%t0$g;H+flO#O_#G$sVf^Ao@LBpi`C+ruqg~>8Yif&ZrO|ncU|4NUOiio)n4SzI|^q z@geWWj;Esq$X!fYfQBLiSl}y=EPHjhPF*F`I8tq;IrU192y!L(;NRkE!1fE@D=?}00000NkvXX Hu0mjfE|H=B literal 0 HcmV?d00001 diff --git a/icons/mob/species/human/human_face.dmi b/icons/mob/human/human_face.dmi similarity index 100% rename from icons/mob/species/human/human_face.dmi rename to icons/mob/human/human_face.dmi diff --git a/icons/mob/species/human/mannequin.dmi b/icons/mob/human/mannequin.dmi similarity index 100% rename from icons/mob/species/human/mannequin.dmi rename to icons/mob/human/mannequin.dmi diff --git a/icons/mob/species/alien/bodyparts.dmi b/icons/mob/human/species/alien/bodyparts.dmi similarity index 100% rename from icons/mob/species/alien/bodyparts.dmi rename to icons/mob/human/species/alien/bodyparts.dmi diff --git a/icons/mob/species/ethereal/bodyparts.dmi b/icons/mob/human/species/ethereal/bodyparts.dmi similarity index 100% rename from icons/mob/species/ethereal/bodyparts.dmi rename to icons/mob/human/species/ethereal/bodyparts.dmi diff --git a/icons/mob/species/golems.dmi b/icons/mob/human/species/golems.dmi similarity index 100% rename from icons/mob/species/golems.dmi rename to icons/mob/human/species/golems.dmi diff --git a/icons/mob/species/hair_gradients.dmi b/icons/mob/human/species/hair_gradients.dmi similarity index 100% rename from icons/mob/species/hair_gradients.dmi rename to icons/mob/human/species/hair_gradients.dmi diff --git a/icons/mob/species/lizard/bodyparts.dmi b/icons/mob/human/species/lizard/bodyparts.dmi similarity index 100% rename from icons/mob/species/lizard/bodyparts.dmi rename to icons/mob/human/species/lizard/bodyparts.dmi diff --git a/icons/mob/species/lizard/lizard_misc.dmi b/icons/mob/human/species/lizard/lizard_misc.dmi similarity index 100% rename from icons/mob/species/lizard/lizard_misc.dmi rename to icons/mob/human/species/lizard/lizard_misc.dmi diff --git a/icons/mob/species/lizard/lizard_spines.dmi b/icons/mob/human/species/lizard/lizard_spines.dmi similarity index 100% rename from icons/mob/species/lizard/lizard_spines.dmi rename to icons/mob/human/species/lizard/lizard_spines.dmi diff --git a/icons/mob/species/lizard/lizard_tails.dmi b/icons/mob/human/species/lizard/lizard_tails.dmi similarity index 100% rename from icons/mob/species/lizard/lizard_tails.dmi rename to icons/mob/human/species/lizard/lizard_tails.dmi diff --git a/icons/mob/species/misc/bodypart_overlay_simple.dmi b/icons/mob/human/species/misc/bodypart_overlay_simple.dmi similarity index 100% rename from icons/mob/species/misc/bodypart_overlay_simple.dmi rename to icons/mob/human/species/misc/bodypart_overlay_simple.dmi diff --git a/icons/mob/species/misc/digitigrade.dmi b/icons/mob/human/species/misc/digitigrade.dmi similarity index 100% rename from icons/mob/species/misc/digitigrade.dmi rename to icons/mob/human/species/misc/digitigrade.dmi diff --git a/icons/mob/species/monkey/bodyparts.dmi b/icons/mob/human/species/monkey/bodyparts.dmi similarity index 100% rename from icons/mob/species/monkey/bodyparts.dmi rename to icons/mob/human/species/monkey/bodyparts.dmi diff --git a/icons/mob/species/monkey/monkey_tail.dmi b/icons/mob/human/species/monkey/monkey_tail.dmi similarity index 100% rename from icons/mob/species/monkey/monkey_tail.dmi rename to icons/mob/human/species/monkey/monkey_tail.dmi diff --git a/icons/mob/species/monkey/uniform.dmi b/icons/mob/human/species/monkey/uniform.dmi similarity index 100% rename from icons/mob/species/monkey/uniform.dmi rename to icons/mob/human/species/monkey/uniform.dmi diff --git a/icons/mob/species/moth/bodyparts.dmi b/icons/mob/human/species/moth/bodyparts.dmi similarity index 100% rename from icons/mob/species/moth/bodyparts.dmi rename to icons/mob/human/species/moth/bodyparts.dmi diff --git a/icons/mob/species/moth/moth_antennae.dmi b/icons/mob/human/species/moth/moth_antennae.dmi similarity index 100% rename from icons/mob/species/moth/moth_antennae.dmi rename to icons/mob/human/species/moth/moth_antennae.dmi diff --git a/icons/mob/species/moth/moth_markings.dmi b/icons/mob/human/species/moth/moth_markings.dmi similarity index 100% rename from icons/mob/species/moth/moth_markings.dmi rename to icons/mob/human/species/moth/moth_markings.dmi diff --git a/icons/mob/species/moth/moth_wings.dmi b/icons/mob/human/species/moth/moth_wings.dmi similarity index 100% rename from icons/mob/species/moth/moth_wings.dmi rename to icons/mob/human/species/moth/moth_wings.dmi diff --git a/icons/mob/species/mush_cap.dmi b/icons/mob/human/species/mush_cap.dmi similarity index 100% rename from icons/mob/species/mush_cap.dmi rename to icons/mob/human/species/mush_cap.dmi diff --git a/icons/mob/species/plasmaman/bodyparts.dmi b/icons/mob/human/species/plasmaman/bodyparts.dmi similarity index 100% rename from icons/mob/species/plasmaman/bodyparts.dmi rename to icons/mob/human/species/plasmaman/bodyparts.dmi diff --git a/icons/mob/species/podperson_hair.dmi b/icons/mob/human/species/podperson_hair.dmi similarity index 100% rename from icons/mob/species/podperson_hair.dmi rename to icons/mob/human/species/podperson_hair.dmi diff --git a/icons/mob/species/wings.dmi b/icons/mob/human/species/wings.dmi similarity index 100% rename from icons/mob/species/wings.dmi rename to icons/mob/human/species/wings.dmi diff --git a/icons/mob/species/human/human.dmi b/icons/mob/species/human/human.dmi deleted file mode 100644 index 7e576e90404e94eec137525e0c2aebd1e4beab3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18225 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