for(var/obj/item/clothing/under/U)
var/icon/o_lying = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[U.color]_l")
var/icon/f_lying = icon("icon"='icons/mob/uniform.dmi', "icon_state"="female_l")
o_lying.Blend(f_lying, ICON_MULTIPLY)
var/icon/o_standing = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[U.color]_s")
var/icon/f_standing = icon("icon"='icons/mob/uniform.dmi', "icon_state"="female_s")
o_standing.Blend(f_standing, ICON_MULTIPLY)
female_uniform_icons["1"] = o_lying
female_uniform_icons["2"] = o_standing
"female_uniform_icons" is defined as a global list at the start of file. What this is supposed to do is take a uniform (o) and apply a filter (f) then cache it to female_uniform_icons. "1" and "2" are just placeholders for testing, and aren't the problem. It then gets used here:
var/icon/lying_holder = female_uniform_icons["1"]
var/icon/standing_holder = female_uniform_icons["2"]
lying = image(lying_holder, "layer"=-UNIFORM_LAYER)
standing = image(standing_holder, "layer"=-UNIFORM_LAYER)
overlays_lying[UNIFORM_LAYER] = lying
overlays_standing[UNIFORM_LAYER] = standing
lying/standing are defined as images earlier in the file.
lying_holder and standing_holder are NOT icons according to isicon, even though they should be reading the modified icons from the global list. Anyone have any ideas why this might be? It's driving me nuts