From 3610cfd4ea7e9bffc804320851f0b0a625db1dba Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Tue, 9 Aug 2016 15:00:18 -0400 Subject: [PATCH] Markings refactor, body/marking/head accessory/hair sprite darkening, adds tail markings, more hair styles... Tajara ears are on their head now, fixes a crash bug with tail wagging with body accessories that are split-rendered, adds secondary hair/facial hair themes, fixes issues with human/skrell arm/lower body sprites etc. --- SQL/paradise_schema.sql | 13 +- SQL/paradise_schema_prefixed.sql | 13 +- code/__DEFINES/flags.dm | 11 +- code/__DEFINES/misc.dm | 16 +- code/__DEFINES/mob.dm | 21 +- code/__HELPERS/global_lists.dm | 2 + code/_globalvars/lists/flavor_misc.dm | 5 + code/datums/datacore.dm | 44 +- code/game/dna/dna2.dm | 63 +- code/game/dna/dna2_helpers.dm | 43 +- code/game/dna/genes/vg_powers.dm | 109 ++-- code/modules/client/preference/preferences.dm | 275 +++++++-- .../client/preference/preferences_mysql.dm | 156 ++--- code/modules/customitems/item_defines.dm | 13 +- .../mob/living/carbon/human/appearance.dm | 256 ++++++--- .../living/carbon/human/body_accessories.dm | 6 - code/modules/mob/living/carbon/human/human.dm | 15 +- .../mob/living/carbon/human/human_defines.dm | 10 +- .../living/carbon/human/species/station.dm | 21 +- .../mob/living/carbon/human/update_icons.dm | 276 ++++----- .../mob/new_player/preferences_setup.dm | 101 +++- .../mob/new_player/sprite_accessories.dm | 539 +++++++++++++++--- code/modules/nano/modules/human_appearance.dm | 162 +++++- code/modules/surgery/limb_reattach.dm | 4 +- code/modules/surgery/organs/organ_external.dm | 4 +- code/modules/surgery/organs/organ_icon.dm | 22 +- .../surgery/organs/subtypes/standard.dm | 18 + icons/effects/species.dmi | Bin 45505 -> 45274 bytes icons/mob/body_accessory.dmi | Bin 17768 -> 57180 bytes icons/mob/human_face.dmi | Bin 71874 -> 71679 bytes icons/mob/human_races/r_def_lizard.dmi | Bin 4419 -> 2086 bytes icons/mob/human_races/r_def_tajaran.dmi | Bin 4592 -> 2016 bytes icons/mob/human_races/r_human.dmi | Bin 8152 -> 8175 bytes icons/mob/human_races/r_lizard.dmi | Bin 1900 -> 2105 bytes icons/mob/human_races/r_skrell.dmi | Bin 4773 -> 1962 bytes icons/mob/human_races/r_tajaran.dmi | Bin 5987 -> 2368 bytes icons/mob/human_races/r_vulpkanin.dmi | Bin 4848 -> 2028 bytes nano/templates/appearance_changer.tmpl | 65 ++- 38 files changed, 1686 insertions(+), 597 deletions(-) diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index ec34b6632f3..1069dd6b2d6 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -33,23 +33,28 @@ CREATE TABLE `characters` ( `hair_red` smallint(4) NOT NULL, `hair_green` smallint(4) NOT NULL, `hair_blue` smallint(4) NOT NULL, + `secondary_hair_red` smallint(4) NOT NULL, + `secondary_hair_green` smallint(4) NOT NULL, + `secondary_hair_blue` smallint(4) NOT NULL, `facial_red` smallint(4) NOT NULL, `facial_green` smallint(4) NOT NULL, `facial_blue` smallint(4) NOT NULL, + `secondary_facial_red` smallint(4) NOT NULL, + `secondary_facial_green` smallint(4) NOT NULL, + `secondary_facial_blue` smallint(4) NOT NULL, `skin_tone` smallint(4) NOT NULL, `skin_red` smallint(4) NOT NULL, `skin_green` smallint(4) NOT NULL, `skin_blue` smallint(4) NOT NULL, - `markings_red` smallint(4) NOT NULL, - `markings_green` smallint(4) NOT NULL, - `markings_blue` smallint(4) NOT NULL, + `marking_colours` varchar(255) NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', `head_accessory_red` smallint(4) NOT NULL, `head_accessory_green` smallint(4) NOT NULL, `head_accessory_blue` smallint(4) NOT NULL, `hair_style_name` varchar(45) NOT NULL, `facial_style_name` varchar(45) NOT NULL, - `marking_style_name` varchar(45) NOT NULL, + `marking_styles` varchar(255) NOT NULL DEFAULT 'head=None&body=None&tail=None', `head_accessory_style_name` varchar(45) NOT NULL, + `alt_head_name` varchar(45) NOT NULL, `eyes_red` smallint(4) NOT NULL, `eyes_green` smallint(4) NOT NULL, `eyes_blue` smallint(4) NOT NULL, diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index b5115a93caf..55e71aa2aab 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -33,23 +33,28 @@ CREATE TABLE `SS13_characters` ( `hair_red` smallint(4) NOT NULL, `hair_green` smallint(4) NOT NULL, `hair_blue` smallint(4) NOT NULL, + `secondary_hair_red` smallint(4) NOT NULL, + `secondary_hair_green` smallint(4) NOT NULL, + `secondary_hair_blue` smallint(4) NOT NULL, `facial_red` smallint(4) NOT NULL, `facial_green` smallint(4) NOT NULL, `facial_blue` smallint(4) NOT NULL, + `secondary_facial_red` smallint(4) NOT NULL, + `secondary_facial_green` smallint(4) NOT NULL, + `secondary_facial_blue` smallint(4) NOT NULL, `skin_tone` smallint(4) NOT NULL, `skin_red` smallint(4) NOT NULL, `skin_green` smallint(4) NOT NULL, `skin_blue` smallint(4) NOT NULL, - `markings_red` smallint(4) NOT NULL, - `markings_green` smallint(4) NOT NULL, - `markings_blue` smallint(4) NOT NULL, + `marking_colours` varchar(255) NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', `head_accessory_red` smallint(4) NOT NULL, `head_accessory_green` smallint(4) NOT NULL, `head_accessory_blue` smallint(4) NOT NULL, `hair_style_name` varchar(45) NOT NULL, `facial_style_name` varchar(45) NOT NULL, - `marking_style_name` varchar(45) NOT NULL, + `marking_styles` varchar(255) NOT NULL DEFAULT 'head=None&body=None&tail=None', `head_accessory_style_name` varchar(45) NOT NULL, + `alt_head_name` varchar(45) NOT NULL, `eyes_red` smallint(4) NOT NULL, `eyes_green` smallint(4) NOT NULL, `eyes_blue` smallint(4) NOT NULL, diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 2b2adbdbaf2..e7966690a8e 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -59,10 +59,13 @@ #define HAS_SKIN_TONE 64 #define HAS_ICON_SKIN_TONE 128 #define HAS_SKIN_COLOR 256 -#define HAS_MARKINGS 512 -#define TAIL_WAGGING 1024 -#define NO_EYES 2048 -#define HAS_FUR 4096 +#define HAS_HEAD_MARKINGS 512 +#define HAS_BODY_MARKINGS 1024 +#define HAS_TAIL_MARKINGS 2048 +#define TAIL_WAGGING 4096 +#define NO_EYES 8192 +#define HAS_FUR 16384 +#define HAS_ALT_HEADS 32768 //Species Diet Flags #define DIET_CARN 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index cbd39a49a21..b8ae6850490 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -214,14 +214,14 @@ #define GLOVES_LAYER 11 #define EARS_LAYER 12 #define SUIT_LAYER 13 -#define GLASSES_LAYER 14 -#define BELT_LAYER 15 //Possible make this an overlay of somethign required to wear a belt? -#define SUIT_STORE_LAYER 16 -#define BACK_LAYER 17 -#define TAIL_LAYER 18 //bs12 specific. this hack is probably gonna come back to haunt me -#define HAIR_LAYER 19 //TODO: make part of head layer? -#define HEAD_ACCESSORY_LAYER 20 -#define FHAIR_LAYER 21 +#define BELT_LAYER 14 //Possible make this an overlay of somethign required to wear a belt? +#define SUIT_STORE_LAYER 15 +#define BACK_LAYER 16 +#define HAIR_LAYER 17 //TODO: make part of head layer? +#define HEAD_ACCESSORY_LAYER 18 +#define FHAIR_LAYER 19 +#define TAIL_LAYER 20 //bs12 specific. this hack is probably gonna come back to haunt me +#define GLASSES_LAYER 21 #define FACEMASK_LAYER 22 #define HEAD_LAYER 23 #define COLLAR_LAYER 24 diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm index 736ca0d291f..5d9aba0e3df 100644 --- a/code/__DEFINES/mob.dm +++ b/code/__DEFINES/mob.dm @@ -72,15 +72,18 @@ #define APPEARANCE_SKIN 8 #define APPEARANCE_HAIR 16 #define APPEARANCE_HAIR_COLOR 32 -#define APPEARANCE_FACIAL_HAIR 64 -#define APPEARANCE_FACIAL_HAIR_COLOR 128 -#define APPEARANCE_EYE_COLOR 256 -#define APPEARANCE_ALL_HAIR APPEARANCE_HAIR|APPEARANCE_HAIR_COLOR|APPEARANCE_FACIAL_HAIR|APPEARANCE_FACIAL_HAIR_COLOR -#define APPEARANCE_HEAD_ACCESSORY 512 -#define APPEARANCE_MARKINGS 1024 -#define APPEARANCE_BODY_ACCESSORY 2048 -#define APPEARANCE_ALL_BODY APPEARANCE_ALL_HAIR|APPEARANCE_HEAD_ACCESSORY|APPEARANCE_MARKINGS|APPEARANCE_BODY_ACCESSORY -#define APPEARANCE_ALL 4095 +#define APPEARANCE_SECONDARY_HAIR_COLOR 64 +#define APPEARANCE_FACIAL_HAIR 128 +#define APPEARANCE_FACIAL_HAIR_COLOR 256 +#define APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR 512 +#define APPEARANCE_EYE_COLOR 1024 +#define APPEARANCE_ALL_HAIR APPEARANCE_HAIR|APPEARANCE_HAIR_COLOR|APPEARANCE_SECONDARY_HAIR_COLOR|APPEARANCE_FACIAL_HAIR|APPEARANCE_FACIAL_HAIR_COLOR|APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR +#define APPEARANCE_HEAD_ACCESSORY 2048 +#define APPEARANCE_MARKINGS 4096 +#define APPEARANCE_BODY_ACCESSORY 8192 +#define APPEARANCE_ALT_HEAD 16384 +#define APPEARANCE_ALL_BODY APPEARANCE_ALL_HAIR|APPEARANCE_HEAD_ACCESSORY|APPEARANCE_MARKINGS|APPEARANCE_BODY_ACCESSORY|APPEARANCE_ALT_HEAD +#define APPEARANCE_ALL 32767 // Intents #define I_HELP "help" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 7398518bb03..ed0b7887e5a 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -18,6 +18,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f) + //alt heads + init_sprite_accessory_subtypes(/datum/sprite_accessory/alt_heads, alt_heads_list) init_subtypes(/datum/surgery_step, surgery_steps) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index d409d6e54c9..77d404a741a 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -3,6 +3,9 @@ var/global/list/head_accessory_styles_list = list() //stores /datum/sprite_accessory/head_accessory indexed by name //Marking styles var/global/list/marking_styles_list = list() //stores /datum/sprite_accessory/body_markings indexed by name +var/global/list/head_marking_styles_list = list() +var/global/list/body_marking_styles_list = list() +var/global/list/tail_marking_styles_list = list() //Hairstyles var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name var/global/list/hair_styles_male_list = list() @@ -23,6 +26,8 @@ var/global/list/undershirt_f = list() //stores only undershirt name var/global/list/socks_list = list() //stores /datum/sprite_accessory/socks indexed by name var/global/list/socks_m = list() //stores only socks name var/global/list/socks_f = list() //stores only socks name + //Alt Heads +var/global/list/alt_heads_list = list() //stores /datum/sprite_accessory/alt_heads indexed by name //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index f9c3ce39b08..ea1a82fc6fd 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -140,7 +140,12 @@ proc/get_id_photo(var/mob/living/carbon/human/H) var/icon/temp temp = new /icon(icobase, "groin_[g]") preview_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon(icobase, "head_[g]") + var/head = "head" + if(head_organ.alt_head && head_organ.species.bodyflags & HAS_ALT_HEADS) + var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[head_organ.alt_head] + if(alternate_head.icon_state) + head = alternate_head.icon_state + temp = new /icon(icobase, "[head]_[g]") preview_icon.Blend(temp, ICON_OVERLAY) //Tail @@ -182,6 +187,13 @@ proc/get_id_photo(var/mob/living/carbon/human/H) hair_s.Blend(rgb(H.r_skin, H.g_skin, H.b_skin, 160), ICON_ADD) else hair_s.Blend(rgb(head_organ.r_hair, head_organ.g_hair, head_organ.b_hair), ICON_ADD) + + if(hair_style.secondary_theme) + var/icon/hair_secondary_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_style.secondary_theme]_s") + if(!hair_style.no_sec_colour) + hair_secondary_s.Blend(rgb(head_organ.r_hair_sec, head_organ.g_hair_sec, head_organ.b_hair_sec), ICON_ADD) + hair_s.Blend(hair_secondary_s, ICON_OVERLAY) + face_s.Blend(hair_s, ICON_OVERLAY) //Head Accessory @@ -199,15 +211,33 @@ proc/get_id_photo(var/mob/living/carbon/human/H) facial_s.Blend(rgb(H.r_skin, H.g_skin, H.b_skin, 160), ICON_ADD) else facial_s.Blend(rgb(head_organ.r_facial, head_organ.g_facial, head_organ.b_facial), ICON_ADD) + + if(facial_hair_style.secondary_theme) + var/icon/facial_secondary_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_[facial_hair_style.secondary_theme]_s") + if(!facial_hair_style.no_sec_colour) + facial_secondary_s.Blend(rgb(head_organ.r_facial_sec, head_organ.g_facial_sec, head_organ.b_facial_sec), ICON_ADD) + facial_s.Blend(facial_secondary_s, ICON_OVERLAY) + face_s.Blend(facial_s, ICON_OVERLAY) //Markings - if(H.species.bodyflags & HAS_MARKINGS) - var/datum/sprite_accessory/marking_style = marking_styles_list[H.m_style] - if(marking_style && marking_style.species_allowed) - var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") - markings_s.Blend(rgb(H.r_markings, H.g_markings, H.b_markings), ICON_ADD) - face_s.Blend(markings_s, ICON_OVERLAY) + if((H.species.bodyflags & HAS_HEAD_MARKINGS) || (H.species.bodyflags & HAS_BODY_MARKINGS)) + var/list/marking_styles = params2list(H.m_styles) + var/list/marking_colours = params2list(H.m_colours) + if(H.species.bodyflags & HAS_BODY_MARKINGS) //Body markings. + var/body_marking = marking_styles["body"] + var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + if(body_marking_style && body_marking_style.species_allowed) + var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") + b_marking_s.Blend(rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8))), ICON_ADD) + face_s.Blend(b_marking_s, ICON_OVERLAY) + if(H.species.bodyflags & HAS_HEAD_MARKINGS) //Head markings. + var/head_marking = marking_styles["head"] + var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + if(head_marking_style && head_marking_style.species_allowed) + var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") + h_marking_s.Blend(rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8))), ICON_ADD) + face_s.Blend(h_marking_s, ICON_OVERLAY) preview_icon.Blend(face_s, ICON_OVERLAY) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 4224ad1aa5e..114fcb1598f 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -30,19 +30,27 @@ #define DNA_UI_HACC_R 11 #define DNA_UI_HACC_G 12 #define DNA_UI_HACC_B 13 -#define DNA_UI_MARK_R 14 -#define DNA_UI_MARK_G 15 -#define DNA_UI_MARK_B 16 -#define DNA_UI_EYES_R 17 -#define DNA_UI_EYES_G 18 -#define DNA_UI_EYES_B 19 -#define DNA_UI_GENDER 20 -#define DNA_UI_BEARD_STYLE 21 -#define DNA_UI_HAIR_STYLE 22 +#define DNA_UI_HEAD_MARK_R 14 +#define DNA_UI_HEAD_MARK_G 15 +#define DNA_UI_HEAD_MARK_B 16 +#define DNA_UI_BODY_MARK_R 17 +#define DNA_UI_BODY_MARK_G 18 +#define DNA_UI_BODY_MARK_B 19 +#define DNA_UI_TAIL_MARK_R 20 +#define DNA_UI_TAIL_MARK_G 21 +#define DNA_UI_TAIL_MARK_B 22 +#define DNA_UI_EYES_R 23 +#define DNA_UI_EYES_G 24 +#define DNA_UI_EYES_B 25 +#define DNA_UI_GENDER 26 +#define DNA_UI_BEARD_STYLE 27 +#define DNA_UI_HAIR_STYLE 28 /*#define DNA_UI_BACC_STYLE 23*/ -#define DNA_UI_HACC_STYLE 23 -#define DNA_UI_MARK_STYLE 24 -#define DNA_UI_LENGTH 24 // Update this when you add something, or you WILL break shit. +#define DNA_UI_HACC_STYLE 29 +#define DNA_UI_HEAD_MARK_STYLE 30 +#define DNA_UI_BODY_MARK_STYLE 31 +#define DNA_UI_TAIL_MARK_STYLE 32 +#define DNA_UI_LENGTH 32 // Update this when you add something, or you WILL break shit. #define DNA_SE_LENGTH 55 // Was STRUCDNASIZE, size 27. 15 new blocks added = 42, plus room to grow. @@ -154,9 +162,16 @@ var/global/list/bad_blocks[0] var/bodyacc = character.body_accessory*/ // Markings - if(!character.m_style) - character.m_style = "None" - var/marks = marking_styles_list.Find(character.m_style) + if(!character.m_styles) + character.m_styles = "head=None;\ + body=None;\ + tail=None" + + var/list/marking_styles = params2list(character.m_styles) + var/list/marking_colours = params2list(character.m_colours) + var/head_marks = marking_styles_list.Find(marking_styles["head"]) + var/body_marks = marking_styles_list.Find(marking_styles["body"]) + var/tail_marks = marking_styles_list.Find(marking_styles["tail"]) SetUIValueRange(DNA_UI_HAIR_R, H.r_hair, 255, 1) SetUIValueRange(DNA_UI_HAIR_G, H.g_hair, 255, 1) @@ -178,9 +193,17 @@ var/global/list/bad_blocks[0] SetUIValueRange(DNA_UI_HACC_G, H.g_headacc, 255, 1) SetUIValueRange(DNA_UI_HACC_B, H.b_headacc, 255, 1) - SetUIValueRange(DNA_UI_MARK_R, character.r_markings, 255, 1) - SetUIValueRange(DNA_UI_MARK_G, character.g_markings, 255, 1) - SetUIValueRange(DNA_UI_MARK_B, character.b_markings, 255, 1) + SetUIValueRange(DNA_UI_HEAD_MARK_R, hex2num(copytext(marking_colours["head"], 2, 4)), 255, 1) + SetUIValueRange(DNA_UI_HEAD_MARK_G, hex2num(copytext(marking_colours["head"], 4, 6)), 255, 1) + SetUIValueRange(DNA_UI_HEAD_MARK_B, hex2num(copytext(marking_colours["head"], 6, 8)), 255, 1) + + SetUIValueRange(DNA_UI_BODY_MARK_R, hex2num(copytext(marking_colours["body"], 2, 4)), 255, 1) + SetUIValueRange(DNA_UI_BODY_MARK_G, hex2num(copytext(marking_colours["body"], 4, 6)), 255, 1) + SetUIValueRange(DNA_UI_BODY_MARK_B, hex2num(copytext(marking_colours["body"], 6, 8)), 255, 1) + + SetUIValueRange(DNA_UI_TAIL_MARK_R, hex2num(copytext(marking_colours["tail"], 2, 4)), 255, 1) + SetUIValueRange(DNA_UI_TAIL_MARK_G, hex2num(copytext(marking_colours["tail"], 4, 6)), 255, 1) + SetUIValueRange(DNA_UI_TAIL_MARK_B, hex2num(copytext(marking_colours["tail"], 6, 8)), 255, 1) SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.s_tone, 220, 1) // Value can be negative. @@ -190,7 +213,9 @@ var/global/list/bad_blocks[0] SetUIValueRange(DNA_UI_BEARD_STYLE, beard, facial_hair_styles_list.len, 1) /*SetUIValueRange(DNA_UI_BACC_STYLE, bodyacc, facial_hair_styles_list.len, 1)*/ SetUIValueRange(DNA_UI_HACC_STYLE, headacc, head_accessory_styles_list.len, 1) - SetUIValueRange(DNA_UI_MARK_STYLE, marks, marking_styles_list.len, 1) + SetUIValueRange(DNA_UI_HEAD_MARK_STYLE, head_marks, marking_styles_list.len, 1) + SetUIValueRange(DNA_UI_BODY_MARK_STYLE, body_marks, marking_styles_list.len, 1) + SetUIValueRange(DNA_UI_TAIL_MARK_STYLE, tail_marks, marking_styles_list.len, 1) UpdateUI() diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index 5bc984b11ac..9b0bd39dc9a 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -152,10 +152,10 @@ head_organ.g_headacc = dna.GetUIValueRange(DNA_UI_HACC_G, 255) head_organ.b_headacc = dna.GetUIValueRange(DNA_UI_HACC_B, 255) - H.r_markings = dna.GetUIValueRange(DNA_UI_MARK_R, 255) - H.g_markings = dna.GetUIValueRange(DNA_UI_MARK_G, 255) - H.b_markings = dna.GetUIValueRange(DNA_UI_MARK_B, 255) - + var/list/marking_colours = params2list(H.m_colours) + marking_colours["head"] = "#[num2hex(dna.GetUIValueRange(DNA_UI_HEAD_MARK_R,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_HEAD_MARK_G,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_HEAD_MARK_B,255),2)]" + marking_colours["body"] = "#[num2hex(dna.GetUIValueRange(DNA_UI_BODY_MARK_R,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_BODY_MARK_G,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_BODY_MARK_B,255),2)]" + marking_colours["tail"] = "#[num2hex(dna.GetUIValueRange(DNA_UI_TAIL_MARK_R,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_TAIL_MARK_G,255),2)][num2hex(dna.GetUIValueRange(DNA_UI_TAIL_MARK_B,255),2)]" H.update_eyes() @@ -181,16 +181,43 @@ if((0 < headacc) && (headacc <= head_accessory_styles_list.len)) head_organ.ha_style = head_accessory_styles_list[headacc] - //Markings - var/marks = dna.GetUIValueRange(DNA_UI_MARK_STYLE,marking_styles_list.len) - if((0 < marks) && (marks <= marking_styles_list.len)) - H.m_style = marking_styles_list[marks] + var/number_head_marks = 0 + var/number_body_marks = 0 + var/number_tail_marks = 0 + for(var/m in marking_styles_list) + var/datum/sprite_accessory/body_markings/marking = marking_styles_list[m] + if(marking.marking_location == "head") + number_head_marks++ + else if(marking.marking_location == "body") + number_body_marks++ + else if(marking.marking_location == "tail") + number_tail_marks++ + + //Head Markings + var/head_marks = dna.GetUIValueRange(DNA_UI_HEAD_MARK_STYLE,marking_styles_list.len) + if((0 < head_marks) && (head_marks <= number_head_marks)) + var/list/marking_styles = params2list(H.m_styles) + marking_styles["head"] = marking_styles_list[head_marks] + H.m_styles = list2params(marking_styles) + //Body Markings + var/body_marks = dna.GetUIValueRange(DNA_UI_BODY_MARK_STYLE,marking_styles_list.len) + if((0 < body_marks) && (body_marks <= number_body_marks)) + var/list/marking_styles = params2list(H.m_styles) + marking_styles["body"] = marking_styles_list[body_marks] + H.m_styles = list2params(marking_styles) + //Tail Markings + var/tail_marks = dna.GetUIValueRange(DNA_UI_TAIL_MARK_STYLE,marking_styles_list.len) + if((0 < tail_marks) && (tail_marks <= number_tail_marks)) + var/list/marking_styles = params2list(H.m_styles) + marking_styles["tail"] = marking_styles_list[tail_marks] + H.m_styles = list2params(marking_styles) H.force_update_limbs() H.update_eyes() H.update_hair() H.update_fhair() H.update_markings() + H.update_tail_layer() H.update_head_accessory() return 1 diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm index 7ed7f3fea97..0f1c700a17f 100644 --- a/code/game/dna/genes/vg_powers.dm +++ b/code/game/dna/genes/vg_powers.dm @@ -46,63 +46,58 @@ var/new_eyes = input("Please select eye color.", "Character Generation", rgb(M.r_eyes,M.g_eyes,M.b_eyes)) as null|color if(new_eyes) - M.r_eyes = hex2num(copytext(new_eyes, 2, 4)) - M.g_eyes = hex2num(copytext(new_eyes, 4, 6)) - M.b_eyes = hex2num(copytext(new_eyes, 6, 8)) M.change_eye_color(M.r_eyes, M.g_eyes, M.b_eyes) + //Alt heads. + if(head_organ.species.bodyflags & HAS_ALT_HEADS) + var/list/valid_alt_heads = M.generate_valid_alt_heads() + var/new_alt_head = input("Please select alternate head", "Character Generation", head_organ.alt_head) as null|anything in valid_alt_heads + if(new_alt_head) + M.change_alt_head(new_alt_head) + // hair var/list/valid_hairstyles = M.generate_valid_hairstyles() var/new_style = input("Please select hair style", "Character Generation", head_organ.h_style) as null|anything in valid_hairstyles // if new style selected (not cancel) if(new_style) - head_organ.h_style = new_style + M.change_hair(new_style) var/new_hair = input("Please select hair color.", "Character Generation", rgb(head_organ.r_hair, head_organ.g_hair, head_organ.b_hair)) as null|color if(new_hair) - head_organ.r_hair = hex2num(copytext(new_hair, 2, 4)) - head_organ.g_hair = hex2num(copytext(new_hair, 4, 6)) - head_organ.b_hair = hex2num(copytext(new_hair, 6, 8)) + M.change_hair_color(hex2num(copytext(new_hair, 2, 4)), hex2num(copytext(new_hair, 4, 6)), hex2num(copytext(new_hair, 6, 8))) + + var/datum/sprite_accessory/hair_style = hair_styles_list[head_organ.h_style] + if(hair_style.secondary_theme && !hair_style.no_sec_colour) + new_hair = input("Please select secondary hair color.", "Character Generation", rgb(head_organ.r_hair_sec, head_organ.g_hair_sec, head_organ.b_hair_sec)) as null|color + M.change_hair_color(hex2num(copytext(new_hair, 2, 4)), hex2num(copytext(new_hair, 4, 6)), hex2num(copytext(new_hair, 6, 8)), 1) // facial hair var/list/valid_facial_hairstyles = M.generate_valid_facial_hairstyles() new_style = input("Please select facial style", "Character Generation", head_organ.f_style) as null|anything in valid_facial_hairstyles if(new_style) - head_organ.f_style = new_style + M.change_facial_hair(new_style) var/new_facial = input("Please select facial hair color.", "Character Generation", rgb(head_organ.r_facial, head_organ.g_facial, head_organ.b_facial)) as null|color if(new_facial) - head_organ.r_facial = hex2num(copytext(new_facial, 2, 4)) - head_organ.g_facial = hex2num(copytext(new_facial, 4, 6)) - head_organ.b_facial = hex2num(copytext(new_facial, 6, 8)) + M.change_facial_hair_color(hex2num(copytext(new_facial, 2, 4)), hex2num(copytext(new_facial, 4, 6)), hex2num(copytext(new_facial, 6, 8))) + + var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[head_organ.f_style] + if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour) + new_facial = input("Please select secondary facial hair color.", "Character Generation", rgb(head_organ.r_facial_sec, head_organ.g_facial_sec, head_organ.b_facial_sec)) as null|color + M.change_facial_hair_color(hex2num(copytext(new_facial, 2, 4)), hex2num(copytext(new_facial, 4, 6)), hex2num(copytext(new_facial, 6, 8)), 1) //Head accessory. if(head_organ.species.bodyflags & HAS_HEAD_ACCESSORY) var/list/valid_head_accessories = M.generate_valid_head_accessories() var/new_head_accessory = input("Please select head accessory style", "Character Generation", head_organ.ha_style) as null|anything in valid_head_accessories if(new_head_accessory) - head_organ.ha_style = new_head_accessory + M.change_head_accessory(new_head_accessory) var/new_head_accessory_colour = input("Please select head accessory colour.", "Character Generation", rgb(head_organ.r_headacc, head_organ.g_headacc, head_organ.b_headacc)) as null|color if(new_head_accessory_colour) - head_organ.r_headacc = hex2num(copytext(new_head_accessory_colour, 2, 4)) - head_organ.g_headacc = hex2num(copytext(new_head_accessory_colour, 4, 6)) - head_organ.b_headacc = hex2num(copytext(new_head_accessory_colour, 6, 8)) - - //Body markings. - if(M.species.bodyflags & HAS_MARKINGS) - var/list/valid_markings = M.generate_valid_markings() - var/new_marking = input("Please select marking style", "Character Generation", M.m_style) as null|anything in valid_markings - if(new_marking) - M.m_style = new_marking - - var/new_marking_colour = input("Please select marking colour.", "Character Generation", rgb(M.r_markings, M.g_markings, M.b_markings)) as null|color - if(new_marking_colour) - M.r_markings = hex2num(copytext(new_marking_colour, 2, 4)) - M.g_markings = hex2num(copytext(new_marking_colour, 4, 6)) - M.b_markings = hex2num(copytext(new_marking_colour, 6, 8)) + M.change_head_accessory_color(hex2num(copytext(new_head_accessory_colour, 2, 4)), hex2num(copytext(new_head_accessory_colour, 4, 6)), hex2num(copytext(new_head_accessory_colour, 6, 8))) //Body accessory. if(M.species.tail && M.species.bodyflags & HAS_TAIL) @@ -110,18 +105,60 @@ if(valid_body_accessories.len > 1) //By default valid_body_accessories will always have at the very least a 'none' entry populating the list, even if the user's species is not present in any of the list items. var/new_body_accessory = input("Please select body accessory style", "Character Generation", M.body_accessory) as null|anything in valid_body_accessories if(new_body_accessory) - M.body_accessory = body_accessory_by_name[new_body_accessory] + M.change_body_accessory(new_body_accessory) + + //Head markings. + if(M.species.bodyflags & HAS_HEAD_MARKINGS) + var/list/marking_styles = params2list(M.m_styles) + var/list/valid_head_markings = M.generate_valid_markings("head") + var/new_marking = input("Please select head marking style", "Character Generation", marking_styles["head"]) as null|anything in valid_head_markings + if(new_marking) + M.change_markings(new_marking, "head") + + var/list/marking_colours = params2list(M.m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/new_marking_colour = input("Please select head marking colour.", "Character Generation", rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))) as null|color + if(new_marking_colour) + M.change_marking_color(new_marking_colour, "head") + //Body markings. + if(M.species.bodyflags & HAS_BODY_MARKINGS) + var/list/marking_styles = params2list(M.m_styles) + var/list/valid_body_markings = M.generate_valid_markings("body") + var/new_marking = input("Please select body marking style", "Character Generation", marking_styles["body"]) as null|anything in valid_body_markings + if(new_marking) + M.change_markings(new_marking, "body") + + var/list/marking_colours = params2list(M.m_colours) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) + var/new_marking_colour = input("Please select body marking colour.", "Character Generation", rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))) as null|color + if(new_marking_colour) + M.change_marking_color(new_marking_colour, "body") + //Tail markings. + if(M.species.bodyflags & HAS_TAIL_MARKINGS) + var/list/marking_styles = params2list(M.m_styles) + var/list/valid_tail_markings = M.generate_valid_markings("tail") + var/new_marking = input("Please select tail marking style", "Character Generation", marking_styles["tail"]) as null|anything in valid_tail_markings + if(new_marking) + M.change_markings(new_marking, "tail") + + var/list/marking_colours = params2list(M.m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + var/new_marking_colour = input("Please select tail marking colour.", "Character Generation", rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))) as null|color + if(new_marking_colour) + M.change_marking_color(new_marking_colour, "tail") //Skin tone. if(M.species.bodyflags & HAS_SKIN_TONE) var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", M.s_tone) as null|text if(!new_tone) new_tone = 35 - M.s_tone = 35 - max(min(round(text2num(new_tone)), 220), 1) + else + new_tone = 35 - max(min(round(text2num(new_tone)), 220), 1) + M.change_skin_tone(new_tone) if(M.species.bodyflags & HAS_ICON_SKIN_TONE) var/prompt = "Please select skin tone: 1-[M.species.icon_skin_tones.len] (" - for(var/i = 1; i <= M.species.icon_skin_tones.len; i++) + for(var/i = 1 to M.species.icon_skin_tones.len) prompt += "[i] = [M.species.icon_skin_tones[i]]" if(i != M.species.icon_skin_tones.len) prompt += ", " @@ -130,18 +167,16 @@ var/new_tone = input(prompt, "Character Generation", M.s_tone) as null|text if(!new_tone) new_tone = 0 - M.s_tone = max(min(round(text2num(new_tone)), M.species.icon_skin_tones.len), 1) + else + new_tone = max(min(round(text2num(new_tone)), M.species.icon_skin_tones.len), 1) + M.change_skin_tone(new_tone) //Skin colour. if(M.species.bodyflags & HAS_SKIN_COLOR) var/new_body_colour = input("Please select body colour.", "Character Generation", rgb(M.r_skin, M.g_skin, M.b_skin)) as null|color if(new_body_colour) - M.r_skin = hex2num(copytext(new_body_colour, 2, 4)) - M.g_skin = hex2num(copytext(new_body_colour, 4, 6)) - M.b_skin = hex2num(copytext(new_body_colour, 6, 8)) + M.change_skin_color(hex2num(copytext(new_body_colour, 2, 4)), hex2num(copytext(new_body_colour, 4, 6)), hex2num(copytext(new_body_colour, 6, 8))) - M.force_update_limbs() - M.regenerate_icons() M.update_dna() M.visible_message("[src] morphs and changes [M.get_visible_gender() == MALE ? "his" : M.get_visible_gender() == FEMALE ? "her" : "their"] appearance!", "You change your appearance!", "Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!") diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index c28f472020d..5f0d31f9c26 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -110,18 +110,26 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/r_headacc = 0 //Head accessory colour var/g_headacc = 0 //Head accessory colour var/b_headacc = 0 //Head accessory colour - var/m_style = "None" //Marking style - var/r_markings = 0 //Marking colour - var/g_markings = 0 //Marking colour - var/b_markings = 0 //Marking colour + var/m_styles = "head=None;\ + body=None;\ + tail=None" //Marking styles. + var/m_colours = "head=#000000;\ + body=#000000;\ + tail=#000000" //Marking colours. var/h_style = "Bald" //Hair type var/r_hair = 0 //Hair color var/g_hair = 0 //Hair color var/b_hair = 0 //Hair color - var/f_style = "Shaved" //Face hair type - var/r_facial = 0 //Face hair color - var/g_facial = 0 //Face hair color - var/b_facial = 0 //Face hair color + var/r_hair_sec = 0 //Secondary hair color + var/g_hair_sec = 0 //Secondary hair color + var/b_hair_sec = 0 //Secondary hair color + var/f_style = "Shaved" //Facial hair type + var/r_facial = 0 //Facial hair color + var/g_facial = 0 //Facial hair color + var/b_facial = 0 //Facial hair color + var/r_facial_sec = 0 //Secondary facial hair color + var/g_facial_sec = 0 //Secondary facial hair color + var/b_facial_sec = 0 //Secondary facial hair color var/s_tone = 0 //Skin tone var/r_skin = 0 //Skin color var/g_skin = 0 //Skin color @@ -129,6 +137,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/r_eyes = 0 //Eye color var/g_eyes = 0 //Eye color var/b_eyes = 0 //Eye color + var/alt_head = "None" //Alt head style. var/species = "Human" var/language = "None" //Secondary language @@ -286,18 +295,44 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "[ha_style] " dat += "Color [color_square(r_headacc, g_headacc, b_headacc)]
" - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species that have body markings. + if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings. + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + dat += "Head Markings: " + dat += "[marking_styles["head"]]" + dat += "Color [color_square(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))]
" + if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos. + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) dat += "Body Markings: " - dat += "[m_style]" - dat += "Color [color_square(r_markings, g_markings, b_markings)]
" + dat += "[marking_styles["body"]]" + dat += "Color [color_square(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))]
" + if(species in list("Vox", "Vulpkanin")) //Species with tail markings. + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + dat += "Tail Markings: " + dat += "[marking_styles["tail"]]" + dat += "Color [color_square(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))]
" dat += "Hair: " dat += "[h_style]" - dat += "Color [color_square(r_hair, g_hair, b_hair)]
" + dat += "Color [color_square(r_hair, g_hair, b_hair)]" + var/datum/sprite_accessory/temp_hair_style = hair_styles_list[h_style] + if(temp_hair_style.secondary_theme && !temp_hair_style.no_sec_colour) + dat += " Color #2 [color_square(r_hair_sec, g_hair_sec, b_hair_sec)]" + dat += "
" dat += "Facial Hair: " dat += "[f_style ? "[f_style]" : "Shaved"]" - dat += "Color [color_square(r_facial, g_facial, b_facial)]
" + dat += "Color [color_square(r_facial, g_facial, b_facial)]" + var/datum/sprite_accessory/temp_facial_hair_style = facial_hair_styles_list[f_style] + if(temp_facial_hair_style.secondary_theme && !temp_facial_hair_style.no_sec_colour) + dat += " Color #2 [color_square(r_facial_sec, g_facial_sec, b_facial_sec)]" + dat += "
" + if(species != "Machine") dat += "Eyes: " @@ -320,6 +355,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Character Records
" dat += "

