diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm old mode 100644 new mode 100755 index 1a8b76c11c..4bd6627122 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -54,7 +54,7 @@ speech_verb = "shrieks" colour = "vox" key = "v" - flags = RESTRICTED | UNTRANSLATABLE + flags = RESTRICTED /datum/language/diona name = "Rootspeak" @@ -62,7 +62,7 @@ speech_verb = "creaks and rustles" colour = "soghun" key = "q" - flags = RESTRICTED | UNTRANSLATABLE + flags = RESTRICTED /datum/language/human name = "Sol Common" @@ -106,7 +106,7 @@ // Can we speak this language, as opposed to just understanding it? /mob/proc/can_speak(datum/language/speaking) - return ((universal_speak && !(speaking.flags & UNTRANSLATABLE)) || speaking in src.languages) + return (universal_speak || speaking in src.languages) //TBD /mob/verb/check_languages() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm old mode 100644 new mode 100755 index 95e6dac83e..fba71205fc --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -52,6 +52,8 @@ var/obj/item/radio/integrated/signal/sradio // AI's signaller + var/translator_on = 0 // keeps track of the translator module + /mob/living/silicon/pai/New(var/obj/item/device/paicard) canmove = 0 diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm old mode 100644 new mode 100755 index 757b04b1ea..8ca741724e --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -266,7 +266,7 @@ src.medHUD = !src.medHUD if("translator") if(href_list["toggle"]) - src.universal_speak = !src.universal_speak + src.translator_toggle() if("doorjack") if(href_list["jack"]) if(src.cable && src.cable.machine) @@ -325,7 +325,7 @@ if(s == "medical HUD") //This file has to be saved as ANSI or this will not display correctly dat += "Medical Analysis Suite [(src.medHUD) ? "" : ""]
" if(s == "universal translator") //This file has to be saved as ANSI or this will not display correctly - dat += "Universal Translator [(src.universal_speak) ? "" : ""]
" + dat += "Universal Translator [(src.translator_on) ? "" : ""]
" if(s == "projection array") dat += "Projection Array
" if(s == "camera jack") @@ -438,9 +438,9 @@ for (var/ch_name in radio.channels) dat+=radio.text_sec_channel(ch_name, radio.channels[ch_name]) dat+={"[radio.text_wires()]"} - + return dat - + // Crew Manifest /mob/living/silicon/pai/proc/softwareManifest() var/dat = "" @@ -498,7 +498,7 @@ /mob/living/silicon/pai/proc/softwareTranslator() var/dat = {"

Universal Translator


When enabled, this device will automatically convert all spoken and written languages into a format that any known recipient can understand.

- The device is currently [ (src.universal_speak) ? "en" : "dis" ]abled.
+ The device is currently [ (src.translator_on) ? "en" : "dis" ]abled.
Toggle Device
"} return dat @@ -538,7 +538,7 @@ return dat dat += {"Bioscan Results for [M]:
Overall Status: [M.stat > 1 ? "dead" : "[M.health]% healthy"]

- + Scan Breakdown:
Respiratory: [M.getOxyLoss() > 50 ? "" : ""][M.getOxyLoss()]
Toxicology: [M.getToxLoss() > 50 ? "" : ""][M.getToxLoss()]
@@ -676,7 +676,7 @@ dat += "" dat += "" dat += "Messages:
" - + dat += "" dat += "" for(var/index in pda.tnote) @@ -685,4 +685,28 @@ else dat += addtext("") dat += "
From", index["owner"],": ", index["message"], "
" - return dat + return dat + +/mob/living/silicon/pai/proc/translator_toggle() + + // Sol Common, Tradeband and Gutter are added with New() and are therefore the current default, always active languages + + if(translator_on) + translator_on = 0 + + remove_language("Sinta'unathi") + remove_language("Siik'maas") + remove_language("Siik'tajr") + remove_language("Skrellian") + + src << "\blue Translator Module toggled OFF." + + else + translator_on = 1 + + add_language("Sinta'unathi") + add_language("Siik'maas") + add_language("Siik'tajr", 0) + add_language("Skrellian") + + src << "\blue Translator Module toggled ON." diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 1a5e93495b..25696c59c1 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -74,7 +74,7 @@ return 1 //Universal speak makes everything understandable, for obvious reasons. - else if((src.universal_speak || src.universal_understand) && !(speaking.flags & UNTRANSLATABLE)) + else if(src.universal_speak || src.universal_understand) return 1 //Languages are handled after. diff --git a/code/setup.dm b/code/setup.dm index 2d38dd8996..6e9b058caf 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -748,7 +748,6 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define RESTRICTED 2 // Language can only be accquired by spawning or an admin. #define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight #define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand. -#define UNTRANSLATABLE 16 // Language is not translated by universal_speak or universal_understand. //Flags for zone sleeping #define ZONE_ACTIVE 1 @@ -812,4 +811,4 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define IS_DIONA 1 #define IS_VOX 2 #define IS_SKRELL 3 -#define IS_UNATHI 4 \ No newline at end of file +#define IS_UNATHI 4