From 301b5eb467fb3a74af874fc4961882acb3fe2bfd Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Tue, 31 Mar 2020 22:39:10 -0400 Subject: [PATCH] Allow wings with a secondary color Adds code to support wings with extra_overlay having a secondary color, like tails do. Currently extra_overlay is just ignored on wings. --- code/game/dna/dna2.dm | 13 ++++++-- .../client/preference_setup/vore/01_ears.dm | 30 +++++++++++++++++-- .../human/species/species_shapeshift_vr.dm | 10 +++++++ .../living/carbon/human/update_icons_vr.dm | 5 ++++ .../modules/vore/appearance/preferences_vr.dm | 3 ++ 5 files changed, 56 insertions(+), 5 deletions(-) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 23d8c7b60f..001e74ca59 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -51,10 +51,13 @@ #define DNA_UI_WING_STYLE 32 #define DNA_UI_WING_R 33 #define DNA_UI_WING_G 34 -#define DNA_UI_WING_B 35 // VOREStation snippet end. -#define DNA_UI_LENGTH 35 // VOREStation Edit to 35 +#define DNA_UI_WING_B 35 +#define DNA_UI_WING2_R 36 +#define DNA_UI_WING2_G 37 +#define DNA_UI_WING2_B 38 // VOREStation snippet end. +#define DNA_UI_LENGTH 38 // VOREStation Edit - Needs to match the highest number above. -#define DNA_SE_LENGTH 46 // VOREStation Edit (original was UI+11) +#define DNA_SE_LENGTH 49 // VOREStation Edit (original was UI+11) // For later: //#define DNA_SE_LENGTH 50 // Was STRUCDNASIZE, size 27. 15 new blocks added = 42, plus room to grow. @@ -225,6 +228,10 @@ var/global/list/datum/dna/gene/dna_genes[0] SetUIValueRange(DNA_UI_WING_G, character.g_wing, 255, 1) SetUIValueRange(DNA_UI_WING_B, character.b_wing, 255, 1) + SetUIValueRange(DNA_UI_WING2_R, character.r_wing2, 255, 1) + SetUIValueRange(DNA_UI_WING2_G, character.g_wing2, 255, 1) + SetUIValueRange(DNA_UI_WING2_B, character.b_wing2, 255, 1) + SetUIValueRange(DNA_UI_EARS_R, character.r_ears, 255, 1) SetUIValueRange(DNA_UI_EARS_G, character.g_ears, 255, 1) SetUIValueRange(DNA_UI_EARS_B, character.b_ears, 255, 1) diff --git a/code/modules/client/preference_setup/vore/01_ears.dm b/code/modules/client/preference_setup/vore/01_ears.dm index 51e100ec9e..9098c36a96 100644 --- a/code/modules/client/preference_setup/vore/01_ears.dm +++ b/code/modules/client/preference_setup/vore/01_ears.dm @@ -24,6 +24,9 @@ var/r_wing = 30 // Wing color var/g_wing = 30 // Wing color var/b_wing = 30 // Wing color + var/r_wing2 = 30 // Wing extra color + var/g_wing2 = 30 // Wing extra color + var/b_wing2 = 30 // Wing extra color var/dress_mob = TRUE // Definition of the stuff for Ears @@ -50,6 +53,9 @@ S["r_wing"] >> pref.r_wing S["g_wing"] >> pref.g_wing S["b_wing"] >> pref.b_wing + S["r_wing2"] >> pref.r_wing2 + S["g_wing2"] >> pref.g_wing2 + S["b_wing2"] >> pref.b_wing2 /datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S) S["ear_style"] << pref.ear_style @@ -70,6 +76,9 @@ S["r_wing"] << pref.r_wing S["g_wing"] << pref.g_wing S["b_wing"] << pref.b_wing + S["r_wing2"] << pref.r_wing2 + S["g_wing2"] << pref.g_wing2 + S["b_wing2"] << pref.b_wing2 /datum/category_item/player_setup_item/vore/ears/sanitize_character() pref.r_ears = sanitize_integer(pref.r_ears, 0, 255, initial(pref.r_ears)) @@ -87,6 +96,9 @@ pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing)) pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing)) pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing)) + pref.r_wing2 = sanitize_integer(pref.r_wing2, 0, 255, initial(pref.r_wing2)) + pref.g_wing2 = sanitize_integer(pref.g_wing2, 0, 255, initial(pref.g_wing2)) + pref.b_wing2 = sanitize_integer(pref.b_wing2, 0, 255, initial(pref.b_wing2)) if(pref.ear_style) pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style)) var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style] @@ -122,6 +134,9 @@ character.r_wing = pref.r_wing character.b_wing = pref.b_wing character.g_wing = pref.g_wing + character.r_wing2 = pref.r_wing2 + character.b_wing2 = pref.b_wing2 + character.g_wing2 = pref.g_wing2 @@ -178,9 +193,11 @@ . += " Style: [wing_display]
" if(wing_styles_list[pref.wing_style]) - var/datum/sprite_accessory/wing/T = wing_styles_list[pref.wing_style] - if (T.do_colouration) + var/datum/sprite_accessory/wing/W = wing_styles_list[pref.wing_style] + if (W.do_colouration) . += "Change Color
__