Limbs

" + if(species in list("Unathi")) //Species with alt heads. + dat += "Alternate Head: " + dat += "[alt_head]
" dat += "Limbs and Parts: Adjust
" if(species != "Slime People" && species != "Machine") dat += "Internal Organs: Adjust
" @@ -1161,7 +1199,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(new_age) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("species") - var/list/new_species = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin") var/prev_species = species // var/whitelisted = 0 @@ -1231,9 +1268,18 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts socks = random_socks(gender, species) //reset hair colour and skin colour - r_hair = 0//hex2num(copytext(new_hair, 2, 4)) - g_hair = 0//hex2num(copytext(new_hair, 4, 6)) - b_hair = 0//hex2num(copytext(new_hair, 6, 8)) + r_hair = 0 + g_hair = 0 + b_hair = 0 + r_hair_sec = 0 + g_hair_sec = 0 + b_hair_sec = 0 + r_facial = 0 + g_facial = 0 + b_facial = 0 + r_facial_sec = 0 + g_facial_sec = 0 + b_facial_sec = 0 s_tone = 0 @@ -1243,7 +1289,11 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts b_skin = 0 ha_style = "None" // No Vulp ears on Unathi - m_style = "None" // No Unathi markings on Tajara + m_styles = "head=None;\ + body=None;\ + tail=None" // No Unathi markings on Tajara + + alt_head = "None" //No alt heads on species that don't have them. body_accessory = null //no vulptail on humans damnit @@ -1294,6 +1344,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts g_hair = hex2num(copytext(new_hair, 4, 6)) b_hair = hex2num(copytext(new_hair, 6, 8)) + if("secondary_hair") + if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) + var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] + if(hair_style.secondary_theme && !hair_style.no_sec_colour) + var/new_hair = input(user, "Choose your character's secondary hair colour:", "Character Preference", rgb(r_hair_sec, g_hair_sec, b_hair_sec)) as color|null + if(new_hair) + r_hair_sec = hex2num(copytext(new_hair, 2, 4)) + g_hair_sec = hex2num(copytext(new_hair, 4, 6)) + b_hair_sec = hex2num(copytext(new_hair, 6, 8)) + if("h_style") var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) @@ -1351,22 +1411,46 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(new_head_accessory_style) ha_style = new_head_accessory_style - if("markings") - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings. - var/input = "Choose the colour of your your character's markings:" - var/new_markings = input(user, input, "Character Preference", rgb(r_markings, g_markings, b_markings)) as color|null - if(new_markings) - r_markings = hex2num(copytext(new_markings, 2, 4)) - g_markings = hex2num(copytext(new_markings, 4, 6)) - b_markings = hex2num(copytext(new_markings, 6, 8)) + if("alt_head") + if(organ_data["head"] == "cyborg") + return + if(species in list("Unathi")) //Species with alt heads. + var/list/valid_alt_heads = list() + valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option + for(var/alternate_head in alt_heads_list) + var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head] + if(!(species in head.species_allowed)) + continue - if("m_style") - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings. + valid_alt_heads[alternate_head] = alt_heads_list[alternate_head] + + var/new_alt_head = input(user, "Choose your character's alternate head style:", "Character Preference") as null|anything in valid_alt_heads + if(new_alt_head) + alt_head = new_alt_head + var/list/marking_styles = params2list(m_styles) + if(marking_styles["head"]) + var/head_marking = marking_styles["head"] + var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking] + if(!head_marking_style.heads_allowed || !(alt_head in head_marking_style.heads_allowed)) + marking_styles["head"] = "None" + m_styles = list2params(marking_styles) + + if("m_style_head") + if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings. var/list/valid_markings = list() + valid_markings["None"] = marking_styles_list["None"] for(var/markingstyle in marking_styles_list) - var/datum/sprite_accessory/M = marking_styles_list[markingstyle] + var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[markingstyle] if(!(species in M.species_allowed)) continue + if(M.marking_location != "head") + continue + if(alt_head && alt_head != "None") + if(!(alt_head in M.heads_allowed)) + continue + else + if(M.heads_allowed) + continue if(species == "Machine") //Species that can use prosthetic heads. var/obj/item/organ/external/head/H = new() @@ -1383,9 +1467,86 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts valid_markings[markingstyle] = marking_styles_list[markingstyle] - var/new_marking_style = input(user, "Choose the style of your character's markings:", "Character Preference", m_style) as null|anything in valid_markings + var/list/marking_styles = params2list(m_styles) + var/new_marking_style = input(user, "Choose the style of your character's head markings:", "Character Preference", marking_styles["head"]) as null|anything in valid_markings if(new_marking_style) - m_style = new_marking_style + marking_styles["head"] = new_marking_style + m_styles = list2params(marking_styles) + + if("m_head_colour") + if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings. + var/input = "Choose the colour of your your character's head markings:" + var/list/marking_colours = params2list(m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))) as color|null + if(new_markings) + marking_colours["head"] = new_markings + m_colours = list2params(marking_colours) + + if("m_style_body") + if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos. + var/list/valid_markings = list() + valid_markings["None"] = marking_styles_list["None"] + for(var/markingstyle in marking_styles_list) + var/datum/sprite_accessory/M = marking_styles_list[markingstyle] + if(!(species in M.species_allowed)) + continue + if(M.marking_location != "body") + continue + + valid_markings[markingstyle] = marking_styles_list[markingstyle] + + var/list/marking_styles = params2list(m_styles) + var/new_marking_style = input(user, "Choose the style of your character's body markings:", "Character Preference", marking_styles["body"]) as null|anything in valid_markings + if(new_marking_style) + marking_styles["body"] = new_marking_style + m_styles = list2params(marking_styles) + + if("m_body_colour") + if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos. + var/input = "Choose the colour of your your character's body markings:" + var/list/marking_colours = params2list(m_colours) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) + var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))) as color|null + if(new_markings) + marking_colours["body"] = new_markings + m_colours = list2params(marking_colours) + + if("m_style_tail") + if(species in list("Vox", "Vulpkanin")) //Species with tail markings. + var/list/valid_markings = list() + valid_markings["None"] = marking_styles_list["None"] + for(var/markingstyle in marking_styles_list) + var/datum/sprite_accessory/body_markings/tail/M = marking_styles_list[markingstyle] + if(M.marking_location != "tail") + continue + if(!(species in M.species_allowed)) + continue + if(!body_accessory) + if(M.tails_allowed) + continue + else + if(!M.tails_allowed || !(body_accessory in M.tails_allowed)) + continue + + valid_markings[markingstyle] = marking_styles_list[markingstyle] + + var/list/marking_styles = params2list(m_styles) + var/new_marking_style = input(user, "Choose the style of your character's tail markings:", "Character Preference", marking_styles["tail"]) as null|anything in valid_markings + + if(new_marking_style) + marking_styles["tail"] = new_marking_style + m_styles = list2params(marking_styles) + + if("m_tail_colour") + if(species in list("Vox", "Vulpkanin")) //Species with tail markings. + var/input = "Choose the colour of your your character's tail markings:" + var/list/marking_colours = params2list(m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))) as color|null + if(new_markings) + marking_colours["tail"] = new_markings + m_colours = list2params(marking_colours) if("body_accessory") var/list/possible_body_accessories = list() @@ -1402,6 +1563,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories if(new_body_accessory) + var/list/marking_styles = params2list(m_styles) + marking_styles["tail"] = "None" + m_styles = list2params(marking_styles) body_accessory = (new_body_accessory == "None") ? null : new_body_accessory if("facial") @@ -1412,6 +1576,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts g_facial = hex2num(copytext(new_facial, 4, 6)) b_facial = hex2num(copytext(new_facial, 6, 8)) + if("secondary_facial") + if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) + var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour) + var/new_facial = input(user, "Choose your character's secondary facial-hair colour:", "Character Preference", rgb(r_facial_sec, g_facial_sec, b_facial_sec)) as color|null + if(new_facial) + r_facial_sec = hex2num(copytext(new_facial, 2, 4)) + g_facial_sec = hex2num(copytext(new_facial, 4, 6)) + b_facial_sec = hex2num(copytext(new_facial, 6, 8)) + if("f_style") var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) @@ -1593,11 +1767,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states if(!new_state) return + var/list/marking_styles = params2list(m_styles) //Handle resetting of head markings if the head is changed. switch(new_state) if("Normal") if(limb == "head") - m_style = "None" - h_style = random_hair_style(gender, species) + marking_styles["head"] = "None" + h_style = hair_styles_list["Bald"] f_style = facial_hair_styles_list["Shaved"] organ_data[limb] = null rlimb_data[limb] = null @@ -1642,11 +1817,15 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models if(subchoice) choice = subchoice - if(limb == "head") - ha_style = "None" - h_style = hair_styles_list["Bald"] - f_style = facial_hair_styles_list["Shaved"] - m_style = "None" + if(limb in list("head", "chest", "groin")) + if(species != "Machine") + return + if(limb == "head") + ha_style = "None" + alt_head = null + h_style = hair_styles_list["Bald"] + f_style = facial_hair_styles_list["Shaved"] + marking_styles["head"] = "None" rlimb_data[limb] = choice organ_data[limb] = "cyborg" if(second_limb) @@ -1657,7 +1836,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts else rlimb_data[second_limb] = choice organ_data[second_limb] = "cyborg" - + m_styles = list2params(marking_styles) //Pass the reset head markings back to the preference variable. if("organs") var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes") if(!organ_name) return @@ -1862,12 +2041,22 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts H.g_hair = g_hair H.b_hair = b_hair + H.r_hair_sec = r_hair_sec + H.g_hair_sec = g_hair_sec + H.b_hair_sec = b_hair_sec + H.r_facial = r_facial H.g_facial = g_facial H.b_facial = b_facial + H.r_facial_sec = r_facial_sec + H.g_facial_sec = g_facial_sec + H.b_facial_sec = b_facial_sec + H.h_style = h_style H.f_style = f_style + + H.alt_head = alt_head //End of head-specific. character.r_skin = r_skin @@ -1956,11 +2145,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts H.g_headacc = g_headacc H.b_headacc = b_headacc H.ha_style = ha_style - if(character.species.bodyflags & HAS_MARKINGS) - character.r_markings = r_markings - character.g_markings = g_markings - character.b_markings = b_markings - character.m_style = m_style + if((character.species.bodyflags & HAS_HEAD_MARKINGS) || (character.species.bodyflags & HAS_BODY_MARKINGS) || (character.species.bodyflags & HAS_TAIL_MARKINGS)) + character.m_colours = m_colours + character.m_styles = m_styles if(body_accessory) character.body_accessory = body_accessory_by_name["[body_accessory]"] diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index f72ac076dff..cd6177a08f1 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -110,23 +110,28 @@ hair_red, hair_green, hair_blue, + secondary_hair_red, + secondary_hair_green, + secondary_hair_blue, facial_red, facial_green, facial_blue, + secondary_facial_red, + secondary_facial_green, + secondary_facial_blue, skin_tone, skin_red, skin_green, skin_blue, - markings_red, - markings_green, - markings_blue, + marking_colours, head_accessory_red, head_accessory_green, head_accessory_blue, hair_style_name, facial_style_name, - marking_style_name, + marking_styles, head_accessory_style_name, + alt_head_name, eyes_red, eyes_green, eyes_blue, @@ -181,63 +186,68 @@ r_hair = text2num(query.item[8]) g_hair = text2num(query.item[9]) b_hair = text2num(query.item[10]) - r_facial = text2num(query.item[11]) - g_facial = text2num(query.item[12]) - b_facial = text2num(query.item[13]) - s_tone = text2num(query.item[14]) - r_skin = text2num(query.item[15]) - g_skin = text2num(query.item[16]) - b_skin = text2num(query.item[17]) - r_markings = text2num(query.item[18]) - g_markings = text2num(query.item[19]) - b_markings = text2num(query.item[20]) - r_headacc = text2num(query.item[21]) - g_headacc = text2num(query.item[22]) - b_headacc = text2num(query.item[23]) - h_style = query.item[24] - f_style = query.item[25] - m_style = query.item[26] - ha_style = query.item[27] - r_eyes = text2num(query.item[28]) - g_eyes = text2num(query.item[29]) - b_eyes = text2num(query.item[30]) - underwear = query.item[31] - undershirt = query.item[32] - backbag = text2num(query.item[33]) - b_type = query.item[34] + r_hair_sec = text2num(query.item[11]) + g_hair_sec = text2num(query.item[12]) + b_hair_sec = text2num(query.item[13]) + r_facial = text2num(query.item[14]) + g_facial = text2num(query.item[15]) + b_facial = text2num(query.item[16]) + r_facial_sec = text2num(query.item[17]) + g_facial_sec = text2num(query.item[18]) + b_facial_sec = text2num(query.item[19]) + s_tone = text2num(query.item[20]) + r_skin = text2num(query.item[21]) + g_skin = text2num(query.item[22]) + b_skin = text2num(query.item[23]) + m_colours = query.item[24] + r_headacc = text2num(query.item[25]) + g_headacc = text2num(query.item[26]) + b_headacc = text2num(query.item[27]) + h_style = query.item[28] + f_style = query.item[29] + m_styles = query.item[30] + ha_style = query.item[31] + alt_head = query.item[32] + r_eyes = text2num(query.item[33]) + g_eyes = text2num(query.item[34]) + b_eyes = text2num(query.item[35]) + underwear = query.item[36] + undershirt = query.item[37] + backbag = text2num(query.item[38]) + b_type = query.item[39] //Jobs - alternate_option = text2num(query.item[35]) - job_support_high = text2num(query.item[36]) - job_support_med = text2num(query.item[37]) - job_support_low = text2num(query.item[38]) - job_medsci_high = text2num(query.item[39]) - job_medsci_med = text2num(query.item[40]) - job_medsci_low = text2num(query.item[41]) - job_engsec_high = text2num(query.item[42]) - job_engsec_med = text2num(query.item[43]) - job_engsec_low = text2num(query.item[44]) - job_karma_high = text2num(query.item[45]) - job_karma_med = text2num(query.item[46]) - job_karma_low = text2num(query.item[47]) + alternate_option = text2num(query.item[40]) + job_support_high = text2num(query.item[41]) + job_support_med = text2num(query.item[42]) + job_support_low = text2num(query.item[43]) + job_medsci_high = text2num(query.item[44]) + job_medsci_med = text2num(query.item[45]) + job_medsci_low = text2num(query.item[46]) + job_engsec_high = text2num(query.item[47]) + job_engsec_med = text2num(query.item[48]) + job_engsec_low = text2num(query.item[49]) + job_karma_high = text2num(query.item[50]) + job_karma_med = text2num(query.item[51]) + job_karma_low = text2num(query.item[52]) //Miscellaneous - flavor_text = query.item[48] - med_record = query.item[49] - sec_record = query.item[50] - gen_record = query.item[51] - disabilities = text2num(query.item[52]) - player_alt_titles = params2list(query.item[53]) - organ_data = params2list(query.item[54]) - rlimb_data = params2list(query.item[55]) - nanotrasen_relation = query.item[56] - speciesprefs = text2num(query.item[57]) + flavor_text = query.item[53] + med_record = query.item[54] + sec_record = query.item[55] + gen_record = query.item[56] + disabilities = text2num(query.item[57]) + player_alt_titles = params2list(query.item[58]) + organ_data = params2list(query.item[59]) + rlimb_data = params2list(query.item[60]) + nanotrasen_relation = query.item[61] + speciesprefs = text2num(query.item[62]) //socks - socks = query.item[58] - body_accessory = query.item[59] - gear = params2list(query.item[60]) + socks = query.item[63] + body_accessory = query.item[64] + gear = params2list(query.item[65]) //Sanitize metadata = sanitize_text(metadata, initial(metadata)) @@ -253,23 +263,26 @@ r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair)) g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair)) b_hair = sanitize_integer(b_hair, 0, 255, initial(b_hair)) + r_hair_sec = sanitize_integer(r_hair_sec, 0, 255, initial(r_hair_sec)) + g_hair_sec = sanitize_integer(g_hair_sec, 0, 255, initial(g_hair_sec)) + b_hair_sec = sanitize_integer(b_hair_sec, 0, 255, initial(b_hair_sec)) r_facial = sanitize_integer(r_facial, 0, 255, initial(r_facial)) g_facial = sanitize_integer(g_facial, 0, 255, initial(g_facial)) b_facial = sanitize_integer(b_facial, 0, 255, initial(b_facial)) + r_facial_sec = sanitize_integer(r_facial_sec, 0, 255, initial(r_facial_sec)) + g_facial_sec = sanitize_integer(g_facial_sec, 0, 255, initial(g_facial_sec)) + b_facial_sec = sanitize_integer(b_facial_sec, 0, 255, initial(b_facial_sec)) s_tone = sanitize_integer(s_tone, -185, 34, initial(s_tone)) r_skin = sanitize_integer(r_skin, 0, 255, initial(r_skin)) g_skin = sanitize_integer(g_skin, 0, 255, initial(g_skin)) b_skin = sanitize_integer(b_skin, 0, 255, initial(b_skin)) - r_markings = sanitize_integer(r_markings, 0, 255, initial(r_markings)) - g_markings = sanitize_integer(g_markings, 0, 255, initial(g_markings)) - b_markings = sanitize_integer(b_markings, 0, 255, initial(b_markings)) r_headacc = sanitize_integer(r_headacc, 0, 255, initial(r_headacc)) g_headacc = sanitize_integer(g_headacc, 0, 255, initial(g_headacc)) b_headacc = sanitize_integer(b_headacc, 0, 255, initial(b_headacc)) h_style = sanitize_inlist(h_style, hair_styles_list, initial(h_style)) f_style = sanitize_inlist(f_style, facial_hair_styles_list, initial(f_style)) - m_style = sanitize_inlist(m_style, marking_styles_list, initial(m_style)) ha_style = sanitize_inlist(ha_style, head_accessory_styles_list, initial(ha_style)) + alt_head = sanitize_inlist(alt_head, alt_heads_list, initial(alt_head)) r_eyes = sanitize_integer(r_eyes, 0, 255, initial(r_eyes)) g_eyes = sanitize_integer(g_eyes, 0, 255, initial(g_eyes)) b_eyes = sanitize_integer(b_eyes, 0, 255, initial(b_eyes)) @@ -300,6 +313,8 @@ if(!player_alt_titles) player_alt_titles = new() if(!organ_data) src.organ_data = list() if(!rlimb_data) src.rlimb_data = list() + if(!m_colours) m_colours = initial(m_colours) + if(!m_styles) m_styles = initial(m_styles) if(!gear) gear = list() return 1 @@ -332,23 +347,28 @@ hair_red='[r_hair]', hair_green='[g_hair]', hair_blue='[b_hair]', + secondary_hair_red='[r_hair_sec]', + secondary_hair_green='[g_hair_sec]', + secondary_hair_blue='[b_hair_sec]', facial_red='[r_facial]', facial_green='[g_facial]', facial_blue='[b_facial]', + secondary_facial_red='[r_facial_sec]', + secondary_facial_green='[g_facial_sec]', + secondary_facial_blue='[b_facial_sec]', skin_tone='[s_tone]', skin_red='[r_skin]', skin_green='[g_skin]', skin_blue='[b_skin]', - markings_red='[r_markings]', - markings_green='[g_markings]', - markings_blue='[b_markings]', + marking_colours='[m_colours]', head_accessory_red='[r_headacc]', head_accessory_green='[g_headacc]', head_accessory_blue='[b_headacc]', hair_style_name='[sql_sanitize_text(h_style)]', facial_style_name='[sql_sanitize_text(f_style)]', - marking_style_name='[sql_sanitize_text(m_style)]', + marking_styles='[m_styles]', head_accessory_style_name='[sql_sanitize_text(ha_style)]', + alt_head_name='[sql_sanitize_text(alt_head)]', eyes_red='[r_eyes]', eyes_green='[g_eyes]', eyes_blue='[b_eyes]', @@ -397,11 +417,13 @@ INSERT INTO [format_table_name("characters")] (ckey, slot, OOC_Notes, real_name, name_is_always_random, gender, age, species, language, hair_red, hair_green, hair_blue, + secondary_hair_red, secondary_hair_green, secondary_hair_blue, facial_red, facial_green, facial_blue, + secondary_facial_red, secondary_facial_green, secondary_facial_blue, skin_tone, skin_red, skin_green, skin_blue, - markings_red, markings_green, markings_blue, + marking_colours, head_accessory_red, head_accessory_green, head_accessory_blue, - hair_style_name, facial_style_name, marking_style_name, head_accessory_style_name, + hair_style_name, facial_style_name, marking_styles, head_accessory_style_name, alt_head_name, eyes_red, eyes_green, eyes_blue, underwear, undershirt, backbag, b_type, alternate_option, @@ -418,11 +440,13 @@ ('[C.ckey]', '[default_slot]', '[sql_sanitize_text(metadata)]', '[sql_sanitize_text(real_name)]', '[be_random_name]','[gender]', '[age]', '[sql_sanitize_text(species)]', '[sql_sanitize_text(language)]', '[r_hair]', '[g_hair]', '[b_hair]', + '[r_hair_sec]', '[g_hair_sec]', '[b_hair_sec]', '[r_facial]', '[g_facial]', '[b_facial]', + '[r_facial_sec]', '[g_facial_sec]', '[b_facial_sec]', '[s_tone]', '[r_skin]', '[g_skin]', '[b_skin]', - '[r_markings]', '[g_markings]', '[b_markings]', + '[m_colours]', '[r_headacc]', '[g_headacc]', '[b_headacc]', - '[sql_sanitize_text(h_style)]', '[sql_sanitize_text(f_style)]', '[sql_sanitize_text(m_style)]', '[sql_sanitize_text(ha_style)]', + '[sql_sanitize_text(h_style)]', '[sql_sanitize_text(f_style)]', '[m_styles]', '[sql_sanitize_text(ha_style)]', '[sql_sanitize_text(alt_head)]', '[r_eyes]', '[g_eyes]', '[b_eyes]', '[underwear]', '[undershirt]', '[backbag]', '[b_type]', '[alternate_option]', diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index c7b9b3abdb6..07f8d6b7931 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -47,7 +47,8 @@ to_chat(user, "[target] has no skin, how do you expect to tattoo them?") return - if(target.m_style != "None") + var/list/marking_styles = params2list(target.m_styles) + if(marking_styles["body"] != "None") to_chat(user, "[target] already has body markings, any more would look silly!") return @@ -61,10 +62,12 @@ user.visible_message("[user] finishes the [tattoo_name] on [target].", "You finish the [tattoo_name].") if(!used) // No exploiting do_after to tattoo multiple folks. - target.m_style = tattoo_icon - target.r_markings = tattoo_r - target.g_markings = tattoo_g - target.b_markings = tattoo_b + var/list/marking_colours = params2list(target.m_colours) + marking_styles["body"] = tattoo_icon + marking_colours["body"] = "#[num2hex(tattoo_r,2)][num2hex(tattoo_g,2)][num2hex(tattoo_b,2)]" + + target.m_styles = list2params(marking_styles) + target.m_colours = list2params(marking_colours) target.update_markings() diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index ca241306f00..e94620c8b47 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -4,32 +4,26 @@ AC.ui_interact(user, state = state) /mob/living/carbon/human/proc/change_species(var/new_species) - if(!new_species) - return - - if(species == new_species) - return - - if(!(new_species in all_species)) + if(!new_species || species == new_species || !(new_species in all_species)) return set_species(new_species) reset_hair() return 1 -/mob/living/carbon/human/proc/change_gender(var/gender, var/update_dna = 1) +/mob/living/carbon/human/proc/change_gender(var/new_gender, var/update_dna = 1) var/obj/item/organ/external/head/H = organs_by_name["head"] - if(src.gender == gender) + if(gender == new_gender) return - src.gender = gender + gender = new_gender var/datum/sprite_accessory/hair/current_hair = hair_styles_list[H.h_style] - if(current_hair.gender != NEUTER && current_hair.gender != src.gender) + if(current_hair.gender != NEUTER && current_hair.gender != gender) reset_head_hair() var/datum/sprite_accessory/hair/current_fhair = facial_hair_styles_list[H.f_style] - if(current_fhair.gender != NEUTER && current_fhair.gender != src.gender) + if(current_fhair.gender != NEUTER && current_fhair.gender != gender) reset_facial_hair() if(update_dna) @@ -40,13 +34,7 @@ /mob/living/carbon/human/proc/change_hair(var/hair_style) var/obj/item/organ/external/head/H = get_organ("head") - if(!hair_style) - return - - if(H.h_style == hair_style) - return - - if(!(hair_style in hair_styles_list)) + if(!hair_style || H.h_style == hair_style || !(hair_style in hair_styles_list)) return H.h_style = hair_style @@ -56,13 +44,7 @@ /mob/living/carbon/human/proc/change_facial_hair(var/facial_hair_style) var/obj/item/organ/external/head/H = get_organ("head") - if(!facial_hair_style) - return - - if(H.f_style == facial_hair_style) - return - - if(!(facial_hair_style in facial_hair_styles_list)) + if(!facial_hair_style || H.f_style == facial_hair_style || !(facial_hair_style in facial_hair_styles_list)) return H.f_style = facial_hair_style @@ -72,13 +54,7 @@ /mob/living/carbon/human/proc/change_head_accessory(var/head_accessory_style) var/obj/item/organ/external/head/H = get_organ("head") - if(!head_accessory_style) - return - - if(H.ha_style == head_accessory_style) - return - - if(!(head_accessory_style in head_accessory_styles_list)) + if(!head_accessory_style || H.ha_style == head_accessory_style || !(head_accessory_style in head_accessory_styles_list)) return H.ha_style = head_accessory_style @@ -86,49 +62,92 @@ update_head_accessory() return 1 -/mob/living/carbon/human/proc/change_markings(var/marking_style) - if(!marking_style) +/mob/living/carbon/human/proc/change_markings(var/marking_style, var/location = "body") + var/list/marking_styles = params2list(m_styles) + if(!marking_style || marking_styles[location] == marking_style || !(marking_style in marking_styles_list)) return - if(src.m_style == marking_style) + var/datum/sprite_accessory/body_markings/marking = marking_styles_list[marking_style] + if(marking.name != "None" && marking.marking_location != location) return - if(!(marking_style in marking_styles_list)) - return + var/obj/item/organ/external/head/head_organ = get_organ("head") + if(location == "head") + if(head_organ.alt_head && head_organ.alt_head != "None") + var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style] + if(marking.name != "None" && (!H.heads_allowed || !(head_organ.alt_head in H.heads_allowed))) + return + else + if(!head_organ.alt_head || head_organ.alt_head == "None") + head_organ.alt_head = "None" + var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style] + if(H.heads_allowed ) + return - src.m_style = marking_style + if(location == "tail" && marking.name != "None") + var/datum/sprite_accessory/body_markings/tail/tail_marking = marking_styles_list[marking_style] + if(!body_accessory) + if(tail_marking.tails_allowed) + return + else + if(!tail_marking.tails_allowed || !(body_accessory.name in tail_marking.tails_allowed)) + return - update_markings() + marking_styles[location] = marking_style + m_styles = list2params(marking_styles) + + if(location == "tail") + stop_tail_wagging() + else + update_markings() return 1 /mob/living/carbon/human/proc/change_body_accessory(var/body_accessory_style) var/found - if(!body_accessory_style) + if(!body_accessory_style || (body_accessory && body_accessory.name == body_accessory_style)) return - if(src.body_accessory) - if(src.body_accessory.name == body_accessory_style) - return - for(var/B in body_accessory_by_name) if(B == body_accessory_style) - src.body_accessory = body_accessory_by_name[body_accessory_style] + body_accessory = body_accessory_by_name[body_accessory_style] found = 1 if(!found) return + var/list/marking_styles = params2list(m_styles) + marking_styles["tail"] = "None" + m_styles = list2params(marking_styles) update_tail_layer() return 1 +/mob/living/carbon/human/proc/change_alt_head(var/alternate_head) + var/obj/item/organ/external/head/H = get_organ("head") + if(H.alt_head == alternate_head || (H.status & ORGAN_ROBOT) || (!(species.bodyflags & HAS_ALT_HEADS) && alternate_head != "None") || !(alternate_head in alt_heads_list)) + return + + H.alt_head = alternate_head + + //Handle head markings if they're incompatible with the new alt head. + var/list/marking_styles = params2list(m_styles) + if(marking_styles["head"]) + var/head_marking = marking_styles["head"] + var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking] + if(!head_marking_style.heads_allowed || !(H.alt_head in head_marking_style.heads_allowed)) + marking_styles["head"] = "None" + m_styles = list2params(marking_styles) + update_markings() + + update_body(1, 1) //Update the body and force limb icon regeneration to update the head with the new icon. + return 1 + /mob/living/carbon/human/proc/reset_hair() reset_head_hair() reset_facial_hair() reset_head_accessory() - if(m_style && m_style != "None") //Resets the markings if they were head markings. - var/datum/sprite_accessory/marking_style = marking_styles_list[m_style] - if(marking_style && marking_style.marking_location == "head") - reset_markings() + var/list/marking_styles = params2list(m_styles) + if(marking_styles["head"] && marking_styles["head"] != "None") //Resets head markings. + reset_markings() /mob/living/carbon/human/proc/reset_head_hair() var/obj/item/organ/external/head/H = get_organ("head") @@ -151,14 +170,30 @@ H.f_style = "Shaved" update_fhair() -/mob/living/carbon/human/proc/reset_markings() - var/list/valid_markings = generate_valid_markings() - if(valid_markings.len) - m_style = pick(valid_markings) +/mob/living/carbon/human/proc/reset_markings(var/location) + var/list/valid_markings + var/list/marking_styles = params2list(m_styles) + + if(location) + valid_markings = generate_valid_markings(location) + if(valid_markings.len) + marking_styles[location] = pick(valid_markings) + else + //this shouldn't happen + marking_styles[location] = "None" else - //this shouldn't happen - m_style = "None" + for(var/m_location in list("head", "body", "tail")) + valid_markings = generate_valid_markings(m_location) + if(valid_markings.len) + marking_styles[m_location] = pick(valid_markings) + else + //this shouldn't happen + marking_styles[m_location] = "None" + + m_styles = list2params(marking_styles) + update_markings() + stop_tail_wagging() /mob/living/carbon/human/proc/reset_head_accessory() var/obj/item/organ/external/head/H = get_organ("head") @@ -182,26 +217,42 @@ update_body() return 1 -/mob/living/carbon/human/proc/change_hair_color(var/red, var/green, var/blue) +/mob/living/carbon/human/proc/change_hair_color(var/red, var/green, var/blue, var/secondary) var/obj/item/organ/external/head/H = get_organ("head") - if(red == H.r_hair && green == H.g_hair && blue == H.b_hair) - return + if(!secondary) + if(red == H.r_hair && green == H.g_hair && blue == H.b_hair) + return - H.r_hair = red - H.g_hair = green - H.b_hair = blue + H.r_hair = red + H.g_hair = green + H.b_hair = blue + else + if(red == H.r_hair_sec && green == H.g_hair_sec && blue == H.b_hair_sec) + return + + H.r_hair_sec = red + H.g_hair_sec = green + H.b_hair_sec = blue update_hair() return 1 -/mob/living/carbon/human/proc/change_facial_hair_color(var/red, var/green, var/blue) +/mob/living/carbon/human/proc/change_facial_hair_color(var/red, var/green, var/blue, var/secondary) var/obj/item/organ/external/head/H = get_organ("head") - if(red == H.r_facial && green == H.g_facial && blue == H.b_facial) - return + if(!secondary) + if(red == H.r_facial && green == H.g_facial && blue == H.b_facial) + return - H.r_facial = red - H.g_facial = green - H.b_facial = blue + H.r_facial = red + H.g_facial = green + H.b_facial = blue + else + if(red == H.r_facial_sec && green == H.g_facial_sec && blue == H.b_facial_sec) + return + + H.r_facial_sec = red + H.g_facial_sec = green + H.b_facial_sec = blue update_fhair() return 1 @@ -218,15 +269,19 @@ update_head_accessory() return 1 -/mob/living/carbon/human/proc/change_marking_color(var/red, var/green, var/blue) - if(red == r_markings && green == g_markings && blue == b_markings) +/mob/living/carbon/human/proc/change_marking_color(var/colour, var/location = "body") + var/list/marking_colours = params2list(m_colours) + marking_colours[location] = sanitize_hexcolor(marking_colours[location]) + if(colour == marking_colours[location]) return - r_markings = red - g_markings = green - b_markings = blue + marking_colours[location] = colour + m_colours = list2params(marking_colours) - update_markings() + if(location == "tail") + update_tail_layer() + else + update_markings() return 1 @@ -279,9 +334,7 @@ for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(gender == MALE && S.gender == FEMALE) - continue - if(gender == FEMALE && S.gender == MALE) + if((gender == MALE && S.gender == FEMALE) || (gender == FEMALE && S.gender == MALE)) continue if(H.species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] @@ -313,9 +366,7 @@ for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] - if(gender == MALE && S.gender == FEMALE) - continue - if(gender == FEMALE && S.gender == MALE) + if((gender == MALE && S.gender == FEMALE) || (gender == FEMALE && S.gender == MALE)) continue if(H.species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/datum/robolimb/robohead = all_robolimbs[H.model] @@ -354,18 +405,37 @@ return valid_head_accessories -/mob/living/carbon/human/proc/generate_valid_markings() +/mob/living/carbon/human/proc/generate_valid_markings(var/location = "body") var/list/valid_markings = new() var/obj/item/organ/external/head/H = get_organ("head") for(var/marking in marking_styles_list) - var/datum/sprite_accessory/S = marking_styles_list[marking] - + var/datum/sprite_accessory/body_markings/S = marking_styles_list[marking] + if(S.name == "None") + valid_markings += marking + continue + if(S.marking_location != location) //If the marking isn't for the location we desire, skip. + continue if(!(species.name in S.species_allowed)) //If the user's head is not of a species the marking style allows, skip it. Otherwise, add it to the list. continue - if(H.species.flags & ALL_RPARTS) //If the user is a species that can have a robotic head... - var/datum/robolimb/robohead = all_robolimbs[H.model] - if(!(S.models_allowed && (robohead.company in S.models_allowed))) //Make sure they don't get markings incompatible with their head. - continue + if(location == "tail") + if(!body_accessory) + if(S.tails_allowed) + continue + else + if(!S.tails_allowed || !(body_accessory.name in S.tails_allowed)) + continue + if(location == "head") + var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[S.name] + if(H.species.flags & ALL_RPARTS)//If the user is a species that can have a robotic head... + var/datum/robolimb/robohead = all_robolimbs[H.model] + if(!(S.models_allowed && (robohead.company in S.models_allowed))) //Make sure they don't get markings incompatible with their head. + continue + else if(H.alt_head && H.alt_head != "None") //If the user's got an alt head, validate markings for that head. + if(!(H.alt_head in M.heads_allowed)) + continue + else + if(M.heads_allowed) + continue valid_markings += marking return valid_markings @@ -385,3 +455,15 @@ valid_body_accessories += B return valid_body_accessories + +/mob/living/carbon/human/proc/generate_valid_alt_heads() + var/list/valid_alt_heads = list() + valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option. + for(var/alternate_head in alt_heads_list) + var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head] + if(!(species.name in head.species_allowed)) + continue + + valid_alt_heads[alternate_head] = alt_heads_list[alternate_head] + + return valid_alt_heads \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/body_accessories.dm b/code/modules/mob/living/carbon/human/body_accessories.dm index f4b95eec4d4..8744a09ea4d 100644 --- a/code/modules/mob/living/carbon/human/body_accessories.dm +++ b/code/modules/mob/living/carbon/human/body_accessories.dm @@ -112,36 +112,30 @@ var/global/list/body_accessory_by_species = list("None" = null) //Vulpkanin /datum/body_accessory/tail/vulpkanin_2 name = "Vulpkanin Alt 1 (Bushy)" - icon_state = "vulptail2" animated_icon_state = "vulptail2_a" allowed_species = list("Vulpkanin") /datum/body_accessory/tail/vulpkanin_3 name = "Vulpkanin Alt 2 (Straight)" - icon_state = "vulptail3" animated_icon_state = "vulptail3_a" allowed_species = list("Vulpkanin") /datum/body_accessory/tail/vulpkanin_4 name = "Vulpkanin Alt 3 (Tiny)" - icon_state = "vulptail4" animated_icon_state = "vulptail4_a" allowed_species = list("Vulpkanin") /datum/body_accessory/tail/vulpkanin_5 name = "Vulpkanin Alt 4 (Short)" - icon_state = "vulptail5" animated_icon_state = "vulptail5_a" allowed_species = list("Vulpkanin") /datum/body_accessory/tail/vulpkanin_6 name = "Vulpkanin Alt 5 (Straight Bushy)" - icon_state = "vulptail6" animated_icon_state = "vulptail6_a" allowed_species = list("Vulpkanin") - diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c63c03d8321..ab176e6912f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1587,6 +1587,12 @@ H.g_headacc = 0 H.b_headacc = 0 + m_styles = initial(m_styles) //Wipes out markings, setting them all to "None". + m_colours = initial(m_styles) //Defaults colour to #00000 for all markings. + H.alt_head = "None" + H.ha_style = "None" + body_accessory = null + if(!dna) dna = new /datum/dna(null) dna.species = species.name @@ -1687,14 +1693,15 @@ if(!head_organ) return if(!robohead.is_monitor) //If they've got a prosthetic head and it isn't a monitor, they've no screen to adjust. Instead, let them change the colour of their optics! - var/optic_colour = input(src, "Select optic colour", rgb(r_markings, g_markings, b_markings)) as color|null + var/list/marking_colours = params2list(m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/optic_colour = input(src, "Select optic colour", rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))) as color|null if(incapacitated()) to_chat(src, "You were interrupted while changing the colour of your optics.") return if(optic_colour) - r_markings = hex2num(copytext(optic_colour, 2, 4)) - g_markings = hex2num(copytext(optic_colour, 4, 6)) - b_markings = hex2num(copytext(optic_colour, 6, 8)) + marking_colours["head"] = optic_colour + m_colours = list2params(marking_colours) update_markings() else if(robohead.is_monitor) //Means that the character's head is a monitor (has a screen). Time to customize. diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index a74409a9b44..0626c89fa1f 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -4,10 +4,12 @@ var/global/default_martial_art = new/datum/martial_art hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD) //Marking colour and style - var/r_markings = 0 - var/g_markings = 0 - var/b_markings = 0 - var/m_style = "None" + var/m_colours = "head=#000000;\ + body=#000000;\ + tail=#000000" + var/m_styles = "head=None;\ + body=None;\ + tail=None" //Eye colour var/r_eyes = 0 diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 6268652f828..3577209ecd5 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -8,7 +8,7 @@ language = "Sol Common" flags = HAS_LIPS | CAN_BE_FAT clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_TONE + bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS dietflags = DIET_OMNI unarmed_type = /datum/unarmed_attack/punch blurb = "Humanity originated in the Sol system, and over the last five centuries has spread \ @@ -40,7 +40,7 @@ flags = HAS_LIPS clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = FEET_CLAWS | HAS_TAIL | HAS_HEAD_ACCESSORY | HAS_MARKINGS | HAS_SKIN_COLOR | TAIL_WAGGING + bodyflags = FEET_CLAWS | HAS_TAIL | HAS_HEAD_ACCESSORY | HAS_BODY_MARKINGS | HAS_HEAD_MARKINGS | HAS_SKIN_COLOR | HAS_ALT_HEADS | TAIL_WAGGING dietflags = DIET_CARN cold_level_1 = 280 //Default 260 - Lower is better @@ -112,13 +112,11 @@ flags = HAS_LIPS | CAN_BE_FAT clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = FEET_PADDED | HAS_TAIL | HAS_HEAD_ACCESSORY | HAS_MARKINGS | HAS_SKIN_COLOR | TAIL_WAGGING | HAS_FUR + bodyflags = FEET_PADDED | HAS_TAIL | HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_SKIN_COLOR | TAIL_WAGGING | HAS_FUR dietflags = DIET_OMNI reagent_tag = PROCESS_ORG flesh_color = "#AFA59E" - base_color = "#333333" - //Default styles for created mobs. - default_headacc = "Tajaran Ears" + base_color = "#424242" butt_sprite = "tajaran" has_organ = list( @@ -164,11 +162,11 @@ flags = HAS_LIPS clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = FEET_PADDED | HAS_TAIL | HAS_HEAD_ACCESSORY | HAS_MARKINGS | HAS_SKIN_COLOR | TAIL_WAGGING | HAS_FUR + bodyflags = FEET_PADDED | HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED | HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_TAIL_MARKINGS | HAS_SKIN_COLOR | HAS_FUR dietflags = DIET_OMNI reagent_tag = PROCESS_ORG flesh_color = "#966464" - base_color = "#B43214" + base_color = "#CF4D2F" butt_sprite = "vulp" has_organ = list( @@ -212,7 +210,7 @@ flags = HAS_LIPS clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR + bodyflags = HAS_SKIN_COLOR | HAS_BODY_MARKINGS dietflags = DIET_HERB flesh_color = "#8CD7A3" blood_color = "#1D2CBF" @@ -287,7 +285,7 @@ flags = NO_SCAN | IS_WHITELISTED clothing_flags = HAS_SOCKS dietflags = DIET_OMNI - bodyflags = HAS_ICON_SKIN_TONE | HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED + bodyflags = HAS_ICON_SKIN_TONE | HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED | HAS_BODY_MARKINGS | HAS_TAIL_MARKINGS blood_color = "#2299FC" flesh_color = "#808D11" @@ -704,6 +702,7 @@ flags = IS_WHITELISTED | HAS_LIPS | CAN_BE_FAT clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS + bodyflags = HAS_BODY_MARKINGS dietflags = DIET_HERB reagent_tag = PROCESS_ORG blood_color = "#A200FF" @@ -852,7 +851,7 @@ flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_DNA | NO_POISON | RADIMMUNE | ALL_RPARTS clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR | HAS_MARKINGS | HAS_HEAD_ACCESSORY + bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY dietflags = 0 //IPCs can't eat, so no diet blood_color = "#1F181F" flesh_color = "#AAAAAA" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index b919912a6c1..130ea34f93d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -212,15 +212,15 @@ var/global/list/damage_icon_parts = list() if(update_icons) update_icons() //BASE MOB SPRITE -/mob/living/carbon/human/proc/update_body(var/update_icons=1) +/mob/living/carbon/human/proc/update_body(var/update_icons=1, var/rebuild_base=0) var/husk_color_mod = rgb(96,88,80) var/hulk_color_mod = rgb(48,224,40) - var/husk = (HUSK in src.mutations) - var/fat = (FAT in src.mutations) - var/hulk = (HULK in src.mutations) - var/skeleton = (SKELETON in src.mutations) + var/husk = (HUSK in mutations) + var/fat = (FAT in mutations) + var/hulk = (HULK in mutations) + var/skeleton = (SKELETON in mutations) if(species && species.bodyflags & HAS_ICON_SKIN_TONE) species.updatespeciescolor(src) @@ -262,7 +262,7 @@ var/global/list/damage_icon_parts = list() icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]" var/icon/base_icon - if(human_icon_cache[icon_key]) + if(human_icon_cache[icon_key] && !rebuild_base) base_icon = human_icon_cache[icon_key] else //BEGIN CACHED ICON GENERATION. @@ -309,7 +309,7 @@ var/global/list/damage_icon_parts = list() //END CACHED ICON GENERATION. stand_icon.Blend(base_icon,ICON_OVERLAY) - if(src.species.bodyflags & TAIL_OVERLAPPED) // If the user's species is flagged to have a tail that needs to be overlapped by limbs... + if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the user's species is flagged to have a tail that needs to be overlapped by limbs... (having a non-tail body accessory like the snake body will override this) overlays_standing[LIMBS_LAYER] = image(stand_icon) // Diverts limbs to their own layer so they can overlay things (i.e. tails). else overlays_standing[LIMBS_LAYER] = null // So we don't get the old species' sprite splatted on top of the new one's @@ -360,29 +360,38 @@ var/global/list/damage_icon_parts = list() //MARKINGS OVERLAY /mob/living/carbon/human/proc/update_markings(var/update_icons=1) - //Reset our markings + //Reset our markings. overlays_standing[MARKINGS_LAYER] = null + //Base icon. + var/icon/markings_standing = new/icon('icons/mob/body_accessory.dmi',"accessory_none_s") + + //Prep marking styles and colours. + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + + //Body markings. var/obj/item/organ/external/chest/chest_organ = get_organ("chest") - if(!chest_organ || chest_organ.is_stump() || (chest_organ.status & ORGAN_DESTROYED) ) - if(update_icons) update_icons() - return - - //base icons - var/icon/markings_standing = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - - if(m_style && m_style != "None") - var/datum/sprite_accessory/marking_style = marking_styles_list[m_style] - if(marking_style) - var/obj/item/organ/external/head/head_organ = get_organ("head") - if((!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) && marking_style.marking_location == "head") - return //If the head is destroyed and it is the organ the marking is located on, get us out of here. This prevents floating optical markings on decapitated IPCs, for example. - var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") - if(marking_style.do_colouration) - markings_s.Blend(rgb(r_markings, g_markings, b_markings), ICON_ADD) - markings_standing.Blend(markings_s, ICON_OVERLAY) - else - //warning("Invalid m_style for [species.name]: [m_style]") + if(chest_organ && !chest_organ.is_stump() && !(chest_organ.status & ORGAN_DESTROYED) && marking_styles["body"]) + var/body_marking = marking_styles["body"] + var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + if(body_marking_style && body_marking_style.species_allowed && (species.name in body_marking_style.species_allowed)) + var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") + if(body_marking_style.do_colouration) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) + b_marking_s.Blend(rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8))), ICON_ADD) + markings_standing.Blend(b_marking_s, ICON_OVERLAY) + //Head markings. + var/obj/item/organ/external/head/head_organ = get_organ("head") + if(head_organ && !head_organ.is_stump() && !(head_organ.status & ORGAN_DESTROYED) && marking_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example. + var/head_marking = marking_styles["head"] + var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + if(head_marking_style && head_marking_style.species_allowed && (head_organ.species.name in head_marking_style.species_allowed)) + var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") + if(head_marking_style.do_colouration) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + h_marking_s.Blend(rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8))), ICON_ADD) + markings_standing.Blend(h_marking_s, ICON_OVERLAY) overlays_standing[MARKINGS_LAYER] = image(markings_standing) @@ -426,15 +435,15 @@ var/global/list/damage_icon_parts = list() //HAIR OVERLAY /mob/living/carbon/human/proc/update_hair(var/update_icons=1) //Reset our hair - overlays_standing[HAIR_LAYER] = null + overlays_standing[HAIR_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED) ) + if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) if(update_icons) update_icons() return //masks and helmets can obscure our hair, unless we're a synthetic - if( (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR))) + if((head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR))) if(update_icons) update_icons() return @@ -454,13 +463,19 @@ var/global/list/damage_icon_parts = list() else if(hair_style.do_colouration) hair_s.Blend(rgb(head_organ.r_hair, head_organ.g_hair, head_organ.b_hair), ICON_ADD) + if(hair_style.secondary_theme) + var/icon/hair_secondary_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_style.secondary_theme]_s") + if(!hair_style.no_sec_colour) + hair_secondary_s.Blend(rgb(head_organ.r_hair_sec, head_organ.g_hair_sec, head_organ.b_hair_sec), ICON_ADD) + hair_s.Blend(hair_secondary_s, ICON_OVERLAY) + hair_standing = hair_s //hair_standing.Blend(hair_s, ICON_OVERLAY) //Having it this way preserves animations. Useful for IPC screens. else //warning("Invalid h_style for [species.name]: [h_style]") //hair_standing.Blend(debrained_s, ICON_OVERLAY)//how does i overlay for fish? - overlays_standing[HAIR_LAYER] = image(hair_standing) + overlays_standing[HAIR_LAYER] = image(hair_standing) if(update_icons) update_icons() @@ -468,15 +483,15 @@ var/global/list/damage_icon_parts = list() //FACIAL HAIR OVERLAY /mob/living/carbon/human/proc/update_fhair(var/update_icons=1) //Reset our facial hair - overlays_standing[FHAIR_LAYER] = null + overlays_standing[FHAIR_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED) ) + if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) if(update_icons) update_icons() return //masks and helmets can obscure our facial hair, unless we're a synthetic - if( (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR))) + if((head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR))) if(update_icons) update_icons() return @@ -492,11 +507,18 @@ var/global/list/damage_icon_parts = list() facial_s.Blend(rgb(r_skin, g_skin, b_skin, 160), ICON_AND) else if(facial_hair_style.do_colouration) facial_s.Blend(rgb(head_organ.r_facial, head_organ.g_facial, head_organ.b_facial), ICON_ADD) + + if(facial_hair_style.secondary_theme) + var/icon/facial_secondary_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_[facial_hair_style.secondary_theme]_s") + if(!facial_hair_style.no_sec_colour) + facial_secondary_s.Blend(rgb(head_organ.r_facial_sec, head_organ.g_facial_sec, head_organ.b_facial_sec), ICON_ADD) + facial_s.Blend(facial_secondary_s, ICON_OVERLAY) + face_standing.Blend(facial_s, ICON_OVERLAY) else //warning("Invalid f_style for [species.name]: [f_style]") - overlays_standing[FHAIR_LAYER] = image(face_standing) + overlays_standing[FHAIR_LAYER] = image(face_standing) if(update_icons) update_icons() @@ -536,7 +558,7 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/update_mutantrace(var/update_icons=1) //BS12 EDIT - var/skel = (SKELETON in src.mutations) + var/skel = (SKELETON in mutations) if(skel) skeleton = 'icons/mob/human_races/r_skeleton.dmi' else @@ -562,7 +584,7 @@ var/global/list/damage_icon_parts = list() ..() if(notransform) return update_mutations(0) - update_body(0) + update_body(0, 1) //Update the body and force limb icon regeneration. update_hair(0) update_head_accessory(0) update_fhair(0) @@ -1053,7 +1075,7 @@ var/global/list/damage_icon_parts = list() clear_alert("legcuffed") if(legcuffed) overlays_standing[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1") - throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = src.legcuffed) + throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = legcuffed) if(m_intent != "walk") m_intent = "walk" if(hud_used && hud_used.move_intent) @@ -1121,71 +1143,69 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/update_tail_layer(var/update_icons=1) overlays_standing[TAIL_UNDERLIMBS_LAYER] = null // SEW direction icons, overlayed by LIMBS_LAYER. - overlays_standing[TAIL_LAYER] = null // This will be one of two things: - // If the species' tail is overlapped by limbs, this will be only the N direction icon so tails can still appear on the outside of uniforms and such. - // Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. + overlays_standing[TAIL_LAYER] = null /* This will be one of two things: + If the species' tail is overlapped by limbs, this will be only the N direction icon so tails can still appear on the outside of uniforms and such. + Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. */ + + var/list/marking_styles = params2list(m_styles) + var/icon/tail_marking_icon + var/datum/sprite_accessory/body_markings/tail/tail_marking_style + if(marking_styles["tail"] != "None" && (species.bodyflags & HAS_TAIL_MARKINGS)) + var/tail_marking = marking_styles["tail"] + var/list/marking_colours = params2list(m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + tail_marking_style = marking_styles_list[tail_marking] + tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s") + tail_marking_icon.Blend(rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8))), ICON_ADD) if(body_accessory) if(body_accessory.try_restrictions(src)) var/icon/accessory_s = new/icon("icon" = body_accessory.icon, "icon_state" = body_accessory.icon_state) if(species.bodyflags & HAS_SKIN_COLOR) accessory_s.Blend(rgb(r_skin, g_skin, b_skin), body_accessory.blend_mode) - - if(species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... + if(tail_marking_icon && (body_accessory.name in tail_marking_style.tails_allowed)) + accessory_s.Blend(tail_marking_icon, ICON_OVERLAY) + if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this) // Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway. - var/icon/temp1 = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - if(species.name in body_accessory.allowed_species) - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "[species.tail]_delay") - temp1 = temp - else - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "vulptail_delay") - temp1 = temp + var/icon/under = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "accessory_none_s") + under.Insert(new/icon(accessory_s, dir=SOUTH), dir=SOUTH) + under.Insert(new/icon(accessory_s, dir=EAST), dir=EAST) + under.Insert(new/icon(accessory_s, dir=WEST), dir=WEST) - temp1.Insert(new/icon(accessory_s,dir=SOUTH),dir=SOUTH) - temp1.Insert(new/icon(accessory_s,dir=EAST),dir=EAST) - temp1.Insert(new/icon(accessory_s,dir=WEST),dir=WEST) - - overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(temp1, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(under, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) // Creates a blank icon, and copies accessory_s' north direction sprite into it // before passing that to the tail layer that overlays uniforms and such. - var/icon/temp2 = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - if(species.name in body_accessory.allowed_species) - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "[species.tail]_delay") - temp2 = temp - else - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "vulptail_delay") - temp2 = temp + var/icon/over = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "accessory_none_s") + over.Insert(new/icon(accessory_s, dir=NORTH), dir=NORTH) - temp2.Insert(new/icon(accessory_s,dir=NORTH),dir=NORTH) - - overlays_standing[TAIL_LAYER] = image(temp2, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + overlays_standing[TAIL_LAYER] = image(over, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. - overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) else if(species.tail && species.bodyflags & HAS_TAIL) //no tailless tajaran if(!wear_suit || !(wear_suit.flags_inv & HIDETAIL) && !istype(wear_suit, /obj/item/clothing/suit/space)) var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_s") if(species.bodyflags & HAS_SKIN_COLOR) tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) - - if(species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... + if(tail_marking_icon) + tail_s.Blend(tail_marking_icon, ICON_OVERLAY) + if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this) // Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway. - var/icon/temp1 = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_delay") - temp1.Insert(new/icon(tail_s,dir=SOUTH),dir=SOUTH) - temp1.Insert(new/icon(tail_s,dir=EAST),dir=EAST) - temp1.Insert(new/icon(tail_s,dir=WEST),dir=WEST) + var/icon/under = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "blank") + under.Insert(new/icon(tail_s, dir=SOUTH), dir=SOUTH) + under.Insert(new/icon(tail_s, dir=EAST), dir=EAST) + under.Insert(new/icon(tail_s, dir=WEST), dir=WEST) - overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(temp1) + overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(under) - // Creates a blank icon, and copies accessory_s' north direction sprite into it - // before passing that to the tail layer that overlays uniforms and such. - var/icon/temp2 = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_delay") - temp2.Insert(new/icon(tail_s,dir=NORTH),dir=NORTH) + // Creates a blank icon, and copies accessory_s' north direction sprite into it before passing that to the tail layer that overlays uniforms and such. + var/icon/over = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "blank") + over.Insert(new/icon(tail_s, dir=NORTH), dir=NORTH) - overlays_standing[TAIL_LAYER] = image(temp2) + overlays_standing[TAIL_LAYER] = image(over) else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. - overlays_standing[TAIL_LAYER] = image(tail_s) + overlays_standing[TAIL_LAYER] = image(tail_s) if(update_icons) update_icons() @@ -1193,70 +1213,70 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/proc/start_tail_wagging(var/update_icons=1) overlays_standing[TAIL_UNDERLIMBS_LAYER] = null // SEW direction icons, overlayed by LIMBS_LAYER. - overlays_standing[TAIL_LAYER] = null // This will be one of two things: - // If the species' tail is overlapped by limbs, this will be only the N direction icon so tails can still appear on the outside of uniforms and such. - // Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. + overlays_standing[TAIL_LAYER] = null /* This will be one of two things: + If the species' tail is overlapped by limbs, this will be only the N direction icon so tails can still appear on the outside of uniforms and such. + Otherwise, since the user's tail isn't overlapped by limbs, it will be a full icon with all directions. */ + + var/list/marking_styles = params2list(m_styles) + var/icon/tail_marking_icon + var/datum/sprite_accessory/body_markings/tail/tail_marking_style + if(marking_styles["tail"] != "None" && (species.bodyflags & HAS_TAIL_MARKINGS)) + var/tail_marking = marking_styles["tail"] + var/list/marking_colours = params2list(m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + tail_marking_style = marking_styles_list[tail_marking] + tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]w_s") + tail_marking_icon.Blend(rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8))), ICON_ADD) if(body_accessory) var/icon/accessory_s = new/icon("icon" = body_accessory.get_animated_icon(), "icon_state" = body_accessory.get_animated_icon_state()) if(species.bodyflags & HAS_SKIN_COLOR) accessory_s.Blend(rgb(r_skin, g_skin, b_skin), body_accessory.blend_mode) - - if(species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... + if(tail_marking_icon && (body_accessory.name in tail_marking_style.tails_allowed)) + accessory_s.Blend(tail_marking_icon, ICON_OVERLAY) + if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this) // Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway. - var/icon/temp1 = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - if(body_accessory.allowed_species) - if(species.name in body_accessory.allowed_species) - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "[species.tail]_delay") - temp1 = temp - else - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "vulptail_delay") - temp1 = temp + var/icon/under = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "Vulpkanin_tail_delay") + if(body_accessory.allowed_species && (species.name in body_accessory.allowed_species)) + under = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.name]_tail_delay") + under.Insert(new/icon(accessory_s, dir=SOUTH), dir=SOUTH) + under.Insert(new/icon(accessory_s, dir=EAST), dir=EAST) + under.Insert(new/icon(accessory_s, dir=WEST), dir=WEST) - temp1.Insert(accessory_s,dir=SOUTH) - temp1.Insert(accessory_s,dir=EAST) - temp1.Insert(accessory_s,dir=WEST) + overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(under, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) - overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(temp1, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + // Creates a blank icon, and copies accessory_s' north direction sprite into it before passing that to the tail layer that overlays uniforms and such. + var/icon/over = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "Vulpkanin_tail_delay") + if(body_accessory.allowed_species && (species.name in body_accessory.allowed_species)) // If the user's species is in the list of allowed species for the currently selected body accessory, use the appropriate animation timing blank + over = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.name]_tail_delay") + over.Insert(new/icon(accessory_s, dir=NORTH), dir=NORTH) - // Creates a blank icon, and copies accessory_s' north direction sprite into it - // before passing that to the tail layer that overlays uniforms and such. - var/icon/temp2 = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s") - if(species.name in body_accessory.allowed_species) // If the user's species is in the list of allowed species for the currently selected body accessory, use the appropriate animation timing blank - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "[species.tail]_delay") - temp2 = temp - else // Else if the user's species is not in the list of allowed species for the currently selected body accessory, this point must have been reached by admin-override. Use vulpkanin timings as default. - var/icon/temp = new/icon("icon" = 'icons/mob/body_accessory.dmi', "icon_state" = "vulptail_delay") - temp2 = temp - - temp2.Insert(accessory_s,dir=NORTH) - - overlays_standing[TAIL_LAYER] = image(temp2, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + overlays_standing[TAIL_LAYER] = image(over, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. - overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) + overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset) else if(species.tail && species.bodyflags & HAS_TAIL) var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]w_s") if(species.bodyflags & HAS_SKIN_COLOR) tailw_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) - - if(species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... + if(tail_marking_icon) + tailw_s.Blend(tail_marking_icon, ICON_OVERLAY) + if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this) // Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway. - var/icon/temp1 = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_delay") - temp1.Insert(tailw_s,dir=SOUTH) - temp1.Insert(tailw_s,dir=EAST) - temp1.Insert(tailw_s,dir=WEST) + var/icon/under = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.name]_tail_delay") + under.Insert(new/icon(tailw_s, dir=SOUTH), dir=SOUTH) + under.Insert(new/icon(tailw_s, dir=EAST), dir=EAST) + under.Insert(new/icon(tailw_s, dir=WEST), dir=WEST) - overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(temp1) + overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(under) - // Creates a blank icon, and copies accessory_s' north direction sprite into it - // before passing that to the tail layer that overlays uniforms and such. - var/icon/temp2 = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_delay") - temp2.Insert(tailw_s,dir=NORTH) + // Creates a blank icon, and copies accessory_s' north direction sprite into it before passing that to the tail layer that overlays uniforms and such. + var/icon/over = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.name]_tail_delay") + over.Insert(new/icon(tailw_s, dir=NORTH), dir=NORTH) - overlays_standing[TAIL_LAYER] = image(temp2) + overlays_standing[TAIL_LAYER] = image(over) else // Otherwise, since the user's tail isn't overlapped by limbs, go ahead and use default icon generation. - overlays_standing[TAIL_LAYER] = image(tailw_s) + overlays_standing[TAIL_LAYER] = image(tailw_s) if(update_icons) update_icons() @@ -1282,17 +1302,15 @@ var/global/list/damage_icon_parts = list() if(wear_suit.icon_override) var/icon_path = "[wear_suit.icon_override]" icon_path = "[copytext(icon_path, 1, findtext(icon_path, "/suit.dmi"))]/collar.dmi" //If this file doesn't exist, the end result is that COLLAR_LAYER will be unchanged (empty). - var/icon/icon_file if(fexists(icon_path)) //Just ensuring the nonexistance of a file with the above path won't cause a runtime. - icon_file = new(icon_path) - standing = image("icon" = icon_file, "icon_state" = "[wear_suit.icon_state]") + var/icon/icon_file = new(icon_path) + standing = image("icon" = icon_file, "icon_state" = "[wear_suit.icon_state]") else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.name]) var/icon_path = "[wear_suit.sprite_sheets[species.name]]" icon_path = "[copytext(icon_path, 1, findtext(icon_path, "/suit.dmi"))]/collar.dmi" //If this file doesn't exist, the end result is that COLLAR_LAYER will be unchanged (empty). - var/icon/icon_file if(fexists(icon_path)) //Just ensuring the nonexistance of a file with the above path won't cause a runtime. - icon_file = new(icon_path) - standing = image("icon" = icon_file, "icon_state" = "[wear_suit.icon_state]") + var/icon/icon_file = new(icon_path) + standing = image("icon" = icon_file, "icon_state" = "[wear_suit.icon_state]") else if(wear_suit.icon_state in C.IconStates()) standing = image("icon" = C, "icon_state" = "[wear_suit.icon_state]") diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index dc0916ee344..4c55cc9ba71 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -221,26 +221,12 @@ fat="_fat" preview_icon = new /icon(icobase, "torso_[g][fat]") preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY) - preview_icon.Blend(new /icon(icobase, "head_[g]"), ICON_OVERLAY) - - //Tail - if(current_species && (current_species.bodyflags & HAS_TAIL)) - var/tail_icon - var/tail_icon_state - - if(body_accessory) - var/datum/body_accessory/accessory = body_accessory_by_name[body_accessory] - tail_icon = accessory.icon - tail_icon_state = accessory.icon_state - else - tail_icon = "icons/effects/species.dmi" - if(coloured_tail) - tail_icon_state = "[coloured_tail]_s" - else - tail_icon_state = "[current_species.tail]_s" - - var/icon/temp = new /icon("icon" = tail_icon, "icon_state" = tail_icon_state) - preview_icon.Blend(temp, ICON_OVERLAY) + var/head = "head" + if(alt_head && current_species.bodyflags & HAS_ALT_HEADS) + var/datum/sprite_accessory/alt_heads/H = alt_heads_list[alt_head] + if(H.icon_state) + head = H.icon_state + preview_icon.Blend(new /icon(icobase, "[head]_[g]"), ICON_OVERLAY) for(var/name in list("chest", "groin", "head", "r_arm", "r_hand", "r_leg", "r_foot", "l_leg", "l_foot", "l_arm", "l_hand")) if(organ_data[name] == "amputated") continue @@ -265,13 +251,60 @@ else preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - //Body Markings - if(current_species && (current_species.bodyflags & HAS_MARKINGS)) - var/datum/sprite_accessory/marking_style = marking_styles_list[m_style] - if(marking_style && marking_style.species_allowed) - var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") - markings_s.Blend(rgb(r_markings, g_markings, b_markings), ICON_ADD) - preview_icon.Blend(markings_s, ICON_OVERLAY) + //Tail + if(current_species && (current_species.bodyflags & HAS_TAIL)) + var/tail_icon + var/tail_icon_state + + if(body_accessory) + var/datum/body_accessory/accessory = body_accessory_by_name[body_accessory] + tail_icon = accessory.icon + tail_icon_state = accessory.icon_state + else + tail_icon = "icons/effects/species.dmi" + if(coloured_tail) + tail_icon_state = "[coloured_tail]_s" + else + tail_icon_state = "[current_species.tail]_s" + + var/icon/temp = new /icon("icon" = tail_icon, "icon_state" = tail_icon_state) + + if(current_species && (current_species.bodyflags & HAS_SKIN_COLOR)) + temp.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) + + if(current_species && (current_species.bodyflags & HAS_TAIL_MARKINGS)) + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + var/tail_marking = marking_styles["tail"] + var/datum/sprite_accessory/tail_marking_style = marking_styles_list[tail_marking] + if(tail_marking_style && tail_marking_style.species_allowed) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + var/icon/t_marking_s = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s") + t_marking_s.Blend(rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8))), ICON_ADD) + temp.Blend(t_marking_s, ICON_OVERLAY) + + preview_icon.Blend(temp, ICON_OVERLAY) + + //Markings + if(current_species && ((current_species.bodyflags & HAS_HEAD_MARKINGS) || (current_species.bodyflags & HAS_BODY_MARKINGS))) + var/list/marking_styles = params2list(m_styles) + var/list/marking_colours = params2list(m_colours) + if(current_species.bodyflags & HAS_BODY_MARKINGS) //Body markings. + var/body_marking = marking_styles["body"] + var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] + if(body_marking_style && body_marking_style.species_allowed) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) + var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s") + b_marking_s.Blend(rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8))), ICON_ADD) + preview_icon.Blend(b_marking_s, ICON_OVERLAY) + if(current_species.bodyflags & HAS_HEAD_MARKINGS) //Head markings. + var/head_marking = marking_styles["head"] + var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + if(head_marking_style && head_marking_style.species_allowed) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") + h_marking_s.Blend(rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8))), ICON_ADD) + preview_icon.Blend(h_marking_s, ICON_OVERLAY) var/icon/face_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "bald_s") @@ -288,6 +321,13 @@ hair_s.Blend(rgb(r_skin, g_skin, b_skin, 160), ICON_ADD) else hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + + if(hair_style.secondary_theme) + var/icon/hair_secondary_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_style.secondary_theme]_s") + if(!hair_style.no_sec_colour) + hair_secondary_s.Blend(rgb(r_hair_sec, g_hair_sec, b_hair_sec), ICON_ADD) + hair_s.Blend(hair_secondary_s, ICON_OVERLAY) + face_s.Blend(hair_s, ICON_OVERLAY) //Head Accessory @@ -305,6 +345,13 @@ facial_s.Blend(rgb(r_skin, g_skin, b_skin, 160), ICON_ADD) else facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + + if(facial_hair_style.secondary_theme) + var/icon/facial_secondary_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_[facial_hair_style.secondary_theme]_s") + if(!facial_hair_style.no_sec_colour) + facial_secondary_s.Blend(rgb(r_facial_sec, g_facial_sec, b_facial_sec), ICON_ADD) + facial_s.Blend(facial_secondary_s, ICON_OVERLAY) + face_s.Blend(facial_s, ICON_OVERLAY) var/icon/underwear_s = null diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 3ade5970d03..21a4dab150b 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -43,8 +43,12 @@ // Restrict some styles to specific species var/list/species_allowed = list("Human", "Slime People") - var/models_allowed = list() //Specifies which, if any, hairstyles can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm. + var/list/models_allowed = list() //Specifies which, if any, hairstyles or markings can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm. + var/list/heads_allowed = null //Specifies which, if any, alt heads a head marking, hairstyle or facial hair style is compatible with. + var/list/tails_allowed = null //Specifies which, if any, tails a tail marking is compatible with. var/marking_location //Specifies which bodypart a body marking is located on. + var/secondary_theme = null //If exists, there's a secondary colour to that hair style and the secondary theme's icon state's suffix is equal to this. + var/no_sec_colour = null //If exists, prohibit the colouration of the secondary theme. // Whether or not the accessory can be affected by colouration var/do_colouration = 1 @@ -65,7 +69,7 @@ name = "Bald" icon_state = "bald" gender = MALE - species_allowed = list("Human", "Unathi", "Vox", "Diona", "Kidan", "Grey", "Plasmaman", "Skeleton") + species_allowed = list("Human", "Unathi", "Vox", "Diona", "Kidan", "Grey", "Plasmaman", "Skeleton", "Vulpkanin", "Tajaran") short name = "Short Hair" // try to capatilize the names please~ @@ -200,6 +204,18 @@ icon_state = "hair_hbraid" gender = FEMALE + braid_hip + name = "Hippie Braid" + icon_state = "hair_hipbraid" + species_allowed = list("Human") + secondary_theme = "beads" + + braid_hip_una + name = "Unathi Hippie Braid" + icon_state = "hair_ubraid" + species_allowed = list("Unathi") + secondary_theme = "beads" + buzz name = "Buzzcut" icon_state = "hair_buzzcut" @@ -241,9 +257,9 @@ icon_state = "hair_bigafro" gender = MALE - sargeant + sergeant name = "Flat Top" - icon_state = "hair_sargeant" + icon_state = "hair_sergeant" gender = MALE emo @@ -298,7 +314,7 @@ icon_state = "hair_spikey" species_allowed = list("Human", "Unathi") - kusangi + kusanagi name = "Kusanagi Hair" icon_state = "hair_kusanagi" @@ -689,95 +705,117 @@ skr_gold_m name = "Gold plated Skrell Male Tentacles" - icon_state = "skrell_goldhair_m" + icon_state = "skrell_hair_m" species_allowed = list("Skrell") gender = MALE + secondary_theme = "gold" + no_sec_colour = 1 skr_gold_f name = "Gold chained Skrell Female Tentacles" - icon_state = "skrell_goldhair_f" + icon_state = "skrell_hair_f" species_allowed = list("Skrell") gender = FEMALE + secondary_theme = "gold" + no_sec_colour = 1 + skr_clothtentacle_m name = "Cloth draped Skrell Male Tentacles" - icon_state = "skrell_clothhair_m" + icon_state = "skrell_hair_m" species_allowed = list("Skrell") gender = MALE + secondary_theme = "cloth" skr_clothtentacle_f name = "Cloth draped Skrell Female Tentacles" - icon_state = "skrell_clothhair_f" + icon_state = "skrell_hair_f" species_allowed = list("Skrell") gender = FEMALE + secondary_theme = "cloth" - taj_ears - name = "Tajaran Ears" - icon_state = "ears_plain" - species_allowed = list("Tajaran") - - taj_ears_clean + taj_hair_clean name = "Tajara Clean" icon_state = "hair_clean" species_allowed = list("Tajaran") - taj_ears_bangs + taj_hair_bangs name = "Tajara Bangs" icon_state = "hair_bangs" species_allowed = list("Tajaran") - taj_ears_braid + taj_hair_braid name = "Tajara Braid" icon_state = "hair_tbraid" species_allowed = list("Tajaran") + secondary_theme = "beads" - taj_ears_shaggy + taj_hair_shaggy name = "Tajara Shaggy" icon_state = "hair_shaggy" species_allowed = list("Tajaran") - taj_ears_mohawk + taj_hair_mohawk name = "Tajaran Mohawk" icon_state = "hair_mohawk" species_allowed = list("Tajaran") - taj_ears_plait + taj_hair_plait name = "Tajara Plait" icon_state = "hair_plait" species_allowed = list("Tajaran") - taj_ears_straight + taj_hair_straight name = "Tajara Straight" icon_state = "hair_straight" species_allowed = list("Tajaran") - taj_ears_long + taj_hair_long name = "Tajara Long" icon_state = "hair_long" species_allowed = list("Tajaran") - taj_ears_rattail + taj_hair_rattail name = "Tajara Rat Tail" icon_state = "hair_rattail" species_allowed = list("Tajaran") - taj_ears_spiky - name = "Tajara Spiky" - icon_state = "hair_tajspiky" + taj_hair_spiky + name = "Tajara Spikey" + icon_state = "hair_tajspikey" species_allowed = list("Tajaran") - taj_ears_messy + taj_hair_messy name = "Tajara Messy" icon_state = "hair_messy" species_allowed = list("Tajaran") + taj_hair_curls + name = "Tajara Curly" + icon_state = "hair_curly" + species_allowed = list("Tajaran") + + taj_hair_retro + name = "Tajaran Ladies' Retro" + icon_state = "hair_ladies_retro" + species_allowed = list("Tajaran") + + taj_hair_victory + name = "Tajara Victory Curls" + icon_state = "hair_victory" + species_allowed = list("Tajaran") + + taj_hair_bob + name = "Tajara Bob" + icon_state = "hair_tbob" + species_allowed = list("Tajaran") + + taj_hair_fingercurl + name = "Tajara Finger Curls" + icon_state = "hair_fingerwave" + species_allowed = list("Tajaran") + //Vulpkanin - - vulp_hair_none - name = "None" - icon_state = "bald" - species_allowed = list("Vulpkanin") - vulp_hair_kajam name = "Kajam" icon_state = "kajam" @@ -812,6 +850,7 @@ name = "Belle" icon_state = "belle" species_allowed = list("Vulpkanin") + secondary_theme = "bands" vulp_hair_bun name = "Bun" @@ -848,6 +887,12 @@ icon_state = "spike" species_allowed = list("Vulpkanin") + vulp_hair_braided + name = "Braided" + icon_state = "braided" + species_allowed = list("Vulpkanin") + secondary_theme = "beads" + //Vox vox_quills_short @@ -1081,6 +1126,12 @@ species_allowed = list("Unathi") gender = NEUTER + una_frills_aquatic + name = "Aquatic Frills" + icon_state = "soghun_aquaticfrills" + species_allowed = list("Unathi") + gender = NEUTER + una_frills_long name = "Long Frills" icon_state = "soghun_longfrills" @@ -1093,22 +1144,25 @@ species_allowed = list("Unathi") gender = NEUTER + una_frills_webbed_aquatic + name = "Aquatic Webbed Frills" + icon_state = "soghun_aquaticfrills" + species_allowed = list("Unathi") + secondary_theme = "webbing" + gender = NEUTER + una_frills_webbed_long name = "Long Webbed Frills" - icon_state = "soghun_longfrills_webbed" + icon_state = "soghun_longfrills" species_allowed = list("Unathi") + secondary_theme = "webbing" gender = NEUTER una_frills_webbed_short name = "Short Webbed Frills" - icon_state = "soghun_shortfrills_webbed" - species_allowed = list("Unathi") - gender = NEUTER - - una_frills_webbed_aquatic - name = "Aquatic Frills" - icon_state = "soghun_aquaticfrills_webbed" + icon_state = "soghun_shortfrills" species_allowed = list("Unathi") + secondary_theme = "webbing" gender = NEUTER @@ -1793,6 +1847,26 @@ species_allowed = list("Unathi") icon_state = "horns_ram" +/datum/sprite_accessory/head_accessory/outears_taj + name = "Tajaran Outer Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_outears_taj" + +/datum/sprite_accessory/head_accessory/inears_taj + name = "Tajaran Inner Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_inears_taj" + +/datum/sprite_accessory/head_accessory/muzzle_taj + name = "Tajaran Muzzle" + species_allowed = list("Tajaran") + icon_state = "markings_face_muzzle_taj" + +/datum/sprite_accessory/head_accessory/muzzle_and_inears_taj + name = "Tajaran Muzzle and Inner Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_muzzle_and_inears_taj" + /datum/sprite_accessory/head_accessory/vulp_earfluff icon = 'icons/mob/human_face.dmi' name = "Vulpkanin Earfluff" @@ -1847,6 +1921,12 @@ icon_state = "vulp_facial_swift" species_allowed = list("Vulpkanin") +/datum/sprite_accessory/head_accessory/vulp_nose + icon = 'icons/mob/body_accessory.dmi' + name = "Vulpkanin Nose" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_nose_vulp" + /datum/sprite_accessory/head_accessory/taj_ears icon = 'icons/mob/human_face.dmi' name = "Tajaran Ears" @@ -1878,70 +1958,274 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/body_accessory.dmi' - species_allowed = list("Unathi", "Tajaran", "Vulpkanin", "Machine") + species_allowed = list("Unathi", "Tajaran", "Vulpkanin", "Machine", "Vox") icon_state = "accessory_none" + marking_location = "body" /datum/sprite_accessory/body_markings/none name = "None" species_allowed = list("Human", "Unathi", "Diona", "Grey", "Machine", "Tajaran", "Vulpkanin", "Slime People", "Skeleton", "Vox") icon_state = "accessory_none" -/datum/sprite_accessory/body_markings/stripe - name = "Stripe" - species_allowed = list("Unathi") - icon_state = "markings_stripe" - /datum/sprite_accessory/body_markings/tiger name = "Tiger Body" species_allowed = list("Unathi", "Tajaran", "Vulpkanin") icon_state = "markings_tiger" -/datum/sprite_accessory/body_markings/tigerhead - name = "Tiger Body and Head" - species_allowed = list("Unathi", "Tajaran", "Vulpkanin") - icon_state = "markings_tigerhead" - -/datum/sprite_accessory/body_markings/tigerheadface_taj - name = "Tajaran Tiger Body, Head and Face" - species_allowed = list("Tajaran") - icon_state = "markings_tigerheadface_taj" - -/datum/sprite_accessory/body_markings/tigerheadface_vulp - name = "Vulpkanin Tiger Body, Head and Face" - species_allowed = list("Vulpkanin") - icon_state = "markings_tigerheadface_vulp" - -/datum/sprite_accessory/body_markings/tigerheadface_una - name = "Unathi Tiger Body, Head and Face" +/datum/sprite_accessory/body_markings/stripe_una + name = "Unathi Stripe" species_allowed = list("Unathi") - icon_state = "markings_tigerheadface_una" + icon_state = "markings_stripe_una" -/datum/sprite_accessory/body_markings/optics +/datum/sprite_accessory/body_markings/belly_narrow_una + name = "Unathi Belly" + species_allowed = list("Unathi") + icon_state = "markings_belly_narrow_una" + +/datum/sprite_accessory/body_markings/banded_una + name = "Unathi Banded" + species_allowed = list("Unathi") + icon_state = "markings_banded_una" + +/datum/sprite_accessory/body_markings/points_una + name = "Unathi Points" + species_allowed = list("Unathi") + icon_state = "markings_points_una" + +/datum/sprite_accessory/body_markings/belly_flat_taj + name = "Tajaran Belly" + species_allowed = list("Tajaran") + icon_state = "markings_belly_flat_taj" + +/datum/sprite_accessory/body_markings/belly_crest_taj + name = "Tajaran Chest Crest" + species_allowed = list("Tajaran") + icon_state = "markings_belly_crest_taj" + +/datum/sprite_accessory/body_markings/belly_full_taj + name = "Tajaran Belly 2" + species_allowed = list("Tajaran") + icon_state = "markings_belly_full_taj" + +/datum/sprite_accessory/body_markings/points_taj + name = "Tajaran Points" + species_allowed = list("Tajaran") + icon_state = "markings_points_taj" + +/datum/sprite_accessory/body_markings/patchy_taj + name = "Tajaran Patches" + species_allowed = list("Tajaran") + icon_state = "markings_patch_taj" + +/datum/sprite_accessory/body_markings/belly_fox_vulp + name = "Vulpkanin Belly" + species_allowed = list("Vulpkanin") + icon_state = "markings_belly_fox_vulp" + +/datum/sprite_accessory/body_markings/belly_full_vulp + name = "Vulpkanin Belly 2" + species_allowed = list("Vulpkanin") + icon_state = "markings_belly_full_vulp" + +/datum/sprite_accessory/body_markings/belly_crest_vulp + name = "Vulpkanin Belly Crest" + species_allowed = list("Vulpkanin") + icon_state = "markings_belly_crest_vulp" + +/datum/sprite_accessory/body_markings/points_fade_vulp + name = "Vulpkanin Points" + species_allowed = list("Vulpkanin") + icon_state = "markings_points_fade_vulp" + +/datum/sprite_accessory/body_markings/points_fade_belly_vulp + name = "Vulpkanin Points and Belly" + species_allowed = list("Vulpkanin") + icon_state = "markings_points_fade_belly_vulp" + +/datum/sprite_accessory/body_markings/points_sharp_vulp + name = "Vulpkanin Points 2" + species_allowed = list("Vulpkanin") + icon_state = "markings_points_sharp_vulp" + +/datum/sprite_accessory/body_markings/head + marking_location = "head" + species_allowed = list() + +/datum/sprite_accessory/body_markings/head/tiger_head_taj + name = "Tajaran Tiger Head" + species_allowed = list("Tajaran") + icon_state = "markings_head_tiger_taj" + +/datum/sprite_accessory/body_markings/head/tiger_face_taj + name = "Tajaran Tiger Head and Face" + species_allowed = list("Tajaran") + icon_state = "markings_face_tiger_taj" + +/datum/sprite_accessory/body_markings/head/outears_taj + name = "Tajaran Outer Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_outears_taj" + +/datum/sprite_accessory/body_markings/head/inears_taj + name = "Tajaran Inner Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_inears_taj" + +/datum/sprite_accessory/body_markings/head/nose_taj + name = "Tajaran Nose" + species_allowed = list("Tajaran") + icon_state = "markings_face_nose_taj" + +/datum/sprite_accessory/body_markings/head/muzzle_taj + name = "Tajaran Muzzle" + species_allowed = list("Tajaran") + icon_state = "markings_face_muzzle_taj" + +/datum/sprite_accessory/body_markings/head/muzzle_and_inears_taj + name = "Tajaran Muzzle and Inner Ears" + species_allowed = list("Tajaran") + icon_state = "markings_face_muzzle_and_inears_taj" + +/datum/sprite_accessory/body_markings/head/muzzle_alt_taj //Companion marking for Tajaran Belly 2. + name = "Tajaran Muzzle 2" + species_allowed = list("Tajaran") + icon_state = "markings_face_full_taj" + +/datum/sprite_accessory/body_markings/head/points_taj //Companion marking for Tajaran Points. + name = "Tajaran Points Head" + species_allowed = list("Tajaran") + icon_state = "markings_face_points_taj" + +/datum/sprite_accessory/body_markings/head/patchy_taj //Companion marking for Tajaran Patches. + name = "Tajaran Patches Head" + species_allowed = list("Tajaran") + icon_state = "markings_face_patch_taj" + +/datum/sprite_accessory/body_markings/head/tiger_head_vulp + name = "Vulpkanin Tiger Head" + species_allowed = list("Vulpkanin") + icon_state = "markings_head_tiger_vulp" + +/datum/sprite_accessory/body_markings/head/tiger_face_vulp + name = "Vulpkanin Tiger Head and Face" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_tiger_vulp" + +/datum/sprite_accessory/body_markings/head/nose_default_vulp + name = "Vulpkanin Nose" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_nose_vulp" + +/datum/sprite_accessory/body_markings/head/muzzle_vulp //Companion marking for Vulpkanin Belly Alt.. + name = "Vulpkanin Muzzle" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_full_vulp" + +/datum/sprite_accessory/body_markings/head/muzzle_ears_vulp //Companion marking for Vulpkanin Belly Alt.. + name = "Vulpkanin Muzzle and Ears" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_full_ears_vulp" + +/datum/sprite_accessory/body_markings/head/points_fade_vulp //Companion marking for Vulpkanin Points Fade. + name = "Vulpkanin Points Head" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_points_fade_vulp" + +/datum/sprite_accessory/body_markings/head/points_sharp_vulp //Companion marking for Vulpkanin Points Sharp. + name = "Vulpkanin Points Head 2" + species_allowed = list("Vulpkanin") + icon_state = "markings_face_points_sharp_vulp" + +/datum/sprite_accessory/body_markings/head/tiger_head_una + name = "Unathi Tiger Head" + species_allowed = list("Unathi") + icon_state = "markings_head_tiger_una" + +/datum/sprite_accessory/body_markings/head/tiger_face_una + name = "Unathi Tiger Head and Face" + species_allowed = list("Unathi") + icon_state = "markings_face_tiger_una" + +/datum/sprite_accessory/body_markings/head/tiger_face_una_sharp + name = "Unathi Sharp Tiger Head and Face" + species_allowed = list("Unathi") + icon_state = "markings_face_tiger_una_sharp" + heads_allowed = list("Unathi Sharp Snout") + +/datum/sprite_accessory/body_markings/head/snout_una_round + name = "Unathi Round Snout" + species_allowed = list("Unathi") + icon_state = "markings_face_snout_una_round" + +/datum/sprite_accessory/body_markings/head/snout_lower_una_round + name = "Unathi Lower Round Snout" + species_allowed = list("Unathi") + icon_state = "markings_face_snout_lower_una" + +/datum/sprite_accessory/body_markings/head/snout_una_sharp + name = "Unathi Sharp Snout" + species_allowed = list("Unathi") + icon_state = "markings_face_snout_una_sharp" + heads_allowed = list("Unathi Sharp Snout") + +/datum/sprite_accessory/body_markings/head/banded_una //Companion marking for Unathi Banded. + name = "Unathi Banded Head" + species_allowed = list("Unathi") + icon_state = "markings_face_banded_una" + +/datum/sprite_accessory/body_markings/head/banded_una_sharp //Companion marking for Unathi Banded. + name = "Unathi Sharp Banded Head" + species_allowed = list("Unathi") + icon_state = "markings_face_banded_una" + heads_allowed = list("Unathi Sharp Snout") + +/datum/sprite_accessory/body_markings/head/snout_narrow_una //Companion marking for Unathi Narrow Belly. + name = "Unathi Snout 2" + species_allowed = list("Unathi") + icon_state = "markings_face_narrow_una" + +/datum/sprite_accessory/body_markings/head/snout_narrow_una_sharp //Companion marking for Unathi Narrow Belly. + name = "Unathi Sharp Snout 2" + species_allowed = list("Unathi") + icon_state = "markings_face_narrow_una_sharp" + heads_allowed = list("Unathi Sharp Snout") + +/datum/sprite_accessory/body_markings/head/points_una //Companion marking for Unathi Points. + name = "Unathi Points Head" + species_allowed = list("Unathi") + icon_state = "markings_face_points_una" + +/datum/sprite_accessory/body_markings/head/points_una_sharp //Companion marking for Unathi Points. + name = "Unathi Sharp Points Head" + species_allowed = list("Unathi") + icon_state = "markings_face_points_una" + heads_allowed = list("Unathi Sharp Snout") + +/datum/sprite_accessory/body_markings/head/optics name = "Humanoid Optics" species_allowed = list("Machine") icon_state = "optics" models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm - marking_location = "head" -/datum/sprite_accessory/body_markings/optics/bishop_alt +/datum/sprite_accessory/body_markings/head/optics/bishop_alt name = "Bishop Alt. Optics" species_allowed = list("Machine") icon_state = "bishop_alt_optics" models_allowed = list("Bishop Cybernetics alt.") -/datum/sprite_accessory/body_markings/optics/morpheus_alt +/datum/sprite_accessory/body_markings/head/optics/morpheus_alt name = "Morpheus Alt. Optics" species_allowed = list("Machine") icon_state = "morpheus_alt_optics" models_allowed = list("Morpheus Cyberkinetics alt.") -/datum/sprite_accessory/body_markings/optics/wardtakahashi_alt +/datum/sprite_accessory/body_markings/head/optics/wardtakahashi_alt name = "Ward-Takahashi Alt. Optics" species_allowed = list("Machine") icon_state = "wardtakahashi_alt_optics" models_allowed = list("Ward-Takahashi alt.") -/datum/sprite_accessory/body_markings/optics/xion_alt +/datum/sprite_accessory/body_markings/head/optics/xion_alt name = "Xion Alt. Optics" species_allowed = list("Machine") icon_state = "xion_alt_optics" @@ -1954,4 +2238,115 @@ /datum/sprite_accessory/body_markings/tattoo/elliot name = "Elliot Circuit Tattoo" - icon_state = "campbell_tattoo" \ No newline at end of file + icon_state = "campbell_tattoo" + +/datum/sprite_accessory/body_markings/tattoo/heart + name = "Heart Tattoo" + species_allowed = list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell") + icon_state = "markings_tattoo_heart" + +/datum/sprite_accessory/body_markings/tattoo/heart_vox + name = "Vox Heart Tattoo" + species_allowed = list("Vox") + icon_state = "markings_tattoo_heart_vox" + +/datum/sprite_accessory/body_markings/tattoo/hive + name = "Hive Tattoo" + species_allowed = list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell") + icon_state = "markings_tattoo_hive" + +/datum/sprite_accessory/body_markings/tattoo/hive_vox + name = "Vox Hive Tattoo" + species_allowed = list("Vox") + icon_state = "markings_tattoo_hive_vox" + +/datum/sprite_accessory/body_markings/tattoo/nightling + name = "Nightling Tattoo" + species_allowed = list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell") + icon_state = "markings_tattoo_nightling" + +/datum/sprite_accessory/body_markings/tattoo/nightling_vox + name = "Vox Nightling Tattoo" + species_allowed = list("Vox") + icon_state = "markings_tattoo_nightling_vox" + +/datum/sprite_accessory/body_markings/tail + name = "Tail Markings" + species_allowed = list() + icon_state = "accessory_none" + marking_location = "tail" + tails_allowed = null + +/datum/sprite_accessory/body_markings/tail/vox_band + name = "Vox Tail Band" + species_allowed = list("Vox") + icon_state = "markings_voxtail_band" + +/datum/sprite_accessory/body_markings/tail/vox_tip + name = "Vox Tail Tip" + species_allowed = list("Vox") + icon_state = "markings_voxtail_tip" + +/datum/sprite_accessory/body_markings/tail/vox_stripe + name = "Vox Tail Stripe" + species_allowed = list("Vox") + icon_state = "markings_voxtail_stripe" + +/datum/sprite_accessory/body_markings/tail/vulp_default_tip + name = "Vulpkanin Default Tail Tip" + species_allowed = list("Vulpkanin") + icon_state = "markings_vulptail_tip" + +/datum/sprite_accessory/body_markings/tail/vulp_default_fade + name = "Vulpkanin Default Tail Fade" + species_allowed = list("Vulpkanin") + icon_state = "markings_vulptail_fade" + +/datum/sprite_accessory/body_markings/tail/vulp_bushy_fluff + name = "Vulpkanin Bushy Tail Fluff" + species_allowed = list("Vulpkanin") + tails_allowed = list("Vulpkanin Alt 1 (Bushy)") + icon_state = "markings_vulptail2_fluff" + +/datum/sprite_accessory/body_markings/tail/vulp_short_tip + name = "Vulpkanin Short Tail Tip" + species_allowed = list("Vulpkanin") + tails_allowed = list("Vulpkanin Alt 4 (Short)") + icon_state = "markings_vulptail5_tip" + +/datum/sprite_accessory/body_markings/tail/vulp_hybrid_tip + name = "Vulpkanin Bushy Straight Tail Tip" + species_allowed = list("Vulpkanin") + tails_allowed = list("Vulpkanin Alt 5 (Straight Bushy)") + icon_state = "markings_vulptail6_tip" + +/datum/sprite_accessory/body_markings/tail/vulp_hybrid_fade + name = "Vulpkanin Bushy Straight Tail Fade" + species_allowed = list("Vulpkanin") + tails_allowed = list("Vulpkanin Alt 5 (Straight Bushy)") + icon_state = "markings_vulptail6_fade" + +/datum/sprite_accessory/body_markings/tail/vulp_hybrid_silverf + name = "Vulpkanin Bushy Straight Tail Black Fade White Tip" + species_allowed = list("Vulpkanin") + tails_allowed = list("Vulpkanin Alt 5 (Straight Bushy)") + icon_state = "markings_vulptail6_silverf" + +/* ALT HEADS */ + +/datum/sprite_accessory/alt_heads + name = "Alternate Head" + icon = null + icon_state = null + species_allowed = null + +/datum/sprite_accessory/alt_heads/none + name = "None" + icon = null + icon_state = null + species_allowed = null + +/datum/sprite_accessory/alt_heads/una_sharp_snout + name = "Unathi Sharp Snout" + species_allowed = list("Unathi") + icon_state = "head_sharp" diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index ee289cfec9b..7771764c5a1 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -7,8 +7,11 @@ var/list/valid_hairstyles = list() var/list/valid_facial_hairstyles = list() var/list/valid_head_accessories = list() - var/list/valid_marking_styles = list() + var/list/valid_head_marking_styles = list() + var/list/valid_body_marking_styles = list() + var/list/valid_tail_marking_styles = list() var/list/valid_body_accessories = list() + var/list/valid_alt_head_styles = list() var/check_whitelist var/list/whitelist @@ -46,7 +49,7 @@ else if(owner.species.bodyflags & HAS_ICON_SKIN_TONE) var/const/MAX_LINE_ENTRIES = 4 var/prompt = "Choose your character's skin tone: 1-[owner.species.icon_skin_tones.len]\n(" - for(var/i = 1; i <= owner.species.icon_skin_tones.len; i++) + for(var/i = 1 to owner.species.icon_skin_tones.len) if(i > MAX_LINE_ENTRIES && !((i - 1) % MAX_LINE_ENTRIES)) prompt += "\n" prompt += "[i] = [owner.species.icon_skin_tones[i]]" @@ -85,6 +88,16 @@ if(owner.change_hair_color(r_hair, g_hair, b_hair)) update_dna() return 1 + if(href_list["secondary_hair_color"]) + if(can_change(APPEARANCE_SECONDARY_HAIR_COLOR)) + var/new_hair = input("Please select secondary hair color.", "Secondary Hair Color", rgb(head_organ.r_hair_sec, head_organ.g_hair_sec, head_organ.b_hair_sec)) as color|null + if(new_hair && can_still_topic(state)) + var/r_hair_sec = hex2num(copytext(new_hair, 2, 4)) + var/g_hair_sec = hex2num(copytext(new_hair, 4, 6)) + var/b_hair_sec = hex2num(copytext(new_hair, 6, 8)) + if(owner.change_hair_color(r_hair_sec, g_hair_sec, b_hair_sec, 1)) + update_dna() + return 1 if(href_list["facial_hair"]) if(can_change(APPEARANCE_FACIAL_HAIR) && (href_list["facial_hair"] in valid_facial_hairstyles)) if(owner.change_facial_hair(href_list["facial_hair"])) @@ -100,6 +113,16 @@ if(owner.change_facial_hair_color(r_facial, g_facial, b_facial)) update_dna() return 1 + if(href_list["secondary_facial_hair_color"]) + if(can_change(APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR)) + var/new_facial = input("Please select secondary facial hair color.", "Secondary Facial Hair Color", rgb(head_organ.r_facial_sec, head_organ.g_facial_sec, head_organ.b_facial_sec)) as color|null + if(new_facial && can_still_topic(state)) + var/r_facial_sec = hex2num(copytext(new_facial, 2, 4)) + var/g_facial_sec = hex2num(copytext(new_facial, 4, 6)) + var/b_facial_sec = hex2num(copytext(new_facial, 6, 8)) + if(owner.change_facial_hair_color(r_facial_sec, g_facial_sec, b_facial_sec, 1)) + update_dna() + return 1 if(href_list["eye_color"]) if(can_change(APPEARANCE_EYE_COLOR)) var/new_eyes = input("Please select eye color.", "Eye Color", rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes)) as color|null @@ -125,19 +148,46 @@ if(owner.change_head_accessory_color(r_headacc, g_headacc, b_headacc)) update_dna() return 1 - if(href_list["marking"]) - if(can_change_markings() && (href_list["marking"] in valid_marking_styles)) - if(owner.change_markings(href_list["marking"])) + if(href_list["head_marking"]) + if(can_change_markings("head") && (href_list["head_marking"] in valid_head_marking_styles)) + if(owner.change_markings(href_list["head_marking"], "head")) update_dna() return 1 - if(href_list["marking_color"]) - if(can_change_markings()) - var/new_markings = input("Please select marking color.", "Marking Color", rgb(owner.r_markings, owner.g_markings, owner.b_markings)) as color|null + if(href_list["head_marking_color"]) + if(can_change_markings("head")) + var/list/marking_colours = params2list(owner.m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/new_markings = input("Please select head marking color.", "Marking Color", rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))) as color|null if(new_markings && can_still_topic(state)) - var/r_markings = hex2num(copytext(new_markings, 2, 4)) - var/g_markings = hex2num(copytext(new_markings, 4, 6)) - var/b_markings = hex2num(copytext(new_markings, 6, 8)) - if(owner.change_marking_color(r_markings, g_markings, b_markings)) + if(owner.change_marking_color(new_markings, "head")) + update_dna() + return 1 + if(href_list["body_marking"]) + if(can_change_markings("body") && (href_list["body_marking"] in valid_body_marking_styles)) + if(owner.change_markings(href_list["body_marking"], "body")) + update_dna() + return 1 + if(href_list["body_marking_color"]) + if(can_change_markings("body")) + var/list/marking_colours = params2list(owner.m_colours) + marking_colours["body"] = sanitize_hexcolor(marking_colours["body"]) + var/new_markings = input("Please select body marking color.", "Marking Color", rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))) as color|null + if(new_markings && can_still_topic(state)) + if(owner.change_marking_color(new_markings, "body")) + update_dna() + return 1 + if(href_list["tail_marking"]) + if(can_change_markings("tail") && (href_list["tail_marking"] in valid_tail_marking_styles)) + if(owner.change_markings(href_list["tail_marking"], "tail")) + update_dna() + return 1 + if(href_list["tail_marking_color"]) + if(can_change_markings("tail")) + var/list/marking_colours = params2list(owner.m_colours) + marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"]) + var/new_markings = input("Please select tail marking color.", "Marking Color", rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))) as color|null + if(new_markings && can_still_topic(state)) + if(owner.change_marking_color(new_markings, "tail")) update_dna() return 1 if(href_list["body_accessory"]) @@ -145,6 +195,11 @@ if(owner.change_body_accessory(href_list["body_accessory"])) update_dna() return 1 + if(href_list["alt_head"]) + if(can_change_alt_head() && (href_list["alt_head"] in valid_alt_head_styles)) + if(owner.change_alt_head(href_list["alt_head"])) + update_dna() + return 1 return 0 @@ -189,13 +244,35 @@ data["facial_hair_styles"] = facial_hair_styles data["facial_hair_style"] = head_organ.f_style - data["change_markings"] = can_change_markings() - if(data["change_markings"]) - var/marking_styles[0] - for(var/marking_style in valid_marking_styles) - marking_styles[++marking_styles.len] = list("markingstyle" = marking_style) - data["marking_styles"] = marking_styles - data["marking_style"] = owner.m_style + data["change_head_markings"] = can_change_markings("head") + if(data["change_head_markings"]) + var/list/marking_styles = params2list(owner.m_styles) + var/m_style = marking_styles["head"] + var/head_marking_styles[0] + for(var/head_marking_style in valid_head_marking_styles) + head_marking_styles[++head_marking_styles.len] = list("headmarkingstyle" = head_marking_style) + data["head_marking_styles"] = head_marking_styles + data["head_marking_style"] = m_style + + data["change_body_markings"] = can_change_markings("body") + if(data["change_body_markings"]) + var/list/marking_styles = params2list(owner.m_styles) + var/m_style = marking_styles["body"] + var/body_marking_styles[0] + for(var/body_marking_style in valid_body_marking_styles) + body_marking_styles[++body_marking_styles.len] = list("bodymarkingstyle" = body_marking_style) + data["body_marking_styles"] = body_marking_styles + data["body_marking_style"] = m_style + + data["change_tail_markings"] = can_change_markings("tail") + if(data["change_tail_markings"]) + var/list/marking_styles = params2list(owner.m_styles) + var/m_style = marking_styles["tail"] + var/tail_marking_styles[0] + for(var/tail_marking_style in valid_tail_marking_styles) + tail_marking_styles[++tail_marking_styles.len] = list("tailmarkingstyle" = tail_marking_style) + data["tail_marking_styles"] = tail_marking_styles + data["tail_marking_style"] = m_style data["change_body_accessory"] = can_change_body_accessory() if(data["change_body_accessory"]) @@ -208,10 +285,22 @@ BA = owner.body_accessory.name data["body_accessory_style"] = BA + data["change_alt_head"] = can_change_alt_head() + if(data["change_alt_head"]) + var/alt_head_styles[0] + for(var/alt_head_style in valid_alt_head_styles) + alt_head_styles[++alt_head_styles.len] = list("altheadstyle" = alt_head_style) + data["alt_head_styles"] = alt_head_styles + data["alt_head_style"] = head_organ.alt_head + data["change_head_accessory_color"] = can_change_head_accessory() data["change_hair_color"] = can_change(APPEARANCE_HAIR_COLOR) + data["change_secondary_hair_color"] = can_change(APPEARANCE_SECONDARY_HAIR_COLOR) data["change_facial_hair_color"] = can_change(APPEARANCE_FACIAL_HAIR_COLOR) - data["change_marking_color"] = can_change_markings() + data["change_secondary_facial_hair_color"] = can_change(APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR) + data["change_head_marking_color"] = can_change_markings("head") + data["change_body_marking_color"] = can_change_markings("body") + data["change_tail_marking_color"] = can_change_markings("tail") ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if(!ui) ui = new(user, src, ui_key, "appearance_changer.tmpl", "[src]", 800, 450, state = state) @@ -235,19 +324,36 @@ /datum/nano_module/appearance_changer/proc/can_change_head_accessory() return owner && (flags & APPEARANCE_HEAD_ACCESSORY) && (head_organ.species.bodyflags & HAS_HEAD_ACCESSORY) -/datum/nano_module/appearance_changer/proc/can_change_markings() - return owner && (flags & APPEARANCE_MARKINGS) && (owner.species.bodyflags & HAS_MARKINGS) +/datum/nano_module/appearance_changer/proc/can_change_markings(var/location = "body") + var/marking_flag = HAS_BODY_MARKINGS + var/body_flags = owner.species.bodyflags + if(location == "head") + var/obj/item/organ/external/head/H = owner.get_organ("head") + body_flags = H.species.bodyflags + marking_flag = HAS_HEAD_MARKINGS + if(location == "body") + marking_flag = HAS_BODY_MARKINGS + if(location == "tail") + marking_flag = HAS_TAIL_MARKINGS + + return owner && (flags & APPEARANCE_MARKINGS) && (body_flags & marking_flag) /datum/nano_module/appearance_changer/proc/can_change_body_accessory() return owner && (flags & APPEARANCE_BODY_ACCESSORY) && (owner.species.bodyflags & HAS_TAIL) +/datum/nano_module/appearance_changer/proc/can_change_alt_head() + return owner && (flags & APPEARANCE_ALT_HEAD) && (owner.species.bodyflags & HAS_ALT_HEADS) + /datum/nano_module/appearance_changer/proc/cut_and_generate_data() // Making the assumption that the available species remain constant valid_hairstyles.Cut() valid_facial_hairstyles.Cut() valid_head_accessories.Cut() - valid_marking_styles.Cut() + valid_head_marking_styles.Cut() + valid_body_marking_styles.Cut() + valid_tail_marking_styles.Cut() valid_body_accessories.Cut() + valid_alt_head_styles.Cut() generate_data() /datum/nano_module/appearance_changer/proc/generate_data() @@ -260,7 +366,13 @@ valid_facial_hairstyles = owner.generate_valid_facial_hairstyles() if(!valid_head_accessories.len) valid_head_accessories = owner.generate_valid_head_accessories() - if(!valid_marking_styles.len) - valid_marking_styles = owner.generate_valid_markings() + if(!valid_head_marking_styles.len) + valid_head_marking_styles = owner.generate_valid_markings("head") + if(!valid_body_marking_styles.len) + valid_body_marking_styles = owner.generate_valid_markings("body") + if(!valid_tail_marking_styles.len) + valid_tail_marking_styles = owner.generate_valid_markings("tail") if(!valid_body_accessories.len) valid_body_accessories = owner.generate_valid_body_accessories() + if(!valid_alt_head_styles.len) + valid_alt_head_styles = owner.generate_valid_alt_heads() diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index ad0a1973b8f..0de37b1a652 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -104,9 +104,11 @@ var/obj/item/organ/external/head/H = target.get_organ("head") var/datum/robolimb/robohead = all_robolimbs[H.model] if(robohead.is_monitor) //Ensures that if an IPC gets a head that's got a human hair wig attached to their body, the hair won't wipe. + var/list/marking_styles = params2list(target.m_styles) H.h_style = "" H.f_style = "" - target.m_style = "" + marking_styles["head"] = "None" + target.m_styles = list2params(marking_styles) E.status &= ~ORGAN_DESTROYED if(E.children) for(var/obj/item/organ/external/C in E.children) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 1c3f05f5816..9e1e1d70b79 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -856,11 +856,11 @@ Note that amputating the affected organ does in fact remove the infection from t /obj/item/organ/external/proc/mutate() src.status |= ORGAN_MUTATED - if(owner) owner.update_body() + if(owner) owner.update_body(0, 1) //Forces all bodyparts to update in order to correctly render the deformed sprite. /obj/item/organ/external/proc/unmutate() src.status &= ~ORGAN_MUTATED - if(owner) owner.update_body() + if(owner) owner.update_body(0, 1) //Forces all bodyparts to update in order to correctly return them to normal. /obj/item/organ/external/proc/get_damage() //returns total damage return max(brute_dam + burn_dam - perma_injury, perma_injury) //could use health? diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index 49777aa4a5c..2f0eb84c1be 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -73,13 +73,17 @@ var/global/list/limb_icon_cache = list() overlays |= lip_icon mob_icon.Blend(lip_icon, ICON_OVERLAY) - if(owner.m_style) - var/datum/sprite_accessory/marking_style = marking_styles_list[owner.m_style] - if(marking_style && marking_style.species_allowed && (species.name in marking_style.species_allowed) && marking_style.marking_location == "head") - var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") - if(marking_style.do_colouration) - markings_s.Blend(rgb(owner.r_markings, owner.g_markings, owner.b_markings), ICON_ADD) - overlays |= markings_s + var/list/marking_styles = params2list(owner.m_styles) + var/head_marking = marking_styles["head"] + if(head_marking != "None") + var/list/marking_colours = params2list(owner.m_colours) + marking_colours["head"] = sanitize_hexcolor(marking_colours["head"]) + var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] + if(head_marking_style && head_marking_style.species_allowed && (species.name in head_marking_style.species_allowed) && head_marking_style.marking_location == "head") + var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s") + if(head_marking_style.do_colouration) + h_marking_s.Blend(rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8))), ICON_ADD) + overlays |= h_marking_s if(H.ha_style) var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[H.ha_style] @@ -135,6 +139,10 @@ var/global/list/limb_icon_cache = list() else if(status & ORGAN_ROBOT) mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]") else + if(limb_name == "head") + var/obj/item/organ/external/head/head_organ = src + head_organ.handle_alt_icon() + if(status & ORGAN_MUTATED) mob_icon = new /icon(species.deform, "[icon_name][gender ? "_[gender]" : ""]") else diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index 1c6240318fe..85d698ea98b 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -140,11 +140,15 @@ gendered_icon = 1 encased = "skull" var/can_intake_reagents = 1 + var/alt_head = "None" //Hair colour and style var/r_hair = 0 var/g_hair = 0 var/b_hair = 0 + var/r_hair_sec = 0 + var/g_hair_sec = 0 + var/b_hair_sec = 0 var/h_style = "Bald" //Head accessory colour and style @@ -157,6 +161,9 @@ var/r_facial = 0 var/g_facial = 0 var/b_facial = 0 + var/r_facial_sec = 0 + var/g_facial_sec = 0 + var/b_facial_sec = 0 var/f_style = "Shaved" /obj/item/organ/external/head/remove() @@ -193,3 +200,14 @@ disfigure("brute") if(burn_dam > 40) disfigure("burn") + +/obj/item/organ/external/head/proc/handle_alt_icon() + if(alt_head && alt_heads_list[alt_head]) + var/datum/sprite_accessory/alt_heads/alternate_head = alt_heads_list[alt_head] + if(alternate_head.icon_state) + icon_name = alternate_head.icon_state + else //If alternate_head.icon_state doesn't exist, that means alternate_head is "None", so default icon_name back to "head". + icon_name = initial(icon_name) + else //If alt_head is null, set it to "None" and default icon_name for sanity. + alt_head = initial(alt_head) + icon_name = initial(icon_name) diff --git a/icons/effects/species.dmi b/icons/effects/species.dmi index ee3da07c3c5e030c50f5764535f6320968f55e4a..87c047f397a90b64ff2d00519e3a2dc3d0120367 100644 GIT binary patch literal 45274 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 CVUrX9 literal 45505 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 diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index c45bd957a1a82b2e717f4d9f98b53cb35281365e..e9273b898795e626e51fc6ef1137b19b6e415903 100644 GIT binary patch literal 57180 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 literal 17768 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 diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 79df46605a216b4fc10ffb100eb82ce2cec1b8ee..410a187e8bfc22f1a553c078b19d3349c036838c 100644 GIT binary patch literal 71679 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 Q5&!@I07*qoM6N<$f;e~Y$^ZZW literal 4419 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 diff --git a/icons/mob/human_races/r_def_tajaran.dmi b/icons/mob/human_races/r_def_tajaran.dmi index 1e7da69c495e09f7d3acd84a3c38d74a42ec00d5..e62f4228fc61c96a28683b52f9d44f378689994f 100644 GIT binary patch delta 1821 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 V=ZQ%M_zym$^_Q+%naZQE{{U)u+jal| literal 8152 zcma)gbx<7dwr%5XA!u-dLy#Z|t|1WIgAD|C32p-kPOtzWxJ=LxAZXCREeR6bJ-7@G zGca%X-Ft4mck0}#_eWP(?e6}1_3FLXUi*vD(oiPCr^N>VfJo(~q7DF{F`*6s7aJ8J z=l|M(I<*Jr8F?w%ytVRlaQAX>a|Hmu?D#(t#NAAU*ef&|VISLeoep%^%7ugtWj}?6 zX7+q6_!a>FE8@+$K2hTzcxt-z)KXqvWqwYS;Yeb)Bf7 zT#fE)uW-wW%A_vL*i%6+x=xF&o8!I6ic?BLtA(zU@c^P8ZDK*e&rxFnMs6(?T@GVX zL3Q9hWlC}$Y}gx8e(djW9)F4ca59qb4L<7zv47|@_@*&R5u6!vo6YSc$mJwdBiYk+8wAmVB$m_x3 z*qQoBT$TDP{fR?vyq6R%nZk;y6d%1HW(BHal?KD**70*LVm{w>S>(|TV)DJ*JJ772 zegOY!ZQB}N*b-Y8>|AfU9QJEx#A~~@{JY>g(zfh-6nvSpzPGc(3;@+~r1}65iej8e z766W4*9BkwfS6y39h}RB0zh9+N&CU-&gE^QL~kr9CN7{=cO`&mHzIq7df+dwG+6AI z{$_g0aKY+33nm&mU@F%AzJ#-N`$d2#qQ;LZsejDx9ebr|zCf`B0GJ(bM=Hya*JV&D zKN%ayh16ZO6UhgC(z-ga?0QHDSSW_e?=?IK7GsymlAKjH3daVh$qTYcG8-P=nvgO9 zp(6JPaY+FH9TNah0RV;PAJq3TSrl4*PFc{!?G)bBlN{Lf#AMtVba+vE5v%>_RW3PR z)W)77f>X)r(Z(JuM&$-tCK2RbWA=(gWhZjmqHJeNATr zU+kc?qEA#Rmdd??HL<%^}c$CBZe_E9@*UVHSpJV^BM}Fb^f+G(442tIjnO9iXlaSlys{-R~B#FZc2Bu z3?fL4T5`FK?C1|i(EUiP`| zM*2M-C zZ$XpjJrrh*mVv`|i1ve08k~oYL4^Ivf@8P~tuqWicw_c`+4ln<$#fs7d&_QuK?3q# zn?ZedhPeXl@{@}%x;D{wtV|@7l-E-Nq%pWx@HKkO+i1Se^JWOZB6`hE~foasYCXqmKczIEEAW& zl9O3|2M1 zOK?NM3+8M3E=BquEKG`=Tu;zL6xLGQpaxemeC6}}6$$AvNRIx<`gukQQF+Q+&^h`S z+OQzOPAMIPQ**yxXPcpHid<(Kgme;D9dvD*Z8uK&^Wy0HT(k?Ek(!ce{s)n|(&Md} zAJ`JBgmCP2wD&@1GIs0sGv<`uki8e7mCL;v_5dZR_+ezTFNmBP4GkcS)hY*gutD??(FR9g}6kHE3@J$88Kx|OAR!Nj1*XD zrXepJ(?Mr`)Qu9EYOOF-PX9|t?pMASlKVXW|EY)nQJw#*M*b(pB#SjmC-wJO@OePO zo#zIh_&7|L(Ubtd9N^sfuDPO(dV?*^0XS`Uo*_~UEfkmyD*>S@Es5e@LC|#t{z0H6 zg6?IZ%qZmtO^hVI_ydl+-EOWmpbGyh-`S<>6Vf{3 z#rO-Ketw5$fx}RCHSLmCn9SXIqyihfdm`e@4?l$-!zcure?-l}>M-m=u5B zW4AzQEv;fH9r!EV|4t+m$x;cKaihL8;ZI9BYWhZv$q-Uvi7w4M&D{NlfVio^B~b>7 zW9btu;&U`6*(q(on7JE9U)5QfAGK*#t&oX`#2%HZR2JDa&|bfcJGOx�>LfPvH}W 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

