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
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
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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