Size preferences made configurable.

This commit is contained in:
Ghommie
2020-03-22 01:07:51 +01:00
parent cb537f431b
commit 6d4433dd77
9 changed files with 42 additions and 16 deletions

View File

@@ -39,15 +39,14 @@
#define DEF_VAGINA_SHAPE "Human" #define DEF_VAGINA_SHAPE "Human"
#define COCK_SIZE_MIN 1
#define COCK_SIZE_DEF 6 #define COCK_SIZE_DEF 6
#define COCK_SIZE_MAX 20
#define COCK_DIAMETER_RATIO_MAX 0.42 #define COCK_DIAMETER_RATIO_MAX 0.42
#define COCK_DIAMETER_RATIO_DEF 0.25 #define COCK_DIAMETER_RATIO_DEF 0.25
#define COCK_DIAMETER_RATIO_MIN 0.15 #define COCK_DIAMETER_RATIO_MIN 0.15
#define DEF_COCK_SHAPE "Human" #define DEF_COCK_SHAPE "Human"
#define BALLS_VOLUME_BASE 25 #define BALLS_VOLUME_BASE 25
#define BALLS_VOLUME_MULT 1 #define BALLS_VOLUME_MULT 1

View File

@@ -60,7 +60,6 @@ GLOBAL_LIST_EMPTY(genitals_list)
GLOBAL_LIST_EMPTY(cock_shapes_list) GLOBAL_LIST_EMPTY(cock_shapes_list)
GLOBAL_LIST_EMPTY(gentlemans_organ_names) GLOBAL_LIST_EMPTY(gentlemans_organ_names)
GLOBAL_LIST_EMPTY(balls_shapes_list) GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(breasts_size_list)
GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(breasts_shapes_list)
GLOBAL_LIST_EMPTY(vagina_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list)
GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc

View File

@@ -54,7 +54,6 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ",
"cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret",
"baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket", "baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket",

View File

@@ -194,7 +194,7 @@
"balls_efficiency" = CUM_EFFICIENCY, "balls_efficiency" = CUM_EFFICIENCY,
"has_breasts" = FALSE, "has_breasts" = FALSE,
"breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"breasts_size" = pick(GLOB.breasts_size_list), "breasts_size" = pick(CONFIG_GET(keyed_list/breasts_cups_prefs)),
"breasts_shape" = DEF_BREASTS_SHAPE, "breasts_shape" = DEF_BREASTS_SHAPE,
"breasts_producing" = FALSE, "breasts_producing" = FALSE,
"has_vag" = FALSE, "has_vag" = FALSE,

View File

@@ -423,3 +423,16 @@
config_entry_value = 3 config_entry_value = 3
/datum/config_entry/flag/suicide_allowed /datum/config_entry/flag/suicide_allowed
/datum/config_entry/keyed_list/breasts_cups_prefs
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
config_entry_value = list ("a", "b", "c", "d", "e") //keep these lowercase
/datum/config_entry/number/penis_min_inches_prefs
config_entry_value = 1
min_val = 0
/datum/config_entry/number/penis_max_inches_prefs
config_entry_value = 20
min_val = 0

View File

@@ -1924,9 +1924,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>") to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>")
if("cock_length") if("cock_length")
var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null var/min_D = CONFIG_GET(number/penis_min_inches_prefs)
var/max_D = CONFIG_GET(number/penis_max_inches_prefs)
var/new_length = input(user, "Penis length in inches:\n([min_D]-[max_D])", "Character Preference") as num|null
if(new_length) if(new_length)
features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) features["cock_length"] = CLAMP(round(new_length), min_D, max_D)
if("cock_shape") if("cock_shape")
var/new_shape var/new_shape
@@ -1952,8 +1954,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["balls_shape"] = new_shape features["balls_shape"] = new_shape
if("breasts_size") if("breasts_size")
var/new_size var/new_size = input(user, "Breast Size", "Character Preference") as null|anything in CONFIG_GET(keyed_list/breasts_cups_prefs)
new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list
if(new_size) if(new_size)
features["breasts_size"] = new_size features["breasts_size"] = new_size

View File

