mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
Players can now select their own language shortcut keys.
This commit is contained in:
@@ -314,3 +314,19 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
if(C && (C.prefs.toggles & CHAT_NOICONS))
|
if(C && (C.prefs.toggles & CHAT_NOICONS))
|
||||||
return tagdesc
|
return tagdesc
|
||||||
return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
|
return "<IMG src='\ref[text_tag_icons.icon]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
|
||||||
|
|
||||||
|
/proc/contains_az09(var/input)
|
||||||
|
for(var/i=1, i<=length(input), i++)
|
||||||
|
var/ascii_char = text2ascii(input,i)
|
||||||
|
switch(ascii_char)
|
||||||
|
// A .. Z
|
||||||
|
if(65 to 90) //Uppercase Letters
|
||||||
|
return 1
|
||||||
|
// a .. z
|
||||||
|
if(97 to 122) //Lowercase Letters
|
||||||
|
return 1
|
||||||
|
|
||||||
|
// 0 .. 9
|
||||||
|
if(48 to 57) //Numbers
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|||||||
@@ -691,7 +691,9 @@ var/list/gamemode_cache = list()
|
|||||||
config.aggressive_changelog = 1
|
config.aggressive_changelog = 1
|
||||||
|
|
||||||
if("default_language_prefixes")
|
if("default_language_prefixes")
|
||||||
language_prefixes = text2list(value, " ")
|
var/list/values = text2list(value, " ")
|
||||||
|
if(values.len > 0)
|
||||||
|
language_prefixes = values
|
||||||
|
|
||||||
else
|
else
|
||||||
log_misc("Unknown setting in configuration: '[name]'")
|
log_misc("Unknown setting in configuration: '[name]'")
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ datum/preferences
|
|||||||
var/species = "Human" //Species datum to use.
|
var/species = "Human" //Species datum to use.
|
||||||
var/species_preview //Used for the species selection window.
|
var/species_preview //Used for the species selection window.
|
||||||
var/list/alternate_languages = list() //Secondary language(s)
|
var/list/alternate_languages = list() //Secondary language(s)
|
||||||
var/list/alternate_language_prefixes = list() //Alternative language prefixes
|
var/list/language_prefixes = list() //Kanguage prefix keys
|
||||||
var/list/gear //Custom/fluff item loadout.
|
var/list/gear //Custom/fluff item loadout.
|
||||||
|
|
||||||
//Some faction information.
|
//Some faction information.
|
||||||
@@ -402,8 +402,11 @@ datum/preferences
|
|||||||
dat += "- <a href='byond://?src=\ref[user];preference=language;add=1'>add</a> ([S.num_alternate_languages - alternate_languages.len] remaining)<br>"
|
dat += "- <a href='byond://?src=\ref[user];preference=language;add=1'>add</a> ([S.num_alternate_languages - alternate_languages.len] remaining)<br>"
|
||||||
else
|
else
|
||||||
dat += "- [species] cannot choose secondary languages.<br>"
|
dat += "- [species] cannot choose secondary languages.<br>"
|
||||||
dat += "<br><br>"
|
|
||||||
|
|
||||||
|
dat += "<b>Language Keys</b><br>"
|
||||||
|
dat += " [english_list(language_prefixes, and_text = " ", comma_text = " ")] <a href='byond://?src=\ref[user];preference=language_prefix'>Change</a><br>"
|
||||||
|
|
||||||
|
dat += "<br><br>"
|
||||||
var/list/undies = gender == MALE ? underwear_m : underwear_f
|
var/list/undies = gender == MALE ? underwear_m : underwear_f
|
||||||
|
|
||||||
dat += "Underwear: <a href ='?_src_=prefs;preference=underwear;task=input'><b>[get_key_by_value(undies,underwear)]</b></a><br>"
|
dat += "Underwear: <a href ='?_src_=prefs;preference=underwear;task=input'><b>[get_key_by_value(undies,underwear)]</b></a><br>"
|
||||||
@@ -1176,6 +1179,24 @@ datum/preferences
|
|||||||
if(new_lang)
|
if(new_lang)
|
||||||
alternate_languages |= new_lang
|
alternate_languages |= new_lang
|
||||||
|
|
||||||
|
else if(href_list["preference"] == "language_prefix")
|
||||||
|
var/char
|
||||||
|
var/keys[0]
|
||||||
|
do
|
||||||
|
char = input("Enter a single special character.\nYou may re-select the same characters.\nBe aware that the following characters are already in use by radio: ; : .", "Enter Character - [3 - keys.len] remaining") as null|text
|
||||||
|
if(char)
|
||||||
|
if(length(char) > 1)
|
||||||
|
alert("Only single characters allowed.", "Error", "Ok")
|
||||||
|
else if(char in list(";", ":", "."))
|
||||||
|
alert("Radio character. Rejected.", "Error", "Ok")
|
||||||
|
else if(contains_az09(char))
|
||||||
|
alert("Non-special character. Rejected.", "Error", "Ok")
|
||||||
|
else
|
||||||
|
keys.Add(char)
|
||||||
|
while(char && keys.len < 3)
|
||||||
|
|
||||||
|
if(keys.len == 3)
|
||||||
|
language_prefixes = keys
|
||||||
switch(href_list["task"])
|
switch(href_list["task"])
|
||||||
if("change")
|
if("change")
|
||||||
if(href_list["preference"] == "species")
|
if(href_list["preference"] == "species")
|
||||||
|
|||||||
@@ -110,11 +110,11 @@
|
|||||||
S["spawnpoint"] >> spawnpoint
|
S["spawnpoint"] >> spawnpoint
|
||||||
|
|
||||||
S["language"] >> alternate_languages
|
S["language"] >> alternate_languages
|
||||||
S["language_prefixes"] >> alternate_language_prefixes
|
S["language_prefixes"] >> language_prefixes
|
||||||
if(isnull(alternate_languages))
|
if(isnull(alternate_languages))
|
||||||
alternate_languages = list()
|
alternate_languages = list()
|
||||||
if(isnull(alternate_language_prefixes))
|
if(isnull(language_prefixes) || !language_prefixes.len)
|
||||||
alternate_language_prefixes = config.language_prefixes.Copy()
|
language_prefixes = config.language_prefixes.Copy()
|
||||||
if(!islist(alternate_languages))
|
if(!islist(alternate_languages))
|
||||||
if(client)
|
if(client)
|
||||||
// Warn them that we (probably) just broke their languages
|
// Warn them that we (probably) just broke their languages
|
||||||
@@ -290,7 +290,7 @@
|
|||||||
S["age"] << age
|
S["age"] << age
|
||||||
S["species"] << species
|
S["species"] << species
|
||||||
S["language"] << alternate_languages
|
S["language"] << alternate_languages
|
||||||
S["language_prefixes"] << alternate_language_prefixes
|
S["language_prefixes"] << language_prefixes
|
||||||
S["hair_red"] << r_hair
|
S["hair_red"] << r_hair
|
||||||
S["hair_green"] << g_hair
|
S["hair_green"] << g_hair
|
||||||
S["hair_blue"] << b_hair
|
S["hair_blue"] << b_hair
|
||||||
|
|||||||
@@ -158,14 +158,14 @@
|
|||||||
return (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)
|
return (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)
|
||||||
|
|
||||||
/mob/proc/get_language_prefix()
|
/mob/proc/get_language_prefix()
|
||||||
if(client && client.prefs.alternate_language_prefixes && client.prefs.alternate_language_prefixes.len)
|
if(client && client.prefs.language_prefixes && client.prefs.language_prefixes.len)
|
||||||
return client.prefs.alternate_language_prefixes[1]
|
return client.prefs.language_prefixes[1]
|
||||||
|
|
||||||
return config.language_prefixes[1]
|
return config.language_prefixes[1]
|
||||||
|
|
||||||
/mob/proc/is_language_prefix(var/prefix)
|
/mob/proc/is_language_prefix(var/prefix)
|
||||||
if(client && client.prefs.alternate_language_prefixes && client.prefs.alternate_language_prefixes.len)
|
if(client && client.prefs.language_prefixes && client.prefs.language_prefixes.len)
|
||||||
return prefix in client.prefs.alternate_language_prefixes
|
return prefix in client.prefs.language_prefixes
|
||||||
|
|
||||||
return prefix in config.language_prefixes
|
return prefix in config.language_prefixes
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user