From cc1768b8727596d7552785792e2164455a29b260 Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 4 Apr 2017 17:28:42 +0200 Subject: [PATCH 1/2] Huge Sprite Rework This is a big one, I reworked: Vagina sprites, Breast sprites, both onmob and item, and some Taur sprites How Taur sprites are layered, finally making genitals show for Nagas as they should. How colours are chosen (Humans can enable/disabled matching genitals to their skintones, everyone else has to pick a colour). Vaginas and Breasts now follow the same naming convention for sprites that penises use, so all genital organs can be rendered using the same piece of code. This means that breast sizes have dropped to single-letter variants, since those are what we got sprites for (Because the cup-size is now the Size of the obj). Breasts now have shapes! So far we only got the "pair" shape, but we got code-support for other variants. Vaginas can now also be chosen and will render properly, meaning we now have more of them to choose from (Some of them terrifying). They don't really use a size, but there's code support for it if sprites would be made for it. Breast items now change their size and color to the owner's when/if they somehow lose the organs (gibbing for example). Both Breasts and Vaginas change their description to match what the object is set to look like, sprites are lacking in that area however. Minor variable error in the penis-description code fixed. Taur sprites renamed to use the correct layers. Shephard sprite bug fixed where there was a missing 2 pixels in the middle of the body. --- code/__DEFINES/misc.dm | 19 +++-- code/__HELPERS/global_lists.dm | 4 +- code/__HELPERS/mobs.dm | 2 + code/citadel/_cit_helpers.dm | 2 + code/citadel/icons/breasts.dmi | Bin 698 -> 703 bytes code/citadel/icons/breasts_onmob.dmi | Bin 762 -> 767 bytes code/citadel/icons/vagina_onmob.dmi | Bin 592 -> 607 bytes code/citadel/organs/breasts.dm | 24 +++++- code/citadel/organs/genitals.dm | 72 +++++++++++------- .../organs/genitals_sprite_accessories.dm | 52 +++++++++++-- code/citadel/organs/penis.dm | 2 +- code/citadel/organs/vagina.dm | 51 ++++++++++++- code/citadel/organs/womb.dm | 15 ++++ code/modules/client/preferences.dm | 61 +++++++++++++-- code/modules/client/preferences_savefile.dm | 6 ++ .../mob/living/carbon/human/species.dm | 16 ++-- icons/mob/special/mam_taur.dmi | Bin 36656 -> 36658 bytes 17 files changed, 262 insertions(+), 64 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 8e98e80d78..110188a85a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -32,14 +32,13 @@ //Human Overlays Indexes///////// //citadel code -#define MUTATIONS_LAYER 31 //mutations. Tk headglows, cold resistance glow, etc -#define BODY_BEHIND_LAYER 30 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define GENITALS_BEHIND_LAYER 29 -#define BODYPARTS_LAYER 28 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag -#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts -#define GENITALS_ADJ_LAYER 26 -#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup) -#define GENITALS_FRONT_LAYER 24 +#define MUTATIONS_LAYER 30 //mutations. Tk headglows, cold resistance glow, etc +#define BODY_BEHIND_LAYER 29 //certain mutantrace features (tail when looking south) that must appear behind the body parts +#define GENITALS_BEHIND_LAYER 28 +#define BODYPARTS_LAYER 27 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag +#define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts +#define GENITALS_ADJ_LAYER 25 +#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup) #define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) #define DAMAGE_LAYER 22 //damage indicators (cuts and burns) #define UNIFORM_LAYER 21 @@ -49,7 +48,7 @@ #define EARS_LAYER 17 #define SUIT_LAYER 16 #define BODY_TAUR_LAYER 15 -#define GENITALS_FRONT_LAYER 14 +#define GENITALS_FRONT_LAYER 14 //Draws some genitalia above clothes and the TAUR body if need be. #define GLASSES_LAYER 13 #define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt? #define SUIT_STORE_LAYER 11 @@ -63,7 +62,7 @@ #define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 30 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 81881f76b5..e7fe1b354d 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -55,7 +55,9 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, xeno_dorsal_list) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, cock_shapes_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, breasts_size_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, vagina_shapes_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, breasts_shapes_list) + breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. //Species for(var/spath in subtypesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 61e7f9364a..f73220abde 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -138,8 +138,10 @@ "has_breasts" = FALSE, "breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "breasts_size" = pick(breasts_size_list), + "breasts_shape" = pick(breasts_shapes_list), "breasts_fluid" = "milk", "has_vag" = FALSE, + "vag_shape" = pick(vagina_shapes_list), "vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "vag_clits" = 1, "vag_clit_diam" = 0.25, diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm index 433926df3f..3cb2bee4ca 100644 --- a/code/citadel/_cit_helpers.dm +++ b/code/citadel/_cit_helpers.dm @@ -53,7 +53,9 @@ var/global/list/xeno_dorsal_list = list() //Genitals and Arousal Lists var/global/list/cock_shapes_list = list()//global_lists.dm for the list initializations +var/global/list/breasts_shapes_list = list() var/global/list/breasts_size_list = list() +var/global/list/vagina_shapes_list = list() var/global/list/cum_into_containers_list = list(/obj/item/weapon/reagent_containers/food/snacks/pie) var/global/list/dick_nouns = list("dick","cock","member","shaft") var/global/list/cum_id_list = list("semen") diff --git a/code/citadel/icons/breasts.dmi b/code/citadel/icons/breasts.dmi index 7735fad868889276367edccee07b983bcb83a99d..7e4a63187683fd511d1a1cb2435e2d37328b8742 100644 GIT binary patch delta 55 zcmV-70LcHk1-}K5RRM;PR%a()keFE%pGunY6w;I@lcqe0H06o7lq)N^`niAu834!G NYk1y2ZsoDx+X1H88W#Wn delta 50 zcmV-20L}lu1-b>0RRMvKR%argO0>!pqE#jntul#dm5I1iDl549xq!nG06eE*K`|D_ Ixv}Ki0TH7W(EtDd diff --git a/code/citadel/icons/breasts_onmob.dmi b/code/citadel/icons/breasts_onmob.dmi index 12f23ad56db739f11fee8494dec316346fc62482..32d283238812c8a82d260166a41f0a5166fbc9bf 100644 GIT binary patch delta 92 zcmV-i0Hgo<1^)$*RRNTdR!~g7AThHjJ~7@c$lotSiHkEOv#1zk1{Y^qQDSZ?h;4{N yQxZ9vlF8AOLY^ikR}W7=7t(a4l4DgW0jrc1T>V_Yu>=5zrh&NaPQjM3?F|CHuqIvr delta 87 zcmV-d0I2`}1^NY$RRNEYR!~PiG2Si6-!DXoi!&v&s2HT3i!-e#F*g;&HpEn)M56j+ t64j@Wtlr7h!_&`&Xbq_(T98V>0%ZkPKNoNm005U8b8AII#_qB54Fa-NCNTg2 diff --git a/code/citadel/icons/vagina_onmob.dmi b/code/citadel/icons/vagina_onmob.dmi index 867ede99d55f39e6917f8eb4ef41fc0b97d4f5d7..0f939c03f69c563c8acb05c153bf54999b9546a7 100644 GIT binary patch delta 214 zcmV;{04e{_1m6UZUVp%PR9JLGWpiV4X>fFDZ*Bkpc$}4yF$;q*5QXRDR|H+9XsX@1 z6m4;+h0sgr;8H;;UJa-+Dv#Goaq}>$r0zxrMoJG24I6djm^idj@qb;F zmhHN4XRoY=!Acqi$uu-@gBzv{+-tT>i@&rPmAJ7+kbz|m{o%MRg4DxWA3n*7bo$i? Qp{0LN<||e}vlsz50XJ1*{Qv*} delta 199 zcmV;&0672O1kePKUVpKAR9JLGWpiV4X>fFDZ*Bkpc$|fhO$viB5QW#tDS~dL*i^gg zMwH^B-eIVz8PF)n(BkbIb)f~N%;vq}eaufNvf^G=B7c 1 ? "es" : ""] around the shaft \ + desc = "That's a [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[length > 1 ? "es" : ""] long, [round(girth, 0.25)] inch[girth > 1 ? "es" : ""] around the shaft \ and [round(length * knot_girth_ratio, 0.25)] inch[length > 1 ? "es" : ""] around the knot." else desc = "That's a [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[length > 1 ? "es" : ""] long and [round(girth, 0.25)] inch[length > 1 ? "es" : ""] around." diff --git a/code/citadel/organs/vagina.dm b/code/citadel/organs/vagina.dm index bcbb23d8e9..50d44d3b77 100644 --- a/code/citadel/organs/vagina.dm +++ b/code/citadel/organs/vagina.dm @@ -5,13 +5,60 @@ icon_state = "vagina" zone = "groin" slot = "vagina" + size = 1 //There is only 1 size right now can_masturbate_with = 1 w_class = 3 - var/wetness = 1 + var/wetness = FALSE var/cap_length = 8//D E P T H (cap = capacity) var/cap_girth = 12 var/cap_girth_ratio = 1.5 var/clits = 1 var/clit_diam = 0.25 var/clit_len = 0.25 - var/obj/item/organ/womb/linked_womb + var/list/vag_types = list("tentacle", "dentata", "hairy") + var/obj/item/organ/genital/womb/linked_womb + + +/obj/item/organ/genital/vagina/update_appearance() + var/string = "vagina" //Keeping this code here, so making multiple sprites for the different kinds is easier. + icon_state = sanitize_text(string) + var/lowershape = lowertext(shape) + + desc = "That's a [lowershape] vagina. You estimate it could stretch about [round(cap_length, 0.25)] inch[cap_length > 1 ? "es" : ""] deep, around something [round(cap_girth, 0.25)] inch[cap_girth > 1 ? "es" : ""] thick \ + and it has [clits > 1 ? "[clits] clits" : "a clit"], about [round(clit_len,0.25)] inch[clit_len > 1 ? "es" : ""] long and [round(clit_diam, 0.25)] inch[clit_diam > 1 ? "es" : ""] in diameter." + switch(lowershape) + if("tentacle") + desc += "\nIts opening is lined with several tentacles and " + if("dentata") + desc += "\nThere's teeth inside it and it is " + if("hairy") + desc += "\nIt has quite a bit of hair growing on it and is " + if("human") + desc += "\nIt is taut with smooth skin, though without much hair and " + if("gaping") + desc += "\nIt is gaping slightly open, though without much hair and " + if("dripping") + desc += "\nIt is gaping slightly, inflamed and " + else + desc += "\nIt has an exotic shape and is " + if(wetness) + desc += "slick with female arousal." + else + desc += "not very wet." + if(owner) + color = "#[owner.dna.features["vag_color"]]" + +/obj/item/organ/genital/vagina/update_link() + if(owner) + linked_womb = (owner.getorganslot("womb")) + if(linked_womb) + linked_womb.linked_vag = src + else + if(linked_womb) + linked_womb.linked_vag = null + linked_womb = null + +/obj/item/organ/genital/vagina/remove_ref() + if(linked_womb) + linked_womb.linked_vag = null + linked_womb = null diff --git a/code/citadel/organs/womb.dm b/code/citadel/organs/womb.dm index 8552f20e46..948bc33385 100644 --- a/code/citadel/organs/womb.dm +++ b/code/citadel/organs/womb.dm @@ -9,5 +9,20 @@ fluid_id = "femcum" var/obj/item/organ/genital/vagina/linked_vag +/obj/item/organ/genital/womb/update_link() + if(owner) + linked_vag = (owner.getorganslot("vagina")) + if(linked_vag) + linked_vag.linked_womb = src + else + if(linked_vag) + linked_vag.linked_womb = null + linked_vag = null + +/obj/item/organ/genital/womb/remove_ref() + if(linked_vag) + linked_vag.linked_womb = null + linked_vag = null + /obj/item/organ/genital/womb/Destroy() return ..() \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 20a57f2d0e..c2325b2bd8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -115,8 +115,10 @@ var/list/preferences_datums = list() "has_breasts" = FALSE, "breasts_color" = "fff", "breasts_size" = "C", + "breasts_shape" = "pair", "breasts_fluid" = "milk", "has_vag" = FALSE, + "vag_shape" = "human", "vag_color" = "fff", "vag_clits" = 1, "vag_clit_diam" = 0.25, @@ -353,7 +355,6 @@ var/list/preferences_datums = list() else dat += "High" dat += "
" -// dat += "Genital Colors:[features["genitals_use_skintone"] == TRUE ? "Skin Tone" : "Custom"]
" dat += "" @@ -405,6 +406,8 @@ var/list/preferences_datums = list() dat += "Tertiary Color:     Change
" if(pref_species.use_skintones) dat += "Skin Tone: [skin_tone]
" + dat += "Genitals use skintone:[features["genitals_use_skintone"] == TRUE ? "Enabled" : "Disabled"]
" + if(HAIR in pref_species.species_traits) dat += "Hair Style: [hair_style]
" dat += "Hair Color:     Change
" @@ -473,18 +476,26 @@ var/list/preferences_datums = list() dat += "Penis Length: [features["cock_length"]] inch(es)
" dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]
" if(features["has_balls"] == TRUE) - dat += "Testicles Color:    Change
" + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Testicles Color:   (Skin tone overriding)
" + else + dat += "Testicles Color:    Change
" dat += "Has Vagina:[features["has_vag"] == TRUE ? "Yes" : "No"]
" if(features["has_vag"]) - dat += "Vagina Color:    Change
" + dat += "Vagina Type: [features["vag_shape"]]
" + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Vagina Color:   (Skin tone overriding)
" + else + dat += "Vagina Color:    Change
" dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]
" dat += "Has Breasts:[features["has_breasts"] == TRUE ? "Yes" : "No"]
" if(features["has_breasts"]) -// if(pref_species.use_skintones) -// dat += "Color:   (Skin tone overriding)" -// else -// dat += "Color:    Change" + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Color:   (Skin tone overriding)
" + else + dat += "Color:    Change
" dat += "Cup Size:[features["breasts_size"]]
" + dat += "Breast Shape:[features["breasts_shape"]]
" /* dat += "

Ovipositor

" dat += "Has Ovipositor:[features["has_ovi"] == TRUE ? "Yes" : "No"]" @@ -847,6 +858,11 @@ var/list/preferences_datums = list() eye_color = random_eye_color() if("s_tone") skin_tone = random_skin_tone() + if(pref_species.use_skintones && features["genitals_use_skintone"]) + features["cock_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["breasts_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["vag_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["balls_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) if("bag") backbag = pick(backbaglist) if("all") @@ -1163,6 +1179,10 @@ var/list/preferences_datums = list() var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones if(new_s_tone) skin_tone = new_s_tone + features["cock_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["breasts_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["vag_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["balls_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) if("ooccolor") var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null @@ -1313,6 +1333,12 @@ var/list/preferences_datums = list() if(new_size) features["breasts_size"] = new_size + if("breasts_shape") + var/new_shape + new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in breasts_shapes_list + if(new_shape) + features["breasts_shape"] = new_shape + if("breasts_color") var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null if(new_breasts_color) @@ -1323,6 +1349,11 @@ var/list/preferences_datums = list() features["breasts_color"] = sanitize_hexcolor(new_breasts_color) else user << "Invalid color. Your color is not bright enough." + if("vag_shape") + var/new_shape + new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in vagina_shapes_list + if(new_shape) + features["vag_shape"] = new_shape if("vag_color") var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null if(new_vagcolor) @@ -1338,6 +1369,22 @@ var/list/preferences_datums = list() switch(href_list["preference"]) //citadel code + if("genital_colour") + switch(features["genitals_use_skintone"]) + if(TRUE) + features["genitals_use_skintone"] = FALSE + if(FALSE) + features["genitals_use_skintone"] = TRUE + features["cock_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["breasts_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["vag_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["balls_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + else + features["genitals_use_skintone"] = FALSE + features["cock_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["breasts_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["vag_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) + features["balls_color"] = sanitize_hexcolor(skintone2hex(skin_tone)) if("arousable") switch(arousable) if(TRUE) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index b4006ea5a9..6631f0dfe7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -148,10 +148,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //breasts features features["has_breasts"] = sanitize_integer(features["has_breasts"], 0, 1, 0) features["breasts_size"] = sanitize_inlist(features["breasts_size"], breasts_size_list, "C") + features["breasts_shape"] = sanitize_inlist(features["breasts_shape"], breasts_shapes_list, "pair") features["breasts_color"] = sanitize_hexcolor(features["breasts_color"], 3, 0) features["breasts_fluid"] = sanitize_inlist(features["breasts_fluid"], milk_id_list, "milk") //vagina features features["has_vag"] = sanitize_integer(features["has_vag"], 0, 1, 0) + features["vag_shape"] = sanitize_inlist(features["vag_shape"], vagina_shapes_list, "human") features["vag_color"] = sanitize_hexcolor(features["vag_color"], 3, 0) //womb features features["has_womb"] = sanitize_integer(features["has_womb"], 0, 1, 0) @@ -383,10 +385,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //breasts features S["feature_has_breasts"] >> features["has_breasts"] S["feature_breasts_size"] >> features["breasts_size"] + S["feature_breasts_shape"] >> features["breasts_shape"] S["feature_breasts_color"] >> features["breasts_color"] S["feature_breasts_fluid"] >> features["breasts_fluid"] //vagina features S["feature_has_vag"] >> features["has_vag"] + S["feature_vag_shape"] >> features["vag_shape"] S["feature_vag_color"] >> features["vag_color"] //womb features S["feature_has_womb"] >> features["has_womb"] @@ -547,10 +551,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //breasts features S["feature_has_breasts"] << features["has_breasts"] S["feature_breasts_size"] << features["breasts_size"] + S["feature_breasts_shape"] << features["breasts_shape"] S["feature_breasts_color"] << features["breasts_color"] S["feature_breasts_fluid"] << features["breasts_fluid"] //vagina features S["feature_has_vag"] << features["has_vag"] + S["feature_vag_shape"] << features["vag_shape"] S["feature_vag_color"] << features["vag_color"] //womb features S["feature_has_womb"] << features["has_womb"] diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 017f081bd7..6b4c19078b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -357,12 +357,11 @@ /datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) var/list/bodyparts_to_add = mutant_bodyparts.Copy() - var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) + var/list/relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER, BODY_TAUR_LAYER) var/list/standing = list() - H.remove_overlay(BODY_BEHIND_LAYER) - H.remove_overlay(BODY_ADJ_LAYER) - H.remove_overlay(BODY_FRONT_LAYER) + for(var/L in relevant_layers) + H.remove_overlay(L) if(!mutant_bodyparts) return @@ -488,7 +487,7 @@ var/image/I - for(var/layer in relevent_layers) + for(var/layer in relevant_layers) var/layertext = mutant_bodyparts_layertext(layer) for(var/bodypart in bodyparts_to_add) @@ -695,9 +694,8 @@ H.overlays_standing[layer] = standing.Copy() standing = list() - H.apply_overlay(BODY_BEHIND_LAYER) - H.apply_overlay(BODY_ADJ_LAYER) - H.apply_overlay(BODY_FRONT_LAYER) + for(var/L in relevant_layers) + H.apply_overlay(L) //This exists so sprite accessories can still be per-layer without having to include that layer's @@ -710,6 +708,8 @@ return "ADJ" if(BODY_FRONT_LAYER) return "FRONT" + if(BODY_TAUR_LAYER) + return "TAUR" /datum/species/proc/spec_life(mob/living/carbon/human/H) diff --git a/icons/mob/special/mam_taur.dmi b/icons/mob/special/mam_taur.dmi index 4626f634049922f236bace53c0a672dae1bc1cbd..5760b7b3abe9e23ed2211109973d81220c5ec3a6 100644 GIT binary patch delta 25210 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 Date: Tue, 4 Apr 2017 17:45:05 +0200 Subject: [PATCH 2/2] Adds changelog Adds a changelog that is more readable to the players than what's in the PR. The PR changelog itself is more for coders to read, as it has more details that players wouldn't care about. --- html/changelogs/ktccd-PR-339.yml | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 html/changelogs/ktccd-PR-339.yml diff --git a/html/changelogs/ktccd-PR-339.yml b/html/changelogs/ktccd-PR-339.yml new file mode 100644 index 0000000000..76ceef0bbd --- /dev/null +++ b/html/changelogs/ktccd-PR-339.yml @@ -0,0 +1,40 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: "ktccd" + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - fix: Taur layers now render correctly, no longer covering genitals! Rejoice Nagas! + - add: Breasts are now selectable in shapes and sizes and will render properly! + - add: Vaginas are now selectable in shapes and will render properly! Some of them are horrifying! + - tweak: Tweaked how colours are chosen (Humans can enable/disable matching genitals to their skintones, everyone else has to pick their colours). + - tweak: Breasts and Vaginas should now also have better descriptions. So far, these descriptions only apply when examining one that's not on a person... + - fix: Taur Shephard sprite bug fixed where there was a missing 2 pixels in the middle of the body. \ No newline at end of file