From ccfce7cb6498898f404948983e5ccc75d866490b Mon Sep 17 00:00:00 2001
From: Ghommie <42542238+Ghommie@users.noreply.github.com>
Date: Tue, 5 May 2020 06:22:58 +0200
Subject: [PATCH] Makes wings/horns colors dna features instead of human
defines
---
code/__HELPERS/mobs.dm | 6 ++--
code/modules/client/preferences.dm | 25 ++++++-------
code/modules/client/preferences_savefile.dm | 36 ++++++-------------
.../mob/dead/new_player/preferences_setup.dm | 2 --
.../mob/living/carbon/human/human_defines.dm | 6 +---
.../mob/living/carbon/human/species.dm | 16 ++++-----
6 files changed, 32 insertions(+), 59 deletions(-)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index e69052ad8d..e0714a87b3 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -163,9 +163,11 @@
"tail_lizard" = pick(GLOB.tails_list_lizard),
"tail_human" = "None",
"wings" = "None",
+ "wings_color" = "FFF",
"deco_wings" = "None",
"snout" = pick(GLOB.snouts_list),
- "horns" = pick(GLOB.horns_list),
+ "horns" = "None",
+ "horns_color" = "85615a",
"ears" = "None",
"frills" = pick(GLOB.frills_list),
"spines" = pick(GLOB.spines_list),
@@ -174,7 +176,7 @@
"caps" = pick(GLOB.caps_list),
"insect_wings" = pick(GLOB.insect_wings_list),
"insect_fluff" = "None",
- "insect_markings" = pick(GLOB.insect_markings_list),
+ "insect_markings" = pick(GLOB.insect_markings_list),
"taur" = "None",
"mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None",
"mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None",
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index abe43e38ae..bb3a435258 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -94,8 +94,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/use_custom_skin_tone = FALSE
var/eye_color = "000" //Eye color
- var/horn_color = "85615a" //Horn color
- var/wing_color = "fff" //Wing color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF",
"mcolor2" = "FFF",
@@ -104,8 +102,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"tail_human" = "None",
"snout" = "Round",
"horns" = "None",
+ "horns_color" = "85615a",
"ears" = "None",
"wings" = "None",
+ "wings_color" = "FFF",
"frills" = "None",
"deco_wings" = "None",
"spines" = "None",
@@ -496,7 +496,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "
Horns
"
dat += "[features["horns"]]"
- dat += " Change
"
+ dat += " Change
"
mutant_category++
@@ -609,7 +609,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Decorative wings
"
dat += "[features["deco_wings"]]"
- dat += " Change
"
+ dat += " Change
"
if(pref_species.mutant_bodyparts["insect_wings"])
if(!mutant_category)
@@ -618,7 +618,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Insect wings
"
dat += "[features["insect_wings"]]"
- dat += " Change
"
+ dat += " Change
"
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
dat += ""
@@ -1770,12 +1770,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["horns"] = new_horns
if("horns_color")
- var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+horn_color) as color|null
+ var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+features["horns_color"]) as color|null
if(new_horn_color)
if (new_horn_color == "#000000")
- horn_color = "#85615A"
+ features["horns_color"] = "85615A"
else
- horn_color = sanitize_hexcolor(new_horn_color)
+ features["horns_color"] = sanitize_hexcolor(new_horn_color)
if("wings")
var/new_wings
@@ -1784,12 +1784,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["wings"] = new_wings
if("wings_color")
- var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+wing_color) as color|null
+ var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+features["wings_color"]) as color|null
if(new_wing_color)
if (new_wing_color == "#000000")
- wing_color = "#FFFFFF"
+ features["wings_color"] = "#FFFFFF"
else
- wing_color = sanitize_hexcolor(new_wing_color)
+ features["wings_color"] = sanitize_hexcolor(new_wing_color)
if("frills")
var/new_frills
@@ -2459,9 +2459,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
organ_eyes.old_eye_color = eye_color
character.hair_color = hair_color
character.facial_hair_color = facial_hair_color
- character.horn_color = horn_color
- character.wing_color = wing_color
-
character.skin_tone = skin_tone
character.dna.skin_tone_override = use_custom_skin_tone ? skin_tone : null
character.hair_style = hair_style
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 98b87f8d70..6872def704 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 29
+#define SAVEFILE_VERSION_MAX 30
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -181,7 +181,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(lickable)
ENABLE_BITFIELD(vore_flags,LICKABLE)
- if(current_version < 29)
+ if(current_version < 30)
switch(features["taur"])
if("Husky", "Lab", "Shepherd", "Fox", "Wolf")
features["taur"] = "Canine"
@@ -190,6 +190,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if("Cow")
features["taur"] = "Cow (Spotted)"
+ if(current_version < 31)
+ S["wing_color"] >> features["wings_color"]
+ S["horn_color"] >> features["horns_color"]
+
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
@@ -421,15 +425,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(newtype)
pref_species = new newtype
- if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
- WRITE_FILE(S["features["mcolor"]"] , "#FFF")
-
- if(!S["features["horn_color"]"] || S["features["horn_color"]"] == "#000")
- WRITE_FILE(S["features["horn_color"]"] , "#85615a")
-
- if(!S["features["wing_color"]"] || S["features["wing_color"]"] == "#000")
- WRITE_FILE(S["features["wing_color"]"] , "#FFF")
-
//Character
S["real_name"] >> real_name
S["nameless"] >> nameless
@@ -453,8 +448,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["shirt_color"] >> shirt_color
S["socks"] >> socks
S["socks_color"] >> socks_color
- S["horn_color"] >> horn_color
- S["wing_color"] >> wing_color
S["backbag"] >> backbag
S["jumpsuit_style"] >> jumpsuit_style
S["uplink_loc"] >> uplink_spawn_loc
@@ -564,15 +557,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!custom_names[custom_name_id])
custom_names[custom_name_id] = get_default_name(custom_name_id)
- if(!features["mcolor"] || features["mcolor"] == "#000")
- features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
-
- if(!features["horn_color"] || features["horn_color"] == "#000")
- features["horn_color"] = "85615a"
-
- if(!features["wing_color"] || features["wing_color"] == "#000")
- features["wing_color"] = "FFFFFF"
-
nameless = sanitize_integer(nameless, 0, 1, initial(nameless))
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
@@ -599,8 +583,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else
skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones - GLOB.nonstandard_skin_tones, initial(skin_tone))
- horn_color = sanitize_hexcolor(horn_color, 3, FALSE)
- wing_color = sanitize_hexcolor(wing_color, 3, FALSE, "#FFFFFF")
+ features["horns_color"] = sanitize_hexcolor(features["horns_color"], 3, FALSE, "85615a")
+ features["wings_color"] = sanitize_hexcolor(features["wings_color"], 3, FALSE, "FFFFFF")
backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag))
jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style))
uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc))
@@ -714,8 +698,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["shirt_color"] , shirt_color)
WRITE_FILE(S["socks"] , socks)
WRITE_FILE(S["socks_color"] , socks_color)
- WRITE_FILE(S["horn_color"] , horn_color)
- WRITE_FILE(S["wing_color"] , wing_color)
+ WRITE_FILE(S["horns_color"] , features["horns_color"])
+ WRITE_FILE(S["wings_color"] , features["wings_color"])
WRITE_FILE(S["backbag"] , backbag)
WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style)
WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc)
diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm
index 317efc2c1f..9a0d9f9242 100644
--- a/code/modules/mob/dead/new_player/preferences_setup.dm
+++ b/code/modules/mob/dead/new_player/preferences_setup.dm
@@ -18,8 +18,6 @@
hair_color = random_short_color()
facial_hair_color = hair_color
eye_color = random_eye_color()
- horn_color = "85615a"
- wing_color = "fff"
if(!pref_species)
var/rando_race = pick(GLOB.roundstart_races)
pref_species = new rando_race()
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 68c312b19c..59766b03a4 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -11,7 +11,7 @@
status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
-
+
//Hair colour and style
var/hair_color = "000"
var/hair_style = "Bald"
@@ -23,10 +23,6 @@
//Eye colour
var/eye_color = "000"
- var/horn_color = "85615a" //specific horn colors, because why not?
-
- var/wing_color = "fff" //wings too
-
var/skin_tone = "caucasian1" //Skin tone
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 978976111c..aeab0042ac 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -35,10 +35,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
-
- var/horn_color //specific horn colors, because why not?
- var/wing_color
-
var/use_skintones = NO_SKINTONES // does it use skintones or not? (spoiler alert this is only used by humans)
var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id.
var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc)
@@ -882,9 +878,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(EYECOLOR)
accessory_overlay.color = "#[H.eye_color]"
if(HORNCOLOR)
- accessory_overlay.color = "#[H.horn_color]"
+ accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- accessory_overlay.color = "#[H.wing_color]"
+ accessory_overlay.color = "#[H.dna.features["wings_color"]]"
else
accessory_overlay.color = forced_colour
else
@@ -938,9 +934,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
extra_accessory_overlay.color = "#[H.eye_color]"
if(HORNCOLOR)
- extra_accessory_overlay.color = "#[H.horn_color]"
+ extra_accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- extra_accessory_overlay.color = "#[H.wing_color]"
+ extra_accessory_overlay.color = "#[H.dna.features["wings_color"]]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -979,9 +975,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
else
extra2_accessory_overlay.color = "#[H.hair_color]"
if(HORNCOLOR)
- extra2_accessory_overlay.color = "#[H.horn_color]"
+ extra2_accessory_overlay.color = "#[H.dna.features["horns_color"]]"
if(WINGCOLOR)
- extra2_accessory_overlay.color = "#[H.wing_color]"
+ extra2_accessory_overlay.color = "#[H.dna.features["wings_color"]]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra2_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]