Genetics Invisibility Fix

Ripped from Paradise/Bay code.
This commit is contained in:
skull132
2014-10-11 22:11:00 +03:00
parent 7db6d8dd32
commit e73c8e33b8
3 changed files with 15 additions and 23 deletions
@@ -136,8 +136,6 @@ Please contact me on #coderbus IRC. ~Carn x
var/list/overlays_standing[TOTAL_LAYERS]
var/list/overlays_lying[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
/mob/living/carbon/human/proc/apply_overlay(cache_index)
@@ -285,11 +283,14 @@ proc/get_damage_icon_part(damage_state, body_part)
//BEGIN CACHED ICON GENERATION.
//Icon is not cached, generate and store it.
// Why don't we just make skeletons/shadows/golems a species? ~Z
var/race_icon = (skeleton ? 'icons/mob/human_races/r_skeleton.dmi' : species.icobase)
var/deform_icon = (skeleton ? 'icons/mob/human_races/r_skeleton.dmi' : species.icobase)
//Robotic limbs are handled in get_icon() so all we worry about are missing or dead limbs.
//No icon stored, so we need to start with a basic one.
var/datum/organ/external/chest = get_organ("chest")
base_icon = chest.get_icon(g)
base_icon = chest.get_icon(race_icon,deform_icon,g)
for(var/datum/organ/external/part in organs)
@@ -299,9 +300,9 @@ proc/get_damage_icon_part(damage_state, body_part)
continue
if (istype(part, /datum/organ/external/groin) || istype(part, /datum/organ/external/head))
temp = part.get_icon(g)
temp = part.get_icon(race_icon,deform_icon,g)
else
temp = part.get_icon()
temp = part.get_icon(race_icon,deform_icon)
if(part.status & ORGAN_DEAD)
temp.ColorTone(necrosis_color_mod)
@@ -486,18 +487,9 @@ proc/get_damage_icon_part(damage_state, body_part)
/mob/living/carbon/human/proc/update_mutantrace(var/update_icons=1)
var/fat
if( FAT in mutations )
fat = "fat"
// 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'
else
//Icon data is kept in species datums within the mob.
race_icon = species.icobase
deform_icon = species.deform
if(dna)
switch(dna.mutantrace)
+1 -1
View File
@@ -11,7 +11,7 @@
proc/receive_chem(chemical as obj)
return 0
/datum/organ/proc/get_icon()
/datum/organ/proc/get_icon(var/icon/race_icon, var/icon/deform_icon)
return icon('icons/mob/human.dmi',"blank")
//Handles chem traces
+6 -6
View File
@@ -702,14 +702,14 @@ This function completely restores a damaged organ to perfect condition.
return 1
return 0
/datum/organ/external/get_icon(gender="")
/datum/organ/external/get_icon(var/icon/race_icon, var/icon/deform_icon,gender="")
if (status & ORGAN_ROBOT && !(owner.species && owner.species.flags & IS_SYNTHETIC))
return new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
if (status & ORGAN_MUTATED)
return new /icon(owner.deform_icon, "[icon_name][gender ? "_[gender]" : ""]")
return new /icon(deform_icon, "[icon_name][gender ? "_[gender]" : ""]")
return new /icon(owner.race_icon, "[icon_name][gender ? "_[gender]" : ""]")
return new /icon(race_icon, "[icon_name][gender ? "_[gender]" : ""]")
/datum/organ/external/proc/is_usable()
@@ -813,15 +813,15 @@ This function completely restores a damaged organ to perfect condition.
body_part = HEAD
var/disfigured = 0
/datum/organ/external/head/get_icon()
/datum/organ/external/head/get_icon(var/icon/race_icon, var/icon/deform_icon)
if (!owner)
return ..()
var/g = "m"
if(owner.gender == FEMALE) g = "f"
if (status & ORGAN_MUTATED)
. = new /icon(owner.deform_icon, "[icon_name]_[g]")
. = new /icon(deform_icon, "[icon_name]_[g]")
else
. = new /icon(owner.race_icon, "[icon_name]_[g]")
. = new /icon(race_icon, "[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)