diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index e6a76d88e8e..eee188945a0 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -64,6 +64,7 @@ datum/preferences
var/g_eyes = 0 //Eye color
var/b_eyes = 0 //Eye color
var/species = "Human"
+ var/language = "None" //Secondary language
//Mob preview
var/icon/preview_icon_front = null
@@ -251,6 +252,7 @@ datum/preferences
dat += "(®)"
dat += "
"
dat += "Species: [species]
"
+ dat += "Secondary Language:
[language]
"
dat += "Blood Type: [b_type]
"
dat += "Skin Tone: [-s_tone + 35]/220
"
//dat += "Skin pattern: Adjust
"
@@ -851,6 +853,32 @@ datum/preferences
s_tone = 0
+ if("language")
+ var/list/new_language = list("None")
+ var/language_whitelisted = 0
+ if(config.usealienwhitelist)
+ if(is_alien_whitelisted(user, "Language_Soghun"))
+ new_language += "Unathi"
+ language_whitelisted = 1
+ if(is_alien_whitelisted(user, "Language_Tajaran"))
+ new_language += "Tajaran"
+ language_whitelisted = 1
+ if(is_alien_whitelisted(user, "Language_Skrell"))
+ new_language += "Skrell"
+ language_whitelisted = 1
+ if(is_alien_whitelisted(user, "Language_Kidan"))
+ new_language += "Kidan"
+ language_whitelisted = 1
+
+ if(!language_whitelisted)
+ alert(user, "You cannot select a secondary language as you need to be whitelisted. If you wish to enable a language, post in the Alien Whitelist forums.")
+
+ else
+ new_language += "Unathi"
+ new_language += "Tajaran"
+ new_language += "Skrell"
+ new_language += "Kidan"
+ language = input("Please select a secondary language", "Character Generation", null) in new_language
if("metadata")
var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index d151999e654..43b779c28e5 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -1,5 +1,5 @@
#define SAVEFILE_VERSION_MIN 8
-#define SAVEFILE_VERSION_MAX 9
+#define SAVEFILE_VERSION_MAX 10
//handles converting savefiles to new formats
//MAKE SURE YOU KEEP THIS UP TO DATE!
@@ -103,6 +103,7 @@
S["gender"] >> gender
S["age"] >> age
S["species"] >> species
+ S["language"] >> language
//colors to be consolidated into hex strings (requires some work with dna code)
S["hair_red"] >> r_hair
@@ -152,6 +153,7 @@
metadata = sanitize_text(metadata, initial(metadata))
real_name = reject_bad_name(real_name)
if(isnull(species)) species = "Human"
+ if(isnull(language)) language = "None"
if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
if(!real_name) real_name = random_name()
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
@@ -206,6 +208,7 @@
S["gender"] << gender
S["age"] << age
S["species"] << species
+ S["language"] << language
S["hair_red"] << r_hair
S["hair_green"] << g_hair
S["hair_blue"] << b_hair
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 7c9ef307e69..5e7c613004f 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -356,6 +356,20 @@
new_character.dna.mutantrace = "kidan"
new_character.kidan_talk_understand = 1
+ if(client.prefs.language == "Tajaran")
+ if(is_alien_whitelisted(src, "Language_Tajaran") || !config.usealienwhitelist)
+ new_character.tajaran_talk_understand = 1
+ if(client.prefs.language == "Unathi")
+ if(is_alien_whitelisted(src, "Language_Soghun") || !config.usealienwhitelist)
+ new_character.soghun_talk_understand = 1
+ if(client.prefs.language == "Skrell")
+ if(is_alien_whitelisted(src, "Language_Skrell") || !config.usealienwhitelist)
+ new_character.skrell_talk_understand = 1
+ if(client.prefs.language == "Kidan")
+ if(is_alien_whitelisted(src, "Language_Kidan") || !config.usealienwhitelist)
+ new_character.kidan_talk_understand = 1
+
+
if(ticker.random_players)
new_character.gender = pick(MALE, FEMALE)
client.prefs.real_name = random_name()