Adds hair gradient to DNA (#23134)

* Adds hair gradient to DNA

* Improved define names

* Update code/game/dna/dna2_helpers.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/dna/dna2_helpers.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/dna/dna2_helpers.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/dna/dna2_helpers.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/game/dna/dna2_helpers.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

---------

Co-authored-by: Adrer <adrermail@gmail.com>
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
This commit is contained in:
Adrer
2023-11-12 12:40:50 +01:00
committed by GitHub
parent e1c77e9031
commit de991061cd
2 changed files with 38 additions and 12 deletions
+18 -12
View File
@@ -41,18 +41,24 @@
#define DNA_UI_TAIL_MARK_R 26
#define DNA_UI_TAIL_MARK_G 27
#define DNA_UI_TAIL_MARK_B 28
#define DNA_UI_EYES_R 29
#define DNA_UI_EYES_G 30
#define DNA_UI_EYES_B 31
#define DNA_UI_GENDER 32
#define DNA_UI_BEARD_STYLE 33
#define DNA_UI_HAIR_STYLE 34
#define DNA_UI_HACC_STYLE 35
#define DNA_UI_BACC_STYLE 36
#define DNA_UI_HEAD_MARK_STYLE 37
#define DNA_UI_BODY_MARK_STYLE 38
#define DNA_UI_TAIL_MARK_STYLE 39
#define DNA_UI_LENGTH 40 // Update this when you add something, or you WILL break shit.
#define DNA_UI_HAIR_GRADIENT_R 29
#define DNA_UI_HAIR_GRADIENT_G 30
#define DNA_UI_HAIR_GRADIENT_B 31
#define DNA_UI_HAIR_GRADIENT_X 32
#define DNA_UI_HAIR_GRADIENT_Y 33
#define DNA_UI_EYES_R 34
#define DNA_UI_EYES_G 35
#define DNA_UI_EYES_B 36
#define DNA_UI_GENDER 37
#define DNA_UI_BEARD_STYLE 38
#define DNA_UI_HAIR_STYLE 39
#define DNA_UI_HACC_STYLE 40
#define DNA_UI_BACC_STYLE 41
#define DNA_UI_HAIR_GRADIENT_STYLE 42
#define DNA_UI_HEAD_MARK_STYLE 43
#define DNA_UI_BODY_MARK_STYLE 44
#define DNA_UI_TAIL_MARK_STYLE 45
#define DNA_UI_LENGTH 46 // 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.
+20
View File
@@ -204,6 +204,14 @@
head_organ.hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_B, 255))
head_organ.sec_hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_B, 255))
//Hair Gradient
var/gradient = GetUIValueRange(DNA_UI_HAIR_GRADIENT_STYLE, length(GLOB.hair_gradients_list))
if(ISINDEXSAFE(GLOB.hair_gradients_list, gradient))
head_organ.h_grad_style = GLOB.hair_gradients_list[gradient]
head_organ.h_grad_offset_x = GetUIValueRange(DNA_UI_HAIR_GRADIENT_X, 32) - 16
head_organ.h_grad_offset_y = GetUIValueRange(DNA_UI_HAIR_GRADIENT_Y, 32) - 16
head_organ.h_grad_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR_GRADIENT_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_GRADIENT_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_GRADIENT_B, 255))
//Facial Hair
var/beard = GetUIValueRange(DNA_UI_BEARD_STYLE,GLOB.facial_hair_styles_list.len)
if((beard > 0) && (beard <= GLOB.facial_hair_styles_list.len))
@@ -255,6 +263,10 @@
head_organ.f_style = "Shaved"
var/beard = GLOB.facial_hair_styles_list.Find(head_organ.f_style)
if(!head_organ.h_grad_style)
head_organ.h_grad_style = "None"
var/gradient = GLOB.hair_gradients_list.Find(head_organ.h_grad_style)
// Head Accessory
if(!head_organ.ha_style)
head_organ.ha_style = "None"
@@ -279,8 +291,16 @@
SetUIValueRange(DNA_UI_HACC_G, color2G(head_organ.headacc_colour), 255, 1)
SetUIValueRange(DNA_UI_HACC_B, color2B(head_organ.headacc_colour), 255, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_R, color2R(head_organ.h_grad_colour), 255, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_G, color2G(head_organ.h_grad_colour), 255, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_B, color2B(head_organ.h_grad_colour), 255, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_X, head_organ.h_grad_offset_x + 16, 32, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_Y, head_organ.h_grad_offset_y + 16, 32, 1)
SetUIValueRange(DNA_UI_HAIR_STYLE, hair, GLOB.hair_styles_full_list.len, 1)
SetUIValueRange(DNA_UI_BEARD_STYLE, beard, GLOB.facial_hair_styles_list.len, 1)
SetUIValueRange(DNA_UI_HAIR_GRADIENT_STYLE, gradient, length(GLOB.hair_gradients_list), 1)
var/list/available = character.generate_valid_head_accessories()
SetUIValueRange(DNA_UI_HACC_STYLE, available.Find(head_organ.ha_style), max(length(available), 1), 1)