diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 12ae785a553..ce82bd40858 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -952,11 +952,12 @@ datum/preferences if("language") var/languages_available var/list/new_languages = list("None") + var/datum/species/S = all_species[species] if(config.usealienwhitelist) for(var/L in all_languages) var/datum/language/lang = all_languages[L] - if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED )))) + if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))||(S && (L in S.secondary_langs)))) new_languages += lang languages_available = 1 diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 743e57d4e9d..40df30a5378 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -12,6 +12,7 @@ var/primitive // Lesser form, if any (ie. monkey for humans) var/tail // Name of tail image in species effects icon file. var/language // Default racial language, if any. + var/secondary_langs = list() // The names of secondary languages that are available to this species. var/attack_verb = "punch" // Empty hand hurt intent verb. var/punch_damage = 0 // Extra empty hand attack damage. var/mutantrace // Safeguard due to old code. @@ -155,6 +156,7 @@ icobase = 'icons/mob/human_races/r_tajaran.dmi' deform = 'icons/mob/human_races/r_def_tajaran.dmi' language = "Siik'maas" + secondary_langs = list("Siik'tajr") tail = "tajtail" attack_verb = "scratch" punch_damage = 5 diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 39384970e28..a59aac39277 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -367,7 +367,7 @@ if(client.prefs.language) chosen_language = all_languages["[client.prefs.language]"] if(chosen_language) - if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED)) + if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs))) new_character.add_language("[client.prefs.language]") if(ticker.random_players)