several fixes inc #233

Fixes icon creation issue in certain situations such as humanising
monkeys and cloning
Fixes humanized monkeys reverting to monkey name after being used for
cloning
Fixes humanized monkeys being made as human parent object instead of
human/race
This commit is contained in:
VampyrBytes
2014-08-01 06:38:01 +01:00
parent f900578f25
commit ea07c3b06b
3 changed files with 21 additions and 15 deletions
@@ -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)
+8 -4
View File
@@ -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)