@@ -545,10 +545,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None") features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None")
features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list) features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list)
features["breasts_size"] = sanitize_inlist(features["breasts_size"], GLOB.breasts_size_list, BREASTS_SIZE_DEF) var/static/list/B_sizes = CONFIG_GET(keyed_list/breasts_cups_prefs)
var/static/min_D = CONFIG_GET(number/penis_min_inches_prefs)
var/static/max_D = CONFIG_GET(number/penis_max_inches_prefs)
features["breasts_size"] = sanitize_inlist(features["breasts_size"], B_sizes, BREASTS_SIZE_DEF)
features["cock_length"] = sanitize_integer(features["cock_length"], min_D, max_D, COCK_SIZE_DEF)
features["breasts_shape"] = sanitize_inlist(features["breasts_shape"], GLOB.breasts_shapes_list, DEF_BREASTS_SHAPE) features["breasts_shape"] = sanitize_inlist(features["breasts_shape"], GLOB.breasts_shapes_list, DEF_BREASTS_SHAPE)
features["cock_shape"] = sanitize_inlist(features["cock_shape"], GLOB.cock_shapes_list, DEF_COCK_SHAPE) features["cock_shape"] = sanitize_inlist(features["cock_shape"], GLOB.cock_shapes_list, DEF_COCK_SHAPE)
features["cock_length"] = sanitize_integer(features["cock_length"], COCK_SIZE_MIN, COCK_SIZE_MAX, COCK_SIZE_DEF)
features["balls_shape"] = sanitize_inlist(features["balls_shape"], GLOB.balls_shapes_list, DEF_BALLS_SHAPE) features["balls_shape"] = sanitize_inlist(features["balls_shape"], GLOB.balls_shapes_list, DEF_BALLS_SHAPE)
features["vag_shape"] = sanitize_inlist(features["vag_shape"], GLOB.vagina_shapes_list, DEF_VAGINA_SHAPE) features["vag_shape"] = sanitize_inlist(features["vag_shape"], GLOB.vagina_shapes_list, DEF_VAGINA_SHAPE)
features["breasts_color"] = sanitize_hexcolor(features["breasts_color"], 3, FALSE, "FFF") features["breasts_color"] = sanitize_hexcolor(features["breasts_color"], 3, FALSE, "FFF")

View File

@@ -603,10 +603,11 @@
else if (select_alteration == "Penis Length") else if (select_alteration == "Penis Length")
for(var/obj/item/organ/genital/penis/X in H.internal_organs) for(var/obj/item/organ/genital/penis/X in H.internal_organs)
qdel(X) qdel(X)
var/new_length var/min_D = CONFIG_GET(number/penis_min_inches_prefs)
new_length = input(owner, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Genital Alteration") as num|null var/max_D = CONFIG_GET(number/penis_max_inches_prefs)
var/new_length = input(owner, "Penis length in inches:\n([min_D]-[max_D])", "Genital Alteration") as num|null
if(new_length) if(new_length)
H.dna.features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) H.dna.features["cock_length"] = CLAMP(round(new_length), min_D, max_D)
H.update_genitals() H.update_genitals()
H.apply_overlay() H.apply_overlay()
H.give_genital(/obj/item/organ/genital/testicles) H.give_genital(/obj/item/organ/genital/testicles)
@@ -615,8 +616,7 @@
else if (select_alteration == "Breast Size") else if (select_alteration == "Breast Size")
for(var/obj/item/organ/genital/breasts/X in H.internal_organs) for(var/obj/item/organ/genital/breasts/X in H.internal_organs)
qdel(X) qdel(X)
var/new_size var/new_size = input(owner, "Breast Size", "Genital Alteration") as null|anything in CONFIG_GET(keyed_list/breasts_cups_prefs)
new_size = input(owner, "Breast Size", "Genital Alteration") as null|anything in GLOB.breasts_size_list
if(new_size) if(new_size)
H.dna.features["breasts_size"] = new_size H.dna.features["breasts_size"] = new_size
H.update_genitals() H.update_genitals()

View File

@@ -609,3 +609,14 @@ DROPPED_MODES 3
## Whether the suicide verb is allowed. ## Whether the suicide verb is allowed.
# SUICIDE_ALLOWED # SUICIDE_ALLOWED
## Breast cups selectable from the character creation menu. Keep em lowercase.
BREASTS_CUPS_PREFS a
BREASTS_CUPS_PREFS b
BREASTS_CUPS_PREFS c
BREASTS_CUPS_PREFS d
BREASTS_CUPS_PREFS e
## Minimum and maximum limits for penis length from the character creation menu.
PENIS_MIN_INCHES_PREFS 1
PENIS_MIN_INCHES_PREFS 20