diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index dbd9f92f533..d7726bc2844 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -135,7 +135,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H) if(H.gender == FEMALE) g = "f" - var/icon/icobase = H.species.icobase + var/icon/icobase = H.icobase preview_icon = new /icon(icobase, "torso_[g]") var/icon/temp @@ -153,8 +153,8 @@ proc/get_id_photo(var/mob/living/carbon/human/H) if(H.body_accessory && istype(H.body_accessory, /datum/body_accessory/tail)) temp = new/icon("icon" = H.body_accessory.icon, "icon_state" = H.body_accessory.icon_state) preview_icon.Blend(temp, ICON_OVERLAY) - else if(H.species.tail && H.species.bodyflags & HAS_TAIL) - temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.species.tail]_s") + else if(H.tail && H.species.bodyflags & HAS_TAIL) + temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.tail]_s") preview_icon.Blend(temp, ICON_OVERLAY) for(var/obj/item/organ/external/E in H.organs) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c2e2f090bb2..0326fb91b1f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1515,6 +1515,10 @@ if(oldspecies.default_genes.len) oldspecies.handle_dna(src,1) // Remove any genes that belong to the old species + icobase = species.icobase + deform = species.deform + tail = species.tail + if(vessel) vessel = null make_blood() diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 0d30c5c8265..e1ce10f70b2 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -72,3 +72,6 @@ var/global/default_martial_art = new/datum/martial_art var/fire_sprite = "Standing" var/datum/body_accessory/body_accessory = null + var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set. + var/deform = 'icons/mob/human_races/r_def_human.dmi' // Mutated icon set. + var/tail // Name of tail image in species effects icon file. diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 1ea4387e477..cc97e59626b 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -364,29 +364,29 @@ if(H.species.name == "Vox") //Making sure we don't break Armalis. switch(H.s_tone) if(6) //Azure Vox. - icobase = 'icons/mob/human_races/vox/r_voxazu.dmi' - deform = 'icons/mob/human_races/vox/r_def_voxazu.dmi' - tail = "voxtail_azu" + H.icobase = 'icons/mob/human_races/vox/r_voxazu.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_voxazu.dmi' + H.tail = "voxtail_azu" if(5) //Emerald Vox. - icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi' - deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi' - tail = "voxtail_emrl" + H.icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi' + H.tail = "voxtail_emrl" if(4) //Grey Vox. - icobase = 'icons/mob/human_races/vox/r_voxgry.dmi' - deform = 'icons/mob/human_races/vox/r_def_voxgry.dmi' - tail = "voxtail_gry" + H.icobase = 'icons/mob/human_races/vox/r_voxgry.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_voxgry.dmi' + H.tail = "voxtail_gry" if(3) //Brown Vox. - icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi' - deform = 'icons/mob/human_races/vox/r_def_voxbrn.dmi' - tail = "voxtail_brn" + H.icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_voxbrn.dmi' + H.tail = "voxtail_brn" if(2) //Dark Green Vox. - icobase = 'icons/mob/human_races/vox/r_voxdgrn.dmi' - deform = 'icons/mob/human_races/vox/r_def_voxdgrn.dmi' - tail = "voxtail_dgrn" + H.icobase = 'icons/mob/human_races/vox/r_voxdgrn.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_voxdgrn.dmi' + H.tail = "voxtail_dgrn" else //Default Green Vox. - icobase = 'icons/mob/human_races/vox/r_vox.dmi' - deform = 'icons/mob/human_races/vox/r_def_vox.dmi' - tail = "voxtail" //Ensures they get an appropriately coloured tail depending on the skin-tone. + H.icobase = 'icons/mob/human_races/vox/r_vox.dmi' + H.deform = 'icons/mob/human_races/vox/r_def_vox.dmi' + H.tail = "voxtail" //Ensures they get an appropriately coloured tail depending on the skin-tone. H.update_dna() @@ -822,7 +822,7 @@ if(H.nutrition > NUTRITION_LEVEL_WELL_FED) H.nutrition = NUTRITION_LEVEL_WELL_FED - + if(light_amount > 0) H.clear_alert("nolight") else diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 48555229aad..58af3bced34 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -298,9 +298,9 @@ var/global/list/damage_icon_parts = list() base_icon.MapColors(rgb(tone[1],0,0),rgb(0,tone[2],0),rgb(0,0,tone[3])) //Handle husk overlay. - if(husk && ("overlay_husk" in icon_states(species.icobase))) + if(husk && ("overlay_husk" in icon_states(icobase))) var/icon/mask = new(base_icon) - var/icon/husk_over = new(species.icobase,"overlay_husk") + var/icon/husk_over = new(icobase,"overlay_husk") mask.MapColors(0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,0) husk_over.Blend(mask, ICON_ADD) base_icon.Blend(husk_over, ICON_OVERLAY) @@ -1197,9 +1197,9 @@ var/global/list/damage_icon_parts = list() else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) - else if(species.tail && species.bodyflags & HAS_TAIL) //no tailless tajaran + else if(tail && species.bodyflags & HAS_TAIL) //no tailless tajaran if(!wear_suit || !(wear_suit.flags_inv & HIDETAIL) && !istype(wear_suit, /obj/item/clothing/suit/space)) - var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_s") + var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[tail]_s") if(species.bodyflags & HAS_SKIN_COLOR) tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) if(tail_marking_icon) @@ -1266,8 +1266,8 @@ var/global/list/damage_icon_parts = list() else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) - else if(species.tail && species.bodyflags & HAS_TAIL) - var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]w_s") + else if(tail && species.bodyflags & HAS_TAIL) + var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[tail]w_s") if(species.bodyflags & HAS_SKIN_COLOR) tailw_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) if(tail_marking_icon) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index efaf84798d1..30874195989 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -242,10 +242,10 @@ H.species = current_species H.s_tone = s_tone H.species.updatespeciescolor(H) - - icobase = H.species.icobase + icobase = H.icobase ? H.icobase : H.species.icobase if(H.species.bodyflags & HAS_TAIL) - coloured_tail = H.species.tail + coloured_tail = H.tail ? H.tail : H.species.tail + qdel(H) else icobase = current_species.icobase diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index 03690ef3279..ddfcc566d16 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -171,10 +171,10 @@ var/global/list/limb_icon_cache = list() icon_file = 'icons/mob/human_races/robotic.dmi' else if(status & ORGAN_MUTATED) - icon_file = species.deform + icon_file = owner ? owner.deform : species.deform else // Congratulations, you are normal - icon_file = species.icobase + icon_file = owner ? owner.icobase : species.icobase return list(icon_file, new_icon_state) /obj/item/organ/external/chest/get_icon_state(skeletal)