diff --git a/code/modules/client/preference_setup/vore/01_ears.dm b/code/modules/client/preference_setup/vore/01_ears.dm index 04bec4c2ee..5064aa58bd 100644 --- a/code/modules/client/preference_setup/vore/01_ears.dm +++ b/code/modules/client/preference_setup/vore/01_ears.dm @@ -7,10 +7,16 @@ // Define a place to save appearance in character setup /datum/preferences var/ear_style // Type of selected ear style + var/red_ear = 30 // Ear color. Goddarn dupe var names. + var/g_ear = 30 // Ear color + var/b_ear = 30 // Ear color var/tail_style // Type of selected tail style var/r_tail = 30 // Tail/Taur color var/g_tail = 30 // Tail/Taur color var/b_tail = 30 // Tail/Taur color + var/r_tail2 = 30 // For extra overlay. + var/g_tail2 = 30 // For extra overlay. + var/b_tail2 = 30 // For extra overlay. var/dress_mob = TRUE // Definition of the stuff for Ears @@ -20,22 +26,40 @@ /datum/category_item/player_setup_item/vore/ears/load_character(var/savefile/S) S["ear_style"] >> pref.ear_style + S["red_ear"] >> pref.red_ear + S["g_ear"] >> pref.g_ear + S["b_ear"] >> pref.b_ear S["tail_style"] >> pref.tail_style S["r_tail"] >> pref.r_tail S["g_tail"] >> pref.g_tail S["b_tail"] >> pref.b_tail + S["r_tail2"] >> pref.r_tail2 + S["g_tail2"] >> pref.g_tail2 + S["b_tail2"] >> pref.b_tail2 /datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S) S["ear_style"] << pref.ear_style + S["red_ear"] << pref.red_ear + S["g_ear"] << pref.g_ear + S["b_ear"] << pref.b_ear S["tail_style"] << pref.tail_style S["r_tail"] << pref.r_tail S["g_tail"] << pref.g_tail S["b_tail"] << pref.b_tail + S["r_tail2"] << pref.r_tail2 + S["g_tail2"] << pref.g_tail2 + S["b_tail2"] << pref.b_tail2 /datum/category_item/player_setup_item/vore/ears/sanitize_character() + pref.red_ear = sanitize_integer(pref.red_ear, 0, 255, initial(pref.red_ear)) + pref.g_ear = sanitize_integer(pref.g_ear, 0, 255, initial(pref.g_ear)) + pref.b_ear = sanitize_integer(pref.b_ear, 0, 255, initial(pref.b_ear)) pref.r_tail = sanitize_integer(pref.r_tail, 0, 255, initial(pref.r_tail)) pref.g_tail = sanitize_integer(pref.g_tail, 0, 255, initial(pref.g_tail)) pref.b_tail = sanitize_integer(pref.b_tail, 0, 255, initial(pref.b_tail)) + pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2)) + pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2)) + pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2)) if(pref.ear_style) pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style)) if(pref.tail_style) @@ -43,10 +67,16 @@ /datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character) character.ear_style = ear_styles_list[pref.ear_style] + character.red_ear = pref.red_ear + character.b_ear = pref.b_ear + character.g_ear = pref.g_ear character.tail_style = tail_styles_list[pref.tail_style] character.r_tail = pref.r_tail character.b_tail = pref.b_tail character.g_tail = pref.g_tail + character.r_tail2 = pref.r_tail2 + character.b_tail2 = pref.b_tail2 + character.g_tail2 = pref.g_tail2 /datum/category_item/player_setup_item/vore/ears/content(var/mob/user) . += "

VORE Station Settings

" @@ -63,10 +93,15 @@ if(pref.ear_style && (pref.ear_style in ear_styles_list)) var/datum/sprite_accessory/ears/instance = ear_styles_list[pref.ear_style] ear_display = instance.name + else if(pref.ear_style) ear_display = "REQUIRES UPDATE" . += "Ears
" . += " Style: [ear_display]
" + if(ear_styles_list[pref.ear_style]) + var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style] + if (ear.do_colouration) + . += "Change Color
__

" var/tail_display = "Normal" if(pref.tail_style && (pref.tail_style in tail_styles_list)) @@ -81,6 +116,8 @@ var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style] if (T.do_colouration) . += "Change Color
__

" + if (T.extra_overlay) + . += "Change Secondary Color
__

