//SKYRAT EDIT - extra language
/datum/preferences/proc/SetLanguage(mob/user)
var/list/dat = list()
dat += "
Choose Additional Languages
"
if(!CONFIG_GET(number/max_languages) == 0)
dat += "Do note, however, you can have many languages. Do not abuse this.
"
dat += "If you want no additional language at all, click reset to disable all languages.
"
dat += "
"
if(SSlanguage && SSlanguage.languages_by_name.len)
for(var/V in SSlanguage.languages_by_name)
var/datum/language/L = SSlanguage.languages_by_name[V]
if(!L)
return
var/language_name = initial(L.name)
var/restricted = FALSE
if(L.restricted)
restricted = TRUE
var/font_color = "#4682B4"
if(restricted && !(language_name in pref_species.languagewhitelist))
var/quirklanguagefound = FALSE
for(var/datum/quirk/Q in all_quirks)
if(language_name in Q.languagewhitelist)
quirklanguagefound = TRUE
if(!quirklanguagefound)
continue
else
var/picked = FALSE
dat += "[language_name]: [initial(L.desc)]"
if(language_name in language)
picked = TRUE
dat += "[picked ? "Remove" : "Choose"]
"
else
dat += "The language subsystem hasn't fully loaded yet! Please wait a bit and try again.
"
dat += "
"
dat += "Reset | "
else
dat += "
"
dat += "Additional Languages are disabled."
dat += "
"
dat += "Done"
var/datum/browser/popup = new(user, "mob_occupation", "Language Preference
", 900, 600) //no reason not to reuse the occupation window, as it's cleaner that way
popup.set_window_options("can_close=0")
popup.set_content(dat.Join())
popup.open(FALSE)
//
/datum/preferences/proc/toggle_language(lang)
if(lang in language)
language -= lang
else if(check_language_maxhit())
if(CONFIG_GET(number/max_languages) == 1)
to_chat(usr, span_danger("You can only have 1 additional language!"))
else
to_chat(usr, span_danger("You can only have up to [CONFIG_GET(number/max_languages)] additional languages!"))
else
language += lang
/datum/preferences/proc/check_language_maxhit()
if(CONFIG_GET(number/max_languages) == -1) //infinite
return FALSE
else if(language.len >= CONFIG_GET(number/max_languages))
return TRUE