Merge pull request #1506 from Azarak/fgohap

Rendering front genitals over hair as a preference.
This commit is contained in:
Dahlular
2021-12-28 01:52:43 -08:00
committed by GitHub
4 changed files with 38 additions and 30 deletions
+27 -26
View File
@@ -27,31 +27,32 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
//Human Overlays Indexes/////////
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
#define MUTATIONS_LAYER 32 //mutations. Tk headglows, cold resistance glow, etc
#define GENITALS_BEHIND_LAYER 31 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 30 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 29 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 28 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 25 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 24 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 23
#define ID_LAYER 22
#define HANDS_PART_LAYER 21
#define SHOES_LAYER 20
#define GLOVES_LAYER 19
#define EARS_LAYER 18
#define BODY_TAUR_LAYER 17
#define GENITALS_UNDER_LAYER 16
#define SUIT_LAYER 15
#define GLASSES_LAYER 14
#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 12
#define NECK_LAYER 11
#define BACK_LAYER 10
#define GENITALS_FRONT_LAYER 9
#define HAIR_LAYER 8 //TODO: make part of head layer?
#define MUTATIONS_LAYER 33 //mutations. Tk headglows, cold resistance glow, etc
#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 27 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 26 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 25 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 24
#define ID_LAYER 23
#define HANDS_PART_LAYER 22
#define SHOES_LAYER 21
#define GLOVES_LAYER 20
#define EARS_LAYER 19
#define BODY_TAUR_LAYER 18
#define GENITALS_UNDER_LAYER 17
#define SUIT_LAYER 16
#define GLASSES_LAYER 15
#define BELT_LAYER 14 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 13
#define NECK_LAYER 12
#define BACK_LAYER 11
#define GENITALS_FRONT_LAYER 10
#define HAIR_LAYER 9 //TODO: make part of head layer?
#define GENITALS_FRONT_OVER_HAIR_LAYER 8
#define FACEMASK_LAYER 7
#define HEAD_LAYER 6
#define HANDCUFF_LAYER 5
@@ -59,7 +60,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define HANDS_LAYER 3
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 32 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 33 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
+5 -1
View File
@@ -192,7 +192,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"ipc_antenna" = "None",
"flavor_text" = "",
"silicon_flavor_text" = "",
"ooc_text" = ""
"ooc_text" = "",
"front_genitals_over_hair" = FALSE
)
/// Security record note section
@@ -435,6 +436,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=all;task=random'>Random Body</A><BR>"
dat += "<b>Always Random Body:</b><a href='?_src_=prefs;preference=all'>[be_random_body ? "Yes" : "No"]</A><BR>"
dat += "<br><b>Cycle background:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=cycle_bg;task=input'>[bgstate]</a><BR>"
dat += "<b>Render front genitals over hair:</b><a href='?_src_=prefs;task=front_genitals_over_hair'>[features["front_genitals_over_hair"] ? "Yes" : "No"]</A><BR>"
var/use_skintones = pref_species.use_skintones
if(use_skintones)
@@ -1681,6 +1683,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
return TRUE
switch(href_list["task"])
if("front_genitals_over_hair")
features["front_genitals_over_hair"] = !features["front_genitals_over_hair"]
if("random")
switch(href_list["preference"])
if("name")
@@ -353,6 +353,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_human_tail"] >> features["tail_human"]
S["feature_human_ears"] >> features["ears"]
S["feature_deco_wings"] >> features["deco_wings"]
S["feature_front_genitals_over_hair"] >> features["feature_front_genitals_over_hair"]
S["hide_ckey"] >> hide_ckey //saved per-character
@@ -620,6 +621,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_moth_fluff"] , features["moth_fluff"])
WRITE_FILE(S["feature_moth_markings"] , features["moth_markings"])
WRITE_FILE(S["feature_deco_wings"] , features["deco_wings"])
WRITE_FILE(S["feature_front_genitals_over_hair"], features["front_genitals_over_hair"])
//Custom names
for(var/custom_name_id in GLOB.preferences_custom_names)
@@ -419,6 +419,7 @@
for(var/L in relevant_layers) //Less hardcode
H.remove_overlay(L)
H.remove_overlay(GENITALS_FRONT_OVER_HAIR_LAYER)
//start scanning for genitals
for(var/obj/item/organ/O in H.internal_organs)
@@ -432,6 +433,8 @@
//start applying overlays
for(var/layer in relevant_layers)
var/layertext = genitals_layertext(layer)
if(layer == GENITALS_FRONT_LAYER && H.dna.features["front_genitals_over_hair"])
layer = GENITALS_FRONT_OVER_HAIR_LAYER
for(var/obj/item/organ/genital/G in genitals_to_add)
var/datum/sprite_accessory/S
size = G.size
@@ -544,7 +547,5 @@
if(LAZYLEN(standing))
H.overlays_standing[layer] = standing.Copy()
H.apply_overlay(layer)
standing = list()
for(var/L in relevant_layers)
H.apply_overlay(L)