diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e0ab84f832..6a932ead4a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -46,8 +46,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //citadel code #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 GENITALS_BEHIND_LAYER 29 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts #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 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 92d5dcbd80..1af231f893 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -48,6 +48,11 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) + + for(var/K in GLOB.cock_shapes_list) + var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K] + GLOB.cock_shapes_icons[K] = value.icon_state + init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) GLOB.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. diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm index db0626fa9c..e6dca1e369 100644 --- a/code/citadel/_cit_helpers.dm +++ b/code/citadel/_cit_helpers.dm @@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(xeno_dorsal_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm +GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list) diff --git a/code/citadel/icons/taur_penis_onmob.dmi b/code/citadel/icons/taur_penis_onmob.dmi new file mode 100644 index 0000000000..3debbd0047 Binary files /dev/null and b/code/citadel/icons/taur_penis_onmob.dmi differ diff --git a/code/citadel/organs/genitals.dm b/code/citadel/organs/genitals.dm index c129d8e8fa..6bd86e7146 100644 --- a/code/citadel/organs/genitals.dm +++ b/code/citadel/organs/genitals.dm @@ -243,8 +243,10 @@ G.aroused_state = FALSE icon_string = "[G.slot]_[S.icon_state]_[size]_[G.aroused_state]_[layertext]" I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer) + if(S.center) I = center_image(I,S.dimension_x,S.dimension_y) + if(use_skintones && H.dna.features["genitals_use_skintone"]) I.color = "#[skintone2hex(H.skin_tone)]" else diff --git a/code/citadel/organs/genitals_sprite_accessories.dm b/code/citadel/organs/genitals_sprite_accessories.dm index 586be3a095..710bab787c 100644 --- a/code/citadel/organs/genitals_sprite_accessories.dm +++ b/code/citadel/organs/genitals_sprite_accessories.dm @@ -31,6 +31,33 @@ icon_state = "tapered" name = "Tapered" +//////////////////////// +// Taur cocks go here // +//////////////////////// +/datum/sprite_accessory/penis/taur_flared + icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width + icon_state = "flared" + name = "Taur, Flared" + center = TRUE //Center the image 'cause 2-tile wide. + dimension_x = 64 + +/datum/sprite_accessory/penis/taur_knotted + icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width + icon_state = "knotted" + name = "Taur, Knotted" + center = TRUE //Center the image 'cause 2-tile wide. + dimension_x = 64 + +/datum/sprite_accessory/penis/taur_tapered + icon = 'code/citadel/icons/taur_penis_onmob.dmi' //Needed larger width + icon_state = "tapered" + name = "Taur, Tapered" + center = TRUE //Center the image 'cause 2-tile wide. + dimension_x = 64 + + + + //Vaginas /datum/sprite_accessory/vagina icon = 'code/citadel/icons/vagina_onmob.dmi' diff --git a/code/citadel/organs/penis.dm b/code/citadel/organs/penis.dm index d687b3e76a..9e2ce00666 100644 --- a/code/citadel/organs/penis.dm +++ b/code/citadel/organs/penis.dm @@ -35,7 +35,7 @@ cached_length = length /obj/item/organ/genital/penis/update_appearance() - var/string = "penis_[lowertext(shape)]_[size]" + var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" icon_state = sanitize_text(string) var/lowershape = lowertext(shape) if(lowershape in knotted_types) diff --git a/icons/mob/mam_taur.dmi b/icons/mob/mam_taur.dmi index c0d62597ff..8cce485c7a 100644 Binary files a/icons/mob/mam_taur.dmi and b/icons/mob/mam_taur.dmi differ