From 04a0aa3ac843c11245fb03cd9da5c746073faee9 Mon Sep 17 00:00:00 2001 From: Willburd <7099514+Willburd@users.noreply.github.com> Date: Mon, 19 May 2025 02:04:54 -0400 Subject: [PATCH] Body descriptor system removed --- code/game/dna/dna2.dm | 1 - code/game/dna/dna_modifier.dm | 4 - code/game/machinery/computer/cloning.dm | 1 - .../preference_setup/general/03_body.dm | 34 ------ code/modules/client/preferences.dm | 22 ---- .../carbon/human/descriptors/_descriptors.dm | 108 ------------------ .../human/descriptors/descriptors_generic.dm | 45 -------- .../human/descriptors/descriptors_skrell.dm | 27 ----- .../human/descriptors/descriptors_vox.dm | 35 ------ .../mob/living/carbon/human/examine.dm | 4 - code/modules/mob/living/carbon/human/human.dm | 9 -- .../living/carbon/human/species/species.dm | 11 -- code/modules/resleeving/infocore_records.dm | 2 - vorestation.dme | 4 - 14 files changed, 307 deletions(-) delete mode 100644 code/modules/mob/living/carbon/human/descriptors/_descriptors.dm delete mode 100644 code/modules/mob/living/carbon/human/descriptors/descriptors_generic.dm delete mode 100644 code/modules/mob/living/carbon/human/descriptors/descriptors_skrell.dm delete mode 100644 code/modules/mob/living/carbon/human/descriptors/descriptors_vox.dm diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index edb1785fdb2..facf6835fba 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -79,7 +79,6 @@ GLOBAL_LIST_EMPTY_TYPED(dna_genes_bad, /datum/gene/trait) var/species = SPECIES_HUMAN var/list/body_markings = list() var/list/body_markings_genetic = list() - var/list/body_descriptors = null var/list/genetic_modifiers = list() // Modifiers with the MODIFIER_GENETIC flag are saved. Note that only the type is saved, not an instance. // Make a copy of this strand. diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 3485931df0d..4ff878e5364 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -18,7 +18,6 @@ var/languages=null var/list/flavor=null var/gender = null - var/list/body_descriptors = null // Guess we'll keep null. var/list/genetic_modifiers = list() // Modifiers with the MODIFIER_GENETIC flag are saved. Note that only the type is saved, not an instance. /datum/dna2/record/proc/GetData() @@ -48,8 +47,6 @@ newrecord.implant = implant newrecord.flavor = flavor newrecord.gender = gender - if(body_descriptors) - newrecord.body_descriptors = body_descriptors.Copy() newrecord.genetic_modifiers = genetic_modifiers.Copy() return newrecord @@ -617,7 +614,6 @@ var/mob/living/carbon/human/H = WC databuf.mydna.dna.real_name = H.dna.real_name databuf.mydna.gender = H.gender - databuf.mydna.body_descriptors = H.descriptors buffers[bufferId] = databuf return TRUE if("clear") diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 3547b252029..1c7a2df1251 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -421,7 +421,6 @@ R.types = DNA2_BUF_UI|DNA2_BUF_UE|DNA2_BUF_SE R.languages = subject.languages R.gender = subject.gender - R.body_descriptors = subject.descriptors R.flavor = subject.flavor_texts.Copy() for(var/datum/modifier/mod in subject.modifiers) if(mod.flags & MODIFIER_GENETIC) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index fd3b9d99f6c..42a7f2f290d 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -95,7 +95,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.synth_color = save_data["synth_color"] pref.synth_markings = save_data["synth_markings"] pref.bgstate = save_data["bgstate"] - pref.body_descriptors = check_list_copy(save_data["body_descriptors"]) pref.ear_style = save_data["ear_style"] pref.ear_secondary_style = save_data["ear_secondary_style"] pref.ear_secondary_colors = save_data["ear_secondary_colors"] @@ -121,7 +120,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O save_data["synth_color"] = pref.synth_color save_data["synth_markings"] = pref.synth_markings save_data["bgstate"] = pref.bgstate - save_data["body_descriptors"] = check_list_copy(pref.body_descriptors) save_data["ear_style"] = pref.ear_style save_data["ear_secondary_style"] = pref.ear_secondary_style save_data["ear_secondary_colors"] = pref.ear_secondary_colors @@ -251,21 +249,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O O.markings[M] = list("color" = pref.body_markings[M][BP]["color"], "datum" = mark_datum, "priority" = priority, "on" = pref.body_markings[M][BP]["on"]) character.markings_len = priority - var/list/last_descriptors = list() - if(islist(pref.body_descriptors)) - last_descriptors = pref.body_descriptors.Copy() - pref.body_descriptors = list() - - var/datum/species/mob_species = GLOB.all_species[pref.species] - if(LAZYLEN(mob_species.descriptors)) - for(var/entry in mob_species.descriptors) - var/datum/mob_descriptor/descriptor = mob_species.descriptors[entry] - if(istype(descriptor)) - if(isnull(last_descriptors[entry])) - pref.body_descriptors[entry] = descriptor.default_value // Species datums have initial default value. - else - pref.body_descriptors[entry] = CLAMP(last_descriptors[entry], 1, LAZYLEN(descriptor.standalone_value_descriptors)) - /datum/category_item/player_setup_item/general/body/content(var/mob/user) . = list() @@ -386,13 +369,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else . += "

" - if(LAZYLEN(pref.body_descriptors)) - . += "" - for(var/entry in pref.body_descriptors) - var/datum/mob_descriptor/descriptor = mob_species.descriptors[entry] - . += "" - . += "
" + span_bold("[capitalize(descriptor.chargen_label)]:") + "[descriptor.get_standalone_value_descriptor(pref.body_descriptors[entry])]Change

" - . += "" + span_bold("Preview") + "
" . += "
Cycle background" . += "
[pref.equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]" @@ -506,16 +482,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.randomize_appearance_and_body_for() return TOPIC_REFRESH_UPDATE_PREVIEW - else if(href_list["change_descriptor"]) - if(mob_species.descriptors) - var/desc_id = href_list["change_descriptor"] - if(pref.body_descriptors[desc_id]) - var/datum/mob_descriptor/descriptor = mob_species.descriptors[desc_id] - var/choice = tgui_input_list(user, "Please select a descriptor.", "Descriptor", descriptor.chargen_value_descriptors) - if(choice && mob_species.descriptors[desc_id]) // Check in case they sneakily changed species. - pref.body_descriptors[desc_id] = descriptor.chargen_value_descriptors[choice] - return TOPIC_REFRESH - else if(href_list["blood_type"]) var/new_b_type = tgui_input_list(user, "Choose your character's blood-type:", "Character Preference", valid_bloodtypes) if(new_b_type && CanUseTopic(user)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8ee2f069c75..769730b675a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -97,8 +97,6 @@ var/list/preferences_datums = list() var/list/flavour_texts_robot = list() var/custom_link = null - var/list/body_descriptors = list() - var/med_record = "" var/sec_record = "" var/gen_record = "" @@ -351,10 +349,6 @@ var/list/preferences_datums = list() character.update_underwear() character.update_hair() - if(LAZYLEN(character.descriptors)) - for(var/entry in body_descriptors) - character.descriptors[entry] = body_descriptors[entry] - /datum/preferences/proc/open_load_dialog(mob/user) if(selecting_slots) to_chat(user, span_warning("You already have a slot selection dialog open!")) @@ -583,22 +577,6 @@ var/list/preferences_datums = list() O.markings[M] = list("color" = body_markings[M][BP]["color"], "datum" = mark_datum, "priority" = priority, "on" = body_markings[M][BP]["on"]) character.markings_len = priority - var/list/last_descriptors = list() - if(islist(body_descriptors)) - last_descriptors = body_descriptors.Copy() - body_descriptors = list() - - var/datum/species/mob_species = GLOB.all_species[species] - if(LAZYLEN(mob_species.descriptors)) - for(var/entry in mob_species.descriptors) - var/datum/mob_descriptor/descriptor = mob_species.descriptors[entry] - if(istype(descriptor)) - if(isnull(last_descriptors[entry])) - body_descriptors[entry] = descriptor.default_value // Species datums have initial default value. - else - body_descriptors[entry] = CLAMP(last_descriptors[entry], 1, LAZYLEN(descriptor.standalone_value_descriptors)) - character.descriptors = body_descriptors - if (copy_flavour) character.flavor_texts["general"] = flavor_texts["general"] character.flavor_texts["head"] = flavor_texts["head"] diff --git a/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm b/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm deleted file mode 100644 index 44e58d41aa3..00000000000 --- a/code/modules/mob/living/carbon/human/descriptors/_descriptors.dm +++ /dev/null @@ -1,108 +0,0 @@ -/* - Small, mechanically supported physical customisation options. - Also allows for per-species physical information ('his neck markings are more important than yours'). - ETA till a downstream ports this and adds boob and penis size: 2 days. -*/ - -/mob/living/carbon/human/proc/show_descriptors_to(var/mob/user) - if(LAZYLEN(descriptors)) - if(user == src) - for(var/entry in descriptors) - var/datum/mob_descriptor/descriptor = species.descriptors[entry] - LAZYADD(., "[descriptor.get_first_person_message_start()] [descriptor.get_standalone_value_descriptor(descriptors[entry])].") - else - for(var/entry in descriptors) - var/datum/mob_descriptor/descriptor = species.descriptors[entry] - LAZYADD(., descriptor.get_comparative_value_descriptor(descriptors[entry], user, src)) - -/datum/mob_descriptor - var/name // String ident. - var/chargen_label // String ident for chargen. - var/default_value // Initial value for this descriptor. - var/comparison_offset = 0 // Used for examining similar properties between different species. - var/comparative_value_descriptor_equivalent // String for looking at someone with roughly the same property. - var/list/standalone_value_descriptors // String set for initial descriptor text. - var/list/comparative_value_descriptors_smaller // String set for looking at someone smaller than you. - var/list/comparative_value_descriptors_larger // String set for looking at someone larger than you. - var/list/chargen_value_descriptors // Used for chargen selection of values in cases where there is a hidden meaning. - var/skip_species_mention - -/datum/mob_descriptor/New() - if(!chargen_label) - chargen_label = name - if(!chargen_value_descriptors) - chargen_value_descriptors = list() - for(var/i = 1 to LAZYLEN(standalone_value_descriptors)) - chargen_value_descriptors[standalone_value_descriptors[i]] = i - default_value = CEILING(LAZYLEN(standalone_value_descriptors) * 0.5, 1) - ..() - -/datum/mob_descriptor/proc/get_third_person_message_start(var/datum/gender/my_gender) - return "They are" -// return "[my_gender.He] [my_gender.is]" // Doesn't respect ambiguous_genders species var, can't figure out a fix at the moment - -/datum/mob_descriptor/proc/get_first_person_message_start() - return "You are" - -/datum/mob_descriptor/proc/get_standalone_value_descriptor(var/check_value) - if(isnull(check_value)) - check_value = default_value - if(check_value && LAZYLEN(standalone_value_descriptors) >= check_value) - return standalone_value_descriptors[check_value] - -// Build a species-specific descriptor string. -/datum/mob_descriptor/proc/get_initial_comparison_component(var/mob/me, var/datum/gender/my_gender, var/datum/gender/other_gender, var/my_value) - var/species_text - if(ishuman(me) && !skip_species_mention) - var/mob/living/carbon/human/H = me - var/use_name = "\improper [H.species.name]" - species_text = " for \a [use_name]" - . = "[get_third_person_message_start(my_gender)] [get_standalone_value_descriptor(my_value)][species_text]" - -/datum/mob_descriptor/proc/get_secondary_comparison_component(var/datum/gender/my_gender, var/datum/gender/other_gender, var/my_value, var/comparing_value) - var/raw_value = my_value - my_value += comparison_offset - var/variance = abs((my_value)-comparing_value) - if(variance < 1) - . = "[.], [get_comparative_value_string_equivalent(raw_value, my_gender, other_gender)]" - else - variance = variance / LAZYLEN(standalone_value_descriptors) - if(my_value < comparing_value) - . = "[.], [get_comparative_value_string_smaller(variance, my_gender, other_gender)]" - else if(my_value > comparing_value) - . = "[.], [get_comparative_value_string_larger(variance, my_gender, other_gender)]" - -/datum/mob_descriptor/proc/get_comparative_value_descriptor(var/my_value, var/mob/observer, var/mob/me) - - // Store our gender info for later. - var/datum/gender/my_gender = GLOB.gender_datums[me.get_gender()] - var/datum/gender/other_gender = GLOB.gender_datums[observer.get_gender()] - - . = get_initial_comparison_component(me, my_gender, other_gender, my_value) - - // Append the same-descriptor comparison text. - var/comparing_value - if(ishuman(observer)) - var/mob/living/carbon/human/human_observer = observer - if(LAZYLEN(human_observer.descriptors) && !isnull(human_observer.species.descriptors[name]) && !isnull(human_observer.descriptors[name])) - var/datum/mob_descriptor/obs_descriptor = human_observer.species.descriptors[name] - comparing_value = human_observer.descriptors[name] + obs_descriptor.comparison_offset - - if(. && !isnull(comparing_value)) - . = "[.][get_secondary_comparison_component(my_gender, other_gender, my_value, comparing_value)]" - - // We're done, add a full stop. - . = "[.]. " - -/datum/mob_descriptor/proc/get_comparative_value_string_equivalent(var/my_value, var/datum/gender/my_gender, var/datum/gender/other_gender) - return comparative_value_descriptor_equivalent - -/datum/mob_descriptor/proc/get_comparative_value_string_smaller(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender) - var/maxval = LAZYLEN(comparative_value_descriptors_smaller) - value = CLAMP(CEILING(value * maxval, 1), 1, maxval) - return comparative_value_descriptors_smaller[value] - -/datum/mob_descriptor/proc/get_comparative_value_string_larger(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender) - var/maxval = LAZYLEN(comparative_value_descriptors_larger) - value = CLAMP(CEILING(value * maxval, 1), 1, maxval) - return comparative_value_descriptors_larger[value] diff --git a/code/modules/mob/living/carbon/human/descriptors/descriptors_generic.dm b/code/modules/mob/living/carbon/human/descriptors/descriptors_generic.dm deleted file mode 100644 index 934e7c79bcb..00000000000 --- a/code/modules/mob/living/carbon/human/descriptors/descriptors_generic.dm +++ /dev/null @@ -1,45 +0,0 @@ -/datum/mob_descriptor/height - name = "height" - standalone_value_descriptors = list( - "very short", - "short", - "of average height", - "tall", - "very tall" - ) - comparative_value_descriptor_equivalent = "around the same height as you" - comparative_value_descriptors_smaller = list( - "slightly shorter than you", - "shorter than you", - "much shorter than you", - "tiny and insignificant next to you" - ) - comparative_value_descriptors_larger = list( - "slightly taller than you", - "taller than you", - "much taller than you", - "towering over you" - ) - -/datum/mob_descriptor/build - name = "build" - comparative_value_descriptor_equivalent = "around the same build as you" - standalone_value_descriptors = list( - "rail thin", - "thin", - "of average build", - "broad-shouldered", - "heavily built" - ) - comparative_value_descriptors_smaller = list( - "a bit smaller in build than you", - "smaller in build than you", - "much smaller in build than you", - "dwarfed by your height" - ) - comparative_value_descriptors_larger = list( - "slightly larger than you in build", - "built larger than you", - "built much larger than you", - "dwarfing you" - ) diff --git a/code/modules/mob/living/carbon/human/descriptors/descriptors_skrell.dm b/code/modules/mob/living/carbon/human/descriptors/descriptors_skrell.dm deleted file mode 100644 index 64144304174..00000000000 --- a/code/modules/mob/living/carbon/human/descriptors/descriptors_skrell.dm +++ /dev/null @@ -1,27 +0,0 @@ -/datum/mob_descriptor/headtail_length - name = "headtail length" - chargen_label = "headtails (gender)" - skip_species_mention = TRUE - standalone_value_descriptors = list( - "short", - "long" - ) - chargen_value_descriptors = list( - "short (male)" = 1, - "long (female)" = 2 - ) - -/datum/mob_descriptor/headtail_length/get_first_person_message_start() - . = "Your headtails are" - -/datum/mob_descriptor/headtail_length/get_third_person_message_start(var/datum/gender/my_gender) - . = "[my_gender.His] headtails are" - -/datum/mob_descriptor/headtail_length/get_comparative_value_string_equivalent(var/my_value, var/datum/gender/my_gender, var/datum/gender/other_gender) - . = "indicating [other_gender.he] [other_gender.is] [my_value == 1 ? "male" : "female"] like you" - -/datum/mob_descriptor/headtail_length/get_comparative_value_string_smaller(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender) - . = "indicating [other_gender.he] [other_gender.is] male" - -/datum/mob_descriptor/headtail_length/get_comparative_value_string_larger(var/value, var/datum/gender/my_gender, var/datum/gender/other_gender) - . = "indicating [other_gender.he] [other_gender.is] female" diff --git a/code/modules/mob/living/carbon/human/descriptors/descriptors_vox.dm b/code/modules/mob/living/carbon/human/descriptors/descriptors_vox.dm deleted file mode 100644 index fa007fdaa56..00000000000 --- a/code/modules/mob/living/carbon/human/descriptors/descriptors_vox.dm +++ /dev/null @@ -1,35 +0,0 @@ -/datum/mob_descriptor/vox_markings - name = "neck markings" - chargen_label = "neck markings (rank)" - skip_species_mention = TRUE - standalone_value_descriptors = list( - "very simplistic", - "rather simple", - "complex", - "moderately complex", - "bewilderingly complex" - ) - chargen_value_descriptors = list( - "servitor" = 1, - "labourer" = 2, - "cannon fodder" = 3, - "raider" = 4, - "leader" = 5 - ) - comparative_value_descriptor_equivalent = "around the same importance as yours" - comparative_value_descriptors_smaller = list( - "slightly less important than yours", - "much less important than yours", - "insignificant and beneath your notice" - ) - comparative_value_descriptors_larger = list( - "slightly more important than yours", - "much more important than yours", - "commanding your unquestioning obedience and respect" - ) - -/datum/mob_descriptor/vox_markings/get_first_person_message_start() - . = "Your neck markings are" - -/datum/mob_descriptor/vox_markings/get_third_person_message_start(var/datum/gender/my_gender) - . = "[my_gender.His] neck markings are" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index b3e8f468402..b43a5da4fea 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -454,10 +454,6 @@ if(applying_pressure) msg += applying_pressure - var/show_descs = show_descriptors_to(user) - if(show_descs) - msg += span_notice("[jointext(show_descs, "
")]") - if(pose) if(!findtext(pose, regex("\[.?!]$"))) // Will be zero if the last character is not a member of [.?!] pose = addtext(pose,".") //Makes sure all emotes end with a period. diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9915e1017d3..f36597f2e8b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1321,15 +1321,6 @@ pixel_y = default_pixel_y center_offset = species.center_offset - if(LAZYLEN(descriptors)) - descriptors = null - - if(LAZYLEN(species.descriptors)) - descriptors = list() - for(var/desctype in species.descriptors) - var/datum/mob_descriptor/descriptor = species.descriptors[desctype] - descriptors[desctype] = descriptor.default_value - if(vessel) initialize_vessel() diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 0e7cad06424..42ca30d9cda 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -302,8 +302,6 @@ var/pass_flags = 0 - var/list/descriptors = list() - //This is used in character setup preview generation (prefences_setup.dm) and human mob //rendering (update_icons.dm) var/color_mult = 0 @@ -385,15 +383,6 @@ else hud = new() - // Prep the descriptors for the species - if(LAZYLEN(descriptors)) - var/list/descriptor_datums = list() - for(var/desctype in descriptors) - var/datum/mob_descriptor/descriptor = new desctype - descriptor.comparison_offset = descriptors[desctype] - descriptor_datums[descriptor.name] = descriptor - descriptors = descriptor_datums - //If the species has eyes, they are the default vision organ if(!vision_organ && has_organ[O_EYES]) vision_organ = O_EYES diff --git a/code/modules/resleeving/infocore_records.dm b/code/modules/resleeving/infocore_records.dm index ef5832cebcb..4f8e1cdeea3 100644 --- a/code/modules/resleeving/infocore_records.dm +++ b/code/modules/resleeving/infocore_records.dm @@ -264,8 +264,6 @@ if(!mydna.dna.real_name) mydna.dna.real_name = backup_name H.real_name = mydna.dna.real_name - H.gender = mydna.gender - H.descriptors = mydna.body_descriptors for(var/datum/language/L in mydna.languages) H.add_language(L.name) H.suiciding = 0 diff --git a/vorestation.dme b/vorestation.dme index 0314b891d3e..be4654a7917 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3179,10 +3179,6 @@ #include "code\modules\mob\living\carbon\human\update_icons.dm" #include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm" #include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled_vr.dm" -#include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm" -#include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm" -#include "code\modules\mob\living\carbon\human\descriptors\descriptors_skrell.dm" -#include "code\modules\mob\living\carbon\human\descriptors\descriptors_vox.dm" #include "code\modules\mob\living\carbon\human\species\species.dm" #include "code\modules\mob\living\carbon\human\species\species_attack.dm" #include "code\modules\mob\living\carbon\human\species\species_getters.dm"