Language datums; removes the talk wheel (#25333)

* Initial burst of languages

* Scratchings of beginnings

* Code review I

* Compilation!

* You can now understand your own speech

* Fixes whispering

* Gets typecaches working again

* Remie's `PASS`ing

* Back to pass() to stop the compiler whining

* Why can't drones check their languages

* Everyone speaks how they should

* Removes world string debug stuff

* Currently failing to massage radio code into working

* The radio transmits the languages!

* ,0 to talk common

* Replaces speech wheel with language menu

* Observers can speak all languages

* pAIs now speak languages FOREVER

* New action button for language menu

* pAIs have an action button to open their language menu

* AIs can talk and all that

* AIs have a language menu button

* Fixes supermatter making strange noises

* Fixes AI holopads

* Fixes request consoles

* Fixes bots making strange sounds

* Meaningless MMI change

* Some caching of datums

* Brains in MMIs speak common

* Ratvarian AIs can only speak Ratvarian

* Tables can speak common, apparently

* Removes var in args

* Fixes the (AI Eye) problem

Thanks to Shadowmobile for their help with this one.

* Fixes tape recorders

* Fixes humans being able to speak in languages they did not know

* Adds some new posibrain names

Honk.

* The voice analyzer replies in the language you spoke to it

* Gives swarmers only swarmer language

* `initial_languages` var.

* OMNITONGUE, clockwork restrictions

* Fixes barmaid and bardrone language abilities

* Code review I

* Omnitongue correction

* Code review II

* Removes force_compose var
This commit is contained in:
coiax
2017-04-02 21:03:40 +02:00
committed by AnturK
parent f36ee3a0b7
commit 7554b5f454
107 changed files with 941 additions and 707 deletions
+3 -2
View File
@@ -83,7 +83,8 @@ var/global/BSACooldown = 0
body += "<A href='?_src_=holder;traitor=\ref[M]'>Traitor panel</A> | "
body += "<A href='?_src_=holder;narrateto=\ref[M]'>Narrate to</A> | "
body += "<A href='?_src_=holder;subtlemessage=\ref[M]'>Subtle message</A> | "
body += "<A href='?_src_=holder;individuallog=\ref[M]'>Individual Round Logs</A>"
body += "<A href='?_src_=holder;individuallog=\ref[M]'>Individual Round Logs</A> | "
body += "<A href='?_src_=holder;languagemenu=\ref[M]'>Language Menu</A>"
if (M.client)
if(!isnewplayer(M))
@@ -823,4 +824,4 @@ var/global/BSACooldown = 0
string = pick(
"Admin login: [key_name(src)]")
if(string)
message_admins("[string]")
message_admins("[string]")
-3
View File
@@ -622,10 +622,7 @@ var/list/admin_verbs_hideable = list(
var/message = input(usr, "What do you want the message to be?", "Make Sound") as text | null
if(!message)
return
var/templanguages = O.languages_spoken
O.languages_spoken |= ALL
O.say(message)
O.languages_spoken = templanguages
log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z] say \"[message]\"")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. say \"[message]\"</span>")
feedback_add_details("admin_verb","OS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+10
View File
@@ -1814,6 +1814,16 @@
return
show_individual_logging_panel(M, href_list["log_type"])
else if(href_list["languagemenu"])
if(!check_rights(R_ADMIN))
return
var/mob/living/L = locate(href_list["languagemenu"]) in mob_list
if(!isliving(L))
to_chat(usr, "This can only be used on instances of type /mob/living.")
return
L.open_language_menu(usr)
else if(href_list["traitor"])
if(!check_rights(R_ADMIN))