" + if (W.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)) @@ -276,6 +293,15 @@ pref.b_wing = hex2num(copytext(new_wingc, 6, 8)) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["wing_color2"]) + var/new_wingc2 = input(user, "Choose your character's secondary wing colour:", "Character Preference", + rgb(pref.r_wing2, pref.g_wing2, pref.b_wing2)) as color|null + if(new_wingc2) + pref.r_wing2 = hex2num(copytext(new_wingc2, 2, 4)) + pref.g_wing2 = hex2num(copytext(new_wingc2, 4, 6)) + pref.b_wing2 = hex2num(copytext(new_wingc2, 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/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm index 3313c137b5..82645f8c59 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm @@ -121,4 +121,14 @@ g_wing = new_color_rgb_list[2] b_wing = new_color_rgb_list[3] + //Indented inside positive primary color choice, don't bother if they clicked cancel + var/current_sec_color = rgb(r_wing2,g_wing2,b_wing2) + + var/new_sec_color = input("Pick secondary wing color (only applies to some wings):","Wing Color (sec)", current_sec_color) as null|color + if(new_sec_color) + new_color_rgb_list = hex2rgb(new_sec_color) + r_wing2 = new_color_rgb_list[1] + g_wing2 = new_color_rgb_list[2] + b_wing2 = new_color_rgb_list[3] + update_wing_showing() diff --git a/code/modules/mob/living/carbon/human/update_icons_vr.dm b/code/modules/mob/living/carbon/human/update_icons_vr.dm index 436f76d774..a8b941ebc3 100644 --- a/code/modules/mob/living/carbon/human/update_icons_vr.dm +++ b/code/modules/mob/living/carbon/human/update_icons_vr.dm @@ -60,6 +60,11 @@ var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state) if(wing_style.do_colouration) wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode) + if(wing_style.extra_overlay) + var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay) + overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode) + wing_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) return image(wing_s) // TODO - Move this to where it should go ~Leshana diff --git a/code/modules/vore/appearance/preferences_vr.dm b/code/modules/vore/appearance/preferences_vr.dm index 8d5db2c6f2..3c86146e11 100644 --- a/code/modules/vore/appearance/preferences_vr.dm +++ b/code/modules/vore/appearance/preferences_vr.dm @@ -28,6 +28,9 @@ var/r_wing = 30 var/g_wing = 30 var/b_wing = 30 + var/r_wing2 = 30 + var/g_wing2 = 30 + var/b_wing2 = 30 // Custom Species Name var/custom_species