fabuum*CGz{b~N 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 literal 5987 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 N002ovPDHLkV1l(SbgBRV literal 4848 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 diff --git a/nano/templates/appearance_changer.tmpl b/nano/templates/appearance_changer.tmpl index 886076f21d2..47a3ce113e2 100644 --- a/nano/templates/appearance_changer.tmpl +++ b/nano/templates/appearance_changer.tmpl @@ -23,7 +23,7 @@ {{/if}} -{{if data.change_eye_color || data.change_skin_tone || data.change_skin_color || data.change_head_accessory_color || data.change_hair_color || data.change_facial_hair_color || data.change_marking_color}} +{{if data.change_eye_color || data.change_skin_tone || data.change_skin_color || data.change_head_accessory_color || data.change_hair_color || data.change_facial_hair_color || data.change_head_marking_color || data.change_body_marking_color || data.change_tail_marking_color}}
Colors: @@ -44,11 +44,23 @@ {{if data.change_hair_color}} {{:helper.link('Change hair color', null, { 'hair_color' : 1})}} {{/if}} + {{if data.change_secondary_hair_color}} + {{:helper.link('Change secondary hair color', null, { 'secondary_hair_color' : 1})}} + {{/if}} {{if data.change_facial_hair_color}} {{:helper.link('Change facial hair color', null, { 'facial_hair_color' : 1})}} {{/if}} - {{if data.change_marking_color}} - {{:helper.link('Change marking color', null, { 'marking_color' : 1})}} + {{if data.change_secondary_facial_hair_color}} + {{:helper.link('Change secondary facial hair color', null, { 'secondary_facial_hair_color' : 1})}} + {{/if}} + {{if data.change_head_marking_color}} + {{:helper.link('Change head marking color', null, { 'head_marking_color' : 1})}} + {{/if}} + {{if data.change_body_marking_color}} + {{:helper.link('Change body marking color', null, { 'body_marking_color' : 1})}} + {{/if}} + {{if data.change_tail_marking_color}} + {{:helper.link('Change tail marking color', null, { 'tail_marking_color' : 1})}} {{/if}}
@@ -93,14 +105,40 @@ {{/if}} -{{if data.change_markings}} +{{if data.change_head_markings}}
- Marking styles: + Head Marking styles:
- {{for data.marking_styles}} - {{:helper.link(value.markingstyle, null, { 'marking' : value.markingstyle}, null, data.marking_style == value.markingstyle ? 'selected' : null)}} + {{for data.head_marking_styles}} + {{:helper.link(value.headmarkingstyle, null, { 'head_marking' : value.headmarkingstyle}, null, data.head_marking_style == value.headmarkingstyle ? 'selected' : null)}} + {{/for}} +
+
+{{/if}} + +{{if data.change_body_markings}} +
+
+ Body Marking styles: +
+
+ {{for data.body_marking_styles}} + {{:helper.link(value.bodymarkingstyle, null, { 'body_marking' : value.bodymarkingstyle}, null, data.body_marking_style == value.bodymarkingstyle ? 'selected' : null)}} + {{/for}} +
+
+{{/if}} + +{{if data.change_tail_markings}} +
+
+ Tail Marking styles: +
+
+ {{for data.tail_marking_styles}} + {{:helper.link(value.tailmarkingstyle, null, { 'tail_marking' : value.tailmarkingstyle}, null, data.tail_marking_style == value.tailmarkingstyle ? 'selected' : null)}} {{/for}}
@@ -118,3 +156,16 @@ {{/if}} + +{{if data.change_alt_head}} +
+
+ Alternate Heads: +
+
+ {{for data.alt_head_styles}} + {{:helper.link(value.altheadstyle, null, { 'alt_head' : value.altheadstyle}, null, data.alt_head_style == value.altheadstyle ? 'selected' : null)}} + {{/for}} +
+
+{{/if}}