" /datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user) if(!CanUseTopic(user)) @@ -100,6 +137,15 @@ return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["ear_color"]) + var/new_earc = input(user, "Choose your character's ear colour:", "Character Preference", + rgb(pref.red_ear, pref.g_ear, pref.b_ear)) as color|null + if(new_earc) + pref.red_ear = hex2num(copytext(new_earc, 2, 4)) + pref.g_ear = hex2num(copytext(new_earc, 4, 6)) + pref.b_ear = hex2num(copytext(new_earc, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["tail_style"]) // Construct the list of names allowed for this user. var/list/pretty_tail_styles = list("Normal" = null) @@ -123,6 +169,15 @@ pref.b_tail = hex2num(copytext(new_tailc, 6, 8)) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["tail_color2"]) + var/new_tailc2 = input(user, "Choose your character's secondary tail/taur colour:", "Character Preference", + rgb(pref.r_tail2, pref.g_tail2, pref.b_tail2)) as color|null + if(new_tailc2) + pref.r_tail2 = hex2num(copytext(new_tailc2, 2, 4)) + pref.g_tail2 = hex2num(copytext(new_tailc2, 4, 6)) + pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["toggle_clothing"]) pref.dress_mob = !pref.dress_mob return TOPIC_REFRESH_UPDATE_PREVIEW diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm index d7707e0937..bc52bd7175 100644 --- a/code/modules/client/preferences_vr.dm +++ b/code/modules/client/preferences_vr.dm @@ -1 +1,23 @@ -//File isn't currently being used. \ No newline at end of file +//File isn't currently being used. +//It is now. +/datum/preferences/update_preview_icon() // Lines up and un-overlaps character edit previews. Also un-splits taurs. + var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey) + mannequin.delete_inventory(TRUE) + dress_preview_mob(mannequin) + + preview_icon = icon('icons/effects/effects.dmi', "nothing") + preview_icon.Scale(64+64, 16+32) + + mannequin.dir = NORTH + var/icon/stamp = getFlatIcon(mannequin) + preview_icon.Blend(stamp, ICON_OVERLAY, 49, 9) + + mannequin.dir = WEST + stamp = getFlatIcon(mannequin) + preview_icon.Blend(stamp, ICON_OVERLAY, 1, 9) + + mannequin.dir = SOUTH + stamp = getFlatIcon(mannequin) + preview_icon.Blend(stamp, ICON_OVERLAY, 83, 9) + + preview_icon.Scale(preview_icon.Width() * 2, preview_icon.Height() * 2) // Scaling here to prevent blurring in the browser. \ No newline at end of file diff --git a/code/modules/vore/appearance/preferences_vr.dm b/code/modules/vore/appearance/preferences_vr.dm index 9b52b03826..f9302e8ed0 100644 --- a/code/modules/vore/appearance/preferences_vr.dm +++ b/code/modules/vore/appearance/preferences_vr.dm @@ -11,10 +11,16 @@ // Horray Furries! var/datum/sprite_accessory/ears/ear_style = null + var/red_ear = 30 + var/g_ear = 30 + var/b_ear = 30 var/datum/sprite_accessory/tail/tail_style = null var/r_tail = 30 var/g_tail = 30 var/b_tail = 30 + var/r_tail2 = 30 + var/g_tail2 = 30 + var/b_tail2 = 30 // Custom Species Name var/custom_species diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index 4065201c08..7dd1af756d 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -910,6 +910,11 @@ name = "Wolf" icon_state = "wolf_s" +/datum/sprite_accessory/tail/taur/wolf_2c + name = "Wolf dual-color" + icon_state = "wolf_s" + extra_overlay = "wolfmarkings" + /datum/sprite_accessory/tail/taur/naga name = "Naga" icon_state = "naga_s" @@ -942,13 +947,13 @@ name = "Slug" icon_state = "slug_s" -/datum/sprite_accessory/tail/taur/drake +/*/datum/sprite_accessory/tail/taur/drake //Yeah hold that thought for a bit. These got no suit compatibility yet. name = "Drake" icon_state = "drake_s" /datum/sprite_accessory/tail/taur/otie name = "Otie" - icon_state = "otie_s" + icon_state = "otie_s"*/ //wickedtemp: Chakat Tempest /datum/sprite_accessory/tail/taur/feline/tempest diff --git a/code/modules/vore/appearance/update_icons_vr.dm b/code/modules/vore/appearance/update_icons_vr.dm index 94a64347a6..7bbd8b9972 100644 --- a/code/modules/vore/appearance/update_icons_vr.dm +++ b/code/modules/vore/appearance/update_icons_vr.dm @@ -5,7 +5,7 @@ if(ear_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state) if(ear_style.do_colouration) - ears_s.Blend(rgb(src.r_hair, src.g_hair, src.b_hair), ear_style.color_blend_mode) + ears_s.Blend(rgb(src.r_ear, src.g_ear, src.b_ear), ear_style.color_blend_mode) if(ear_style.extra_overlay) var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay) ears_s.Blend(overlay, ICON_OVERLAY) @@ -27,6 +27,7 @@ tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode) if(tail_style.extra_overlay) var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay) + overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode) tail_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) diff --git a/icons/mob/vore/tails_vr.dmi b/icons/mob/vore/tails_vr.dmi index e0ba59f30e..bf056755e2 100644 Binary files a/icons/mob/vore/tails_vr.dmi and b/icons/mob/vore/tails_vr.dmi differ diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index 91b3390ee4..1c7c135923 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