diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm index ef3cdb1fc14..e1faba73a75 100644 --- a/code/game/dna/genes/monkey.dm +++ b/code/game/dna/genes/monkey.dm @@ -108,7 +108,10 @@ var/mob/living/carbon/human/O if(Mo.greaterform) - O = new(src, Mo.greaterform) + var/greatform = lowertext(Mo.greaterform) + var/typepath = "/mob/living/carbon/human/" + typepath += greatform + O = new typepath(src, greatform) else O = new(src) @@ -152,6 +155,7 @@ continue else O.real_name = randomname + O.dna.real_name = randomname i++ O.UpdateAppearance() O.take_overall_damage(M.getBruteLoss(), M.getFireLoss()) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cbfdfe251cc..4ea26a60a66 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -131,11 +131,12 @@ Please contact me on #coderbus IRC. ~Carn x #define FIRE_LAYER 24 //If you're on fire #define TOTAL_LAYERS 24 + + /mob/living/carbon/human var/list/overlays_standing[TOTAL_LAYERS] var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed - var/icon/race_icon - var/icon/deform_icon + var/icon/skeleton /mob/living/carbon/human/proc/apply_overlay(cache_index) @@ -238,7 +239,6 @@ proc/get_damage_icon_part(damage_state, body_part) var/husk = (M_HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete var/fat = (M_FAT in src.mutations) var/hulk = (M_HULK in src.mutations) - var/skeleton = (SKELETON in src.mutations) var/g = (gender == FEMALE ? "f" : "m") var/has_head = 0 @@ -351,7 +351,7 @@ proc/get_damage_icon_part(damage_state, body_part) //Handle husk overlay. if(husk) var/icon/mask = new(base_icon) - var/icon/husk_over = new(race_icon,"overlay_husk") + var/icon/husk_over = new(species.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) @@ -506,13 +506,11 @@ proc/get_damage_icon_part(damage_state, body_part) // var/g = "m" // if (gender == FEMALE) g = "f" //BS12 EDIT - var/skeleton = (SKELETON in src.mutations) - if(skeleton) - race_icon = 'icons/mob/human_races/r_skeleton.dmi' + var/skel = (SKELETON in src.mutations) + if(skel) + skeleton = 'icons/mob/human_races/r_skeleton.dmi' else - //Icon data is kept in species datums within the mob. - race_icon = species.icobase - deform_icon = species.deform + skeleton = null if(dna) switch(dna.mutantrace) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 897496afb02..3477ccd9039 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -813,11 +813,13 @@ Note that amputating the affected organ does in fact remove the infection from t /datum/organ/external/get_icon(gender="", fat="") if (status & ORGAN_MUTATED) - return new /icon(owner.deform_icon, "[icon_name][gender ? "_[gender]" : ""][fat ? "_fat" : ""]") + return new /icon(owner.species.deform, "[icon_name][gender ? "_[gender]" : ""][fat ? "_fat" : ""]") else if (status & ORGAN_ROBOT && !(owner.species && owner.species.flags & IS_SYNTHETIC)) return new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]") + else if (owner.skeleton) + return new /icon(owner.skeleton, "[icon_name][gender ? "_[gender]" : ""]") else - return new /icon(owner.race_icon, "[icon_name][gender ? "_[gender]" : ""][fat ? "_fat" : ""]") + return new /icon(owner.species.icobase, "[icon_name][gender ? "_[gender]" : ""][fat ? "_fat" : ""]") /datum/organ/external/proc/is_usable() @@ -983,9 +985,11 @@ Note that amputating the affected organ does in fact remove the infection from t var/g = "m" if(owner.gender == FEMALE) g = "f" if (status & ORGAN_MUTATED) - . = new /icon(owner.deform_icon, "[icon_name]_[g]") + . = new /icon(owner.species.deform, "[icon_name]_[g]") + else if (owner.skeleton) + . = new /icon(owner.skeleton, "[icon_name]_[g]") else - . = new /icon(owner.race_icon, "[icon_name]_[g]") + . = new /icon(owner.species.icobase, "[icon_name]_[g]") /datum/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) ..(brute, burn, sharp, edge, used_weapon, forbidden_limbs)