diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index 70456bee77..d7fd20ac77 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -63,12 +63,12 @@ proc/random_facial_hair_style(gender, species = "Human") return f_style -proc/sanitize_name(name, species = "Human") +proc/sanitize_name(name, species = "Human", robot = 0) var/datum/species/current_species if(species) current_species = all_species[species] - return current_species ? current_species.sanitize_name(name) : sanitizeName(name) + return current_species ? current_species.sanitize_name(name, robot) : sanitizeName(name, MAX_NAME_LEN, robot) proc/random_name(gender, species = "Human") diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 68cb5276fa..bd175e4fcc 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -85,7 +85,7 @@ // 0 .. 9 if(48 to 57) //Numbers if(!last_char_group) continue //suppress at start of string - if(!allow_numbers) continue + if(!allow_numbers) continue // If allow_numbers is 0, then don't do this. output += ascii2text(ascii_char) number_of_alphanumeric++ last_char_group = 3 diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index 23b4245750..d991cd4825 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -32,7 +32,7 @@ datum/preferences/proc/set_biological_gender(var/gender) pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age)) pref.biological_gender = sanitize_inlist(pref.biological_gender, get_genders(), pick(get_genders())) pref.identifying_gender = (pref.identifying_gender in all_genders_define_list) ? pref.identifying_gender : pref.biological_gender - pref.real_name = sanitize_name(pref.real_name, pref.species) + pref.real_name = sanitize_name(pref.real_name, pref.species, is_FBP()) if(!pref.real_name) pref.real_name = random_name(pref.identifying_gender, pref.species) pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint)) @@ -76,7 +76,7 @@ datum/preferences/proc/set_biological_gender(var/gender) if(href_list["rename"]) var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null if (!isnull(raw_name) && CanUseTopic(user)) - var/new_name = sanitize_name(raw_name, pref.species) + var/new_name = sanitize_name(raw_name, pref.species, is_FBP()) if(new_name) pref.real_name = new_name return TOPIC_REFRESH diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 3e239badc7..bbeb321d5f 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -654,6 +654,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O while(null in pref.rlimb_data) pref.rlimb_data -= null + // Sanitize the name so that there aren't any numbers sticking around. + pref.real_name = sanitize_name(pref.real_name, pref.species) + if(!pref.real_name) + pref.real_name = random_name(pref.identifying_gender, pref.species) + /datum/category_item/player_setup_item/general/body/proc/SetSpecies(mob/user) if(!pref.species_preview || !(pref.species_preview in all_species)) pref.species_preview = "Human" diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index ff16d332fe..b63e625703 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -194,8 +194,8 @@ inherent_verbs = list() inherent_verbs |= /mob/living/carbon/human/proc/regurgitate -/datum/species/proc/sanitize_name(var/name) - return sanitizeName(name) +/datum/species/proc/sanitize_name(var/name, var/robot = 0) + return sanitizeName(name, MAX_NAME_LEN, robot) /datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1) var/boxtype = /obj/item/weapon/storage/box/survival //Default survival box diff --git a/html/changelogs/Atermonera - FBPnumbernames.yml b/html/changelogs/Atermonera - FBPnumbernames.yml new file mode 100644 index 0000000000..d96b3075e5 --- /dev/null +++ b/html/changelogs/Atermonera - FBPnumbernames.yml @@ -0,0 +1,13 @@ +# Your name. +author: Atermonera + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "FBPs can now have numbers in their name. The first character cannot be a number." \ No newline at end of file