diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 89c1fd30ac..17bc771734 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -86,11 +86,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"], DATA_NORMAL,
signal.data["compression"], signal.data["level"], signal.frequency,
-<<<<<<< HEAD
- signal.data["verb"], signal.data["language"], forced_radios)
-=======
- signal.data["verb"])
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ signal.data["verb"], forced_radios)
/** #### - Simple Broadcast - #### **/
@@ -115,14 +111,9 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
-<<<<<<< HEAD
signal.data["realname"], signal.data["vname"], DATA_FAKE,
signal.data["compression"], signal.data["level"], signal.frequency,
- signal.data["verb"], signal.data["language"], forced_radios)
-=======
- signal.data["realname"], signal.data["vname"], 4, signal.data["compression"], signal.data["level"], signal.frequency,
- signal.data["verb"])
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ signal.data["verb"], forced_radios)
if(!message_delay)
message_delay = 1
@@ -279,30 +270,18 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
-<<<<<<< HEAD
signal.data["realname"], signal.data["vname"], DATA_NORMAL,
signal.data["compression"], list(0), connection.frequency,
- signal.data["verb"], signal.data["language"], forced_radios)
-=======
- signal.data["realname"], signal.data["vname"],, signal.data["compression"], list(0), connection.frequency,
- signal.data["verb"])
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ signal.data["verb"], forced_radios)
else
if(intercept)
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
-<<<<<<< HEAD
signal.data["realname"], signal.data["vname"], DATA_ANTAG,
signal.data["compression"], list(0), connection.frequency,
- signal.data["verb"], signal.data["language"], forced_radios)
-=======
- signal.data["realname"], signal.data["vname"], 3, signal.data["compression"], list(0), connection.frequency,
- signal.data["verb"])
-
-
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ signal.data["verb"], forced_radios)
/**
@@ -362,16 +341,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
**/
/proc/Broadcast_Message(var/datum/radio_frequency/connection, var/mob/M,
-<<<<<<< HEAD
- var/vmask, var/vmessage, var/obj/item/device/radio/radio,
- var/message, var/name, var/job, var/realname, var/vname,
- var/data, var/compression, var/list/level, var/freq, var/verbage = "says",
- var/datum/language/speaking = null, var/list/forced_radios)
-=======
var/vmask, var/list/vmessage_pieces, var/obj/item/device/radio/radio,
var/list/message_pieces, var/name, var/job, var/realname, var/vname,
- var/data, var/compression, var/list/level, var/freq, var/verbage = "says")
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ var/data, var/compression, var/list/level, var/freq, var/verbage = "says",
+ var/list/forced_radios)
/* ###### Prepare the radio connection ###### */
@@ -568,13 +541,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
return 1
-<<<<<<< HEAD
-/proc/Broadcast_SimpleMessage(var/source, var/frequency, var/text, var/data, var/mob/M, var/compression, var/level, var/list/forced_radios)
-
-=======
-/proc/Broadcast_SimpleMessage(var/source, var/frequency, list/message_pieces, var/data, var/mob/M, var/compression, var/level)
+/proc/Broadcast_SimpleMessage(var/source, var/frequency, list/message_pieces, var/data, var/mob/M, var/compression, var/level, var/list/forced_radios)
var/text = multilingual_to_message(message_pieces)
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
/* ###### Prepare the radio connection ###### */
if(!M)
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index afe58f7308..995b659c19 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -216,7 +216,7 @@ var/global/list/default_medbay_channels = list(
return can_admin_interact()
/obj/item/device/radio/proc/text_wires()
- if(b_stat)
+ if (b_stat)
return wires.GetInteractWindow()
return
@@ -244,31 +244,31 @@ var/global/list/default_medbay_channels = list(
return TRUE
usr.set_machine(src)
- if(href_list["track"])
+ if (href_list["track"])
var/mob/target = locate(href_list["track"])
var/mob/living/silicon/ai/A = locate(href_list["track2"])
if(A && target)
A.ai_actual_track(target)
. = 1
- else if(href_list["freq"])
+ else if (href_list["freq"])
var/new_frequency = (frequency + text2num(href_list["freq"]))
- if((new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ))
+ if ((new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ))
new_frequency = sanitize_frequency(new_frequency)
set_frequency(new_frequency)
if(hidden_uplink)
if(hidden_uplink.check_trigger(usr, frequency, traitor_frequency))
usr << browse(null, "window=radio")
. = 1
- else if(href_list["talk"])
+ else if (href_list["talk"])
ToggleBroadcast()
. = 1
- else if(href_list["listen"])
+ else if (href_list["listen"])
var/chan_name = href_list["ch_name"]
- if(!chan_name)
+ if (!chan_name)
ToggleReception()
else
- if(channels[chan_name] & FREQ_LISTENING)
+ if (channels[chan_name] & FREQ_LISTENING)
channels[chan_name] &= ~FREQ_LISTENING
else
channels[chan_name] |= FREQ_LISTENING
@@ -287,18 +287,13 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/proc/autosay(var/message, var/from, var/channel, var/list/zlevels) //BS12 EDIT
var/datum/radio_frequency/connection = null
if(channel && channels && channels.len > 0)
-<<<<<<< HEAD
if (channel == "department")
-=======
- if(channel == "department")
- //to_world("DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\"")
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
channel = channels[1]
connection = secure_radio_connections[channel]
else
connection = radio_connection
channel = null
- if(!istype(connection))
+ if (!istype(connection))
return
if(!LAZYLEN(zlevels))
@@ -308,13 +303,8 @@ var/global/list/default_medbay_channels = list(
A.SetName(from)
Broadcast_Message(connection, A,
0, "*garbled automated announcement*", src,
-<<<<<<< HEAD
- message, from, "Automated Announcement", from, "synthesized voice",
- 4, 0, zlevels, connection.frequency, "states")
-=======
message_to_multilingual(message), from, "Automated Announcement", from, "synthesized voice",
- 4, 0, list(0), connection.frequency, "states")
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ 4, 0, zlevels, connection.frequency, "states")
// Interprets the message mode when talking into a radio, possibly returning a connection datum
/obj/item/device/radio/proc/handle_message_mode(mob/living/M as mob, list/message_pieces, message_mode)
@@ -324,10 +314,10 @@ var/global/list/default_medbay_channels = list(
// Otherwise, if a channel is specified, look for it.
if(channels && channels.len > 0)
- if(message_mode == "department") // Department radio shortcut
+ if (message_mode == "department") // Department radio shortcut
message_mode = channels[1]
- if(channels[message_mode]) // only broadcast if the channel is set on
+ if (channels[message_mode]) // only broadcast if the channel is set on
return secure_radio_connections[message_mode]
// If we were to send to a channel we don't have, drop it.
@@ -340,7 +330,8 @@ var/global/list/default_medbay_channels = list(
if(!M || !message_pieces)
return FALSE
- if(istype(M)) M.trigger_aiming(TARGET_CAN_RADIO)
+ if(istype(M))
+ M.trigger_aiming(TARGET_CAN_RADIO)
// Uncommenting this. To the above comment:
// The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom
@@ -369,15 +360,11 @@ var/global/list/default_medbay_channels = list(
if(RADIO_CONNECTION_NON_SUBSPACE)
return TRUE
- if(!istype(message_mode, /datum/radio_frequency)) //if not a special case, it should be returning a radio connection
+ if(!istype(message_mode, /datum/radio_frequency))
return FALSE
-<<<<<<< HEAD
- var/pos_z = get_z(src)
-=======
var/datum/radio_frequency/connection = message_mode
- var/turf/position = get_turf(src)
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ var/pos_z = get_z(src)
//#### Tagging the signal with all appropriate identity values ####//
@@ -393,24 +380,24 @@ var/global/list/default_medbay_channels = list(
var/jobname // the mob's "job"
// --- Human: use their actual job ---
- if(ishuman(M))
+ if (ishuman(M))
var/mob/living/carbon/human/H = M
jobname = H.get_assignment()
// --- Carbon Nonhuman ---
- else if(iscarbon(M)) // Nonhuman carbon mob
+ else if (iscarbon(M)) // Nonhuman carbon mob
jobname = "No id"
// --- AI ---
- else if(isAI(M))
+ else if (isAI(M))
jobname = "AI"
// --- Cyborg ---
- else if(isrobot(M))
+ else if (isrobot(M))
jobname = "Cyborg"
// --- Personal AI (pAI) ---
- else if(istype(M, /mob/living/silicon/pai))
+ else if (istype(M, /mob/living/silicon/pai))
jobname = "Personal AI"
// --- Unidentifiable mob ---
@@ -421,7 +408,7 @@ var/global/list/default_medbay_channels = list(
// --- Modifications to the mob's identity ---
// The mob is disguising their identity:
- if(ishuman(M) && M.GetVoice() != real_name)
+ if (ishuman(M) && M.GetVoice() != real_name)
displayname = M.GetVoice()
jobname = "Unknown"
voicemask = 1
@@ -438,7 +425,7 @@ var/global/list/default_medbay_channels = list(
"name" = displayname, // the mob's display name
"job" = jobname, // the mob's job
"key" = mobkey, // the mob's key
- "vmessage" = pick(M.speak_emote), // the message to display if the voice wasn't understood
+ "vmessage" = message_to_multilingual(pick(M.speak_emote)), // the message to display if the voice wasn't understood
"vname" = M.voice_name, // the name to display if the voice wasn't understood
"vmask" = voicemask, // 1 if the mob is using a voice gas mask
@@ -447,7 +434,7 @@ var/global/list/default_medbay_channels = list(
// Other tags:
"compression" = rand(45,50), // compressed radio signal
- "message" = message, // the actual sent message
+ "message" = message_pieces, // the actual sent message
"connection" = connection, // the radio connection to use
"radio" = src, // stores the radio used for transmission
"slow" = 0, // how much to sleep() before broadcasting - simulates net lag
@@ -456,7 +443,6 @@ var/global/list/default_medbay_channels = list(
"server" = null, // the last server to log this signal
"reject" = 0, // if nonzero, the signal will not be accepted by any broadcasting machinery
"level" = pos_z, // The source's z level
- "language" = speaking,
"verb" = verb
)
signal.frequency = connection.frequency // Quick frequency set
@@ -490,48 +476,9 @@ var/global/list/default_medbay_channels = list(
return FALSE
// First, we want to generate a new radio signal
-<<<<<<< HEAD
signal.transmission_method = TRANSMISSION_SUBSPACE
//#### Sending the signal to all subspace receivers ####//
-=======
- var/datum/signal/signal = new
- signal.transmission_method = 2 // 2 would be a subspace transmission.
- // transmission_method could probably be enumerated through #define. Would be neater.
-
- // --- Finally, tag the actual signal with the appropriate values ---
- signal.data = list(
- // Identity-associated tags:
- "mob" = M, // store a reference to the mob
- "mobtype" = M.type, // the mob's type
- "realname" = real_name, // the mob's real name
- "name" = displayname, // the mob's display name
- "job" = jobname, // the mob's job
- "key" = mobkey, // the mob's key
- "vmessage" = pick(M.speak_emote), // the message to display if the voice wasn't understood
- "vname" = M.voice_name, // the name to display if the voice wasn't understood
- "vmask" = voicemask, // 1 if the mob is using a voice gas mask
-
- // We store things that would otherwise be kept in the actual mob
- // so that they can be logged even AFTER the mob is deleted or something
-
- // Other tags:
- "compression" = rand(45,50), // compressed radio signal
- "message" = message_pieces, // the actual sent message
- "connection" = connection, // the radio connection to use
- "radio" = src, // stores the radio used for transmission
- "slow" = 0, // how much to sleep() before broadcasting - simulates net lag
- "traffic" = 0, // dictates the total traffic sum that the signal went through
- "type" = 0, // determines what type of radio input it is: normal broadcast
- "server" = null, // the last server to log this signal
- "reject" = 0, // if nonzero, the signal will not be accepted by any broadcasting machinery
- "level" = position.z, // The source's z level
- "verb" = verb
- )
- signal.frequency = connection.frequency // Quick frequency set
-
- //#### Sending the signal to all subspace receivers ####//
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
@@ -547,20 +494,6 @@ var/global/list/default_medbay_channels = list(
else if(adhoc_fallback) //Less huzzah, we have to fallback
to_chat(loc, "\The [src] pings as it falls back to local radio transmission.")
subspace_transmission = FALSE
-<<<<<<< HEAD
-=======
- return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
- src, message_pieces, displayname, jobname, real_name, M.voice_name,
- signal.transmission_method, signal.data["compression"], GetConnectedZlevels(position.z), connection.frequency,verb)
-
- /* ###### Intercoms and station-bounced radios ###### */
-
- var/filter_type = 2
-
- /* --- Intercoms can only broadcast to other intercoms, but bounced radios can broadcast to bounced radios and intercoms --- */
- if(istype(src, /obj/item/device/radio/intercom))
- filter_type = 1
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
else //Oh well
return FALSE
@@ -578,25 +511,9 @@ var/global/list/default_medbay_channels = list(
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
-<<<<<<< HEAD
// Allinone can act as receivers.
for(var/obj/machinery/telecomms/allinone/R in telecomms_list)
R.receive_signal(signal)
-=======
- "compression" = 0, // uncompressed radio signal
- "message" = message_pieces, // the actual sent message
- "connection" = connection, // the radio connection to use
- "radio" = src, // stores the radio used for transmission
- "slow" = 0,
- "traffic" = 0,
- "type" = 0,
- "server" = null,
- "reject" = 0,
- "level" = position.z,
- "verb" = verb
- )
- signal.frequency = connection.frequency // Quick frequency set
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
@@ -610,45 +527,21 @@ var/global/list/default_medbay_channels = list(
//Nothing handled any sort of remote radio-ing and returned before now, just squawk on this zlevel.
return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
-<<<<<<< HEAD
- src, message, displayname, jobname, real_name, M.voice_name,
- filter_type, signal.data["compression"], using_map.get_map_levels(pos_z), connection.frequency, verb, speaking)
-=======
- src, message_pieces, displayname, jobname, real_name, M.voice_name,
- filter_type, signal.data["compression"], GetConnectedZlevels(position.z), connection.frequency, verb)
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ src, message_pieces, displayname, jobname, real_name, M.voice_name,
+ filter_type, signal.data["compression"], using_map.get_map_levels(pos_z), connection.frequency, verb)
-/obj/item/device/radio/hear_talk(mob/M, list/message_pieces, verb)
+/obj/item/device/radio/hear_talk(mob/M as mob, list/message_pieces, var/verb = "says")
if(broadcasting)
if(get_dist(src, M) <= canhear_range)
talk_into(M, message_pieces, null, verb)
-<<<<<<< HEAD
-=======
-/*
-/obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message)
-
- if((R.frequency == frequency && message))
- return TRUE
- else if
-
- else
- return null
- return
-*/
-
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
/obj/item/device/radio/proc/receive_range(freq, level)
// check if this radio can receive on the given frequency, and if so,
// what the range is in which mobs will hear the radio
// returns: -1 if can't receive, range otherwise
-<<<<<<< HEAD
-=======
-
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
if(wires.IsIndexCut(WIRE_RECEIVE))
return -1
if(!listening)
@@ -665,20 +558,20 @@ var/global/list/default_medbay_channels = list(
if(freq in CENT_FREQS)
if(!(src.centComm))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
- if(!on)
+ if (!on)
return -1
- if(!freq) //recieved on main frequency
- if(!listening)
+ if (!freq) //recieved on main frequency
+ if (!listening)
return -1
else
var/accept = (freq==frequency && listening)
- if(!accept)
+ if (!accept)
for (var/ch_name in channels)
var/datum/radio_frequency/RF = secure_radio_connections[ch_name]
- if(RF && RF.frequency==freq && (channels[ch_name]&FREQ_LISTENING))
+ if (RF && RF.frequency==freq && (channels[ch_name]&FREQ_LISTENING))
accept = 1
break
- if(!accept)
+ if (!accept)
return -1
return canhear_range
@@ -691,8 +584,8 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/examine(mob/user)
. = ..()
- if((in_range(src, user) || loc == user))
- if(b_stat)
+ if ((in_range(src, user) || loc == user))
+ if (b_stat)
user.show_message("\The [src] can be attached and modified!")
else
user.show_message("\The [src] can not be modified or attached!")
@@ -701,11 +594,11 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
user.set_machine(src)
- if(!W.is_screwdriver())
+ if (!W.is_screwdriver())
return
b_stat = !( b_stat )
if(!istype(src, /obj/item/device/radio/beacon))
- if(b_stat)
+ if (b_stat)
user.show_message("\The [src] can now be attached and modified!")
else
user.show_message("\The [src] can no longer be modified or attached!")
@@ -745,7 +638,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/borg/talk_into()
. = ..()
- if(isrobot(src.loc))
+ if (isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
var/datum/robot_component/C = R.components["radio"]
R.cell_use_power(C.active_usage)
@@ -753,7 +646,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob)
// ..()
user.set_machine(src)
- if(!(W.is_screwdriver() || istype(W, /obj/item/device/encryptionkey)))
+ if (!(W.is_screwdriver() || istype(W, /obj/item/device/encryptionkey)))
return
if(W.is_screwdriver())
@@ -827,7 +720,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/borg/Topic(href, href_list)
if(..())
return TRUE
- if(href_list["mode"])
+ if (href_list["mode"])
var/enable_subspace_transmission = text2num(href_list["mode"])
if(enable_subspace_transmission != subspace_transmission)
subspace_transmission = !subspace_transmission
@@ -841,7 +734,7 @@ var/global/list/default_medbay_channels = list(
else
recalculateChannels()
. = 1
- if(href_list["shutup"]) // Toggle loudspeaker mode, AKA everyone around you hearing your radio.
+ if (href_list["shutup"]) // Toggle loudspeaker mode, AKA everyone around you hearing your radio.
var/do_shut_up = text2num(href_list["shutup"])
if(do_shut_up != shut_up)
shut_up = !shut_up
diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm
index 17d1d6f6d2..133bcb48f4 100644
--- a/code/game/objects/items/weapons/implants/implant_vr.dm
+++ b/code/game/objects/items/weapons/implants/implant_vr.dm
@@ -60,12 +60,13 @@
Function: Resizes the host whenever specific verbal command is received
"}
return dat
-/obj/item/weapon/implant/sizecontrol/hear_talk(mob/M, msg)
+/obj/item/weapon/implant/sizecontrol/hear_talk(mob/M, list/message_pieces)
if(M == imp_in)
return
if(owner)
if(M != owner)
return
+ var/msg = multilingual_to_message(message_pieces)
if(findtext(msg,"ignore"))
return
var/list/replacechars = list("'" = "",">" = "","<" = "","(" = "",")" = "", "~" = "")
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 88b74579b1..a80275cb6b 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -741,11 +741,7 @@
twitch_v, vomit, whimper, wink, yawn. Prometheans: squish Synthetics: beep, buzz, dwoop, yes, no, rcough, rsneeze, ping. Skrell: warble")
else
-<<<<<<< HEAD
- to_chat(src, "Unusable emote '[act]'. Say *help or *vhelp for a list.") //VOREStation Edit, mention *vhelp for Virgo-specific emotes located in emote_vr.dm.
-=======
- to_chat(src, "Unusable emote '[act]'. Say *help for a list.")
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+ to_chat(src, "Unusable emote '[act]'. Say *help or *vhelp for a list.") //VOREStation Edit, mention *vhelp for Virgo-specific emotes located in emote_vr.dm.
if(message)
custom_emote(m_type,message)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index df9e6a331e..e8907cf29e 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -2,12 +2,7 @@
if(name != GetVoice())
return " (as [get_id_name("Unknown")])"
-<<<<<<< HEAD
- message = sanitize_or_reflect(message,src) //VOREStation Edit - Reflect too-long messages, within reason
- ..(message, alt_name = alt_name, whispering = whispering)
-=======
return ..()
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
/mob/living/carbon/human/proc/forcesay(list/append)
if(stat == CONSCIOUS)
@@ -61,21 +56,6 @@
if(!speaking)
if(istype(other, /mob/living/carbon/alien/diona))
if(other.languages.len >= 2) //They've sucked down some blood and can speak common now.
-<<<<<<< HEAD
- return 1
- if (istype(other, /mob/living/silicon))
- return 1
- if (istype(other, /mob/living/carbon/brain))
- return 1
- if (istype(other, /mob/living/simple_mob/slime))
- return 1
-
- //This is already covered by mob/say_understands()
- //if (istype(other, /mob/living/simple_mob))
- // if((other.universal_speak && !speaking) || src.universal_speak || src.universal_understand)
- // return 1
- // return 0
-=======
return TRUE
if(issilicon(other))
return TRUE
@@ -83,7 +63,6 @@
return TRUE
if(isslime(other))
return TRUE
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
return ..()
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index e3693533a8..bd332f61f9 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -86,29 +86,6 @@ proc/get_radio_key_from_channel(var/channel)
var/whispering = message_data[3]
. = 0
-<<<<<<< HEAD
- if((HULK in mutations) && health >= 25 && length(message))
- message = "[uppertext(message)]!!!"
- verb = pick("yells","roars","hollers")
- whispering = 0
- . = 1
- if(slurring)
- message = slur(message)
- verb = pick("slobbers","slurs")
- . = 1
- if(stuttering)
- message = stutter(message)
- verb = pick("stammers","stutters")
- . = 1
- //VOREStation Edit Start
- if(muffled)
- verb = pick("muffles")
- whispering = 1
- . = 1
- //VOREStation Edit End
-
- message_data[1] = message
-=======
// Technically this rerolls the verb for as many say pieces as there are. _shrug_
for(var/datum/multilingual_say_piece/S in message_pieces)
if(S.speaking && (S.speaking.flags & NO_STUTTER || S.speaking.flags & SIGNLANG))
@@ -127,9 +104,14 @@ proc/get_radio_key_from_channel(var/channel)
S.message = stutter(S.message)
verb = pick("stammers","stutters")
. = 1
+ //VOREStation Edit Start
+ if(muffled)
+ verb = pick("muffles")
+ whispering = 1
+ . = 1
+ //VOREStation Edit End
message_data[1] = message_pieces
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
message_data[2] = verb
message_data[3] = whispering
@@ -282,7 +264,6 @@ proc/get_radio_key_from_channel(var/channel)
message_range = 1
sound_vol *= 0.5
-<<<<<<< HEAD
//VOREStation edit - allows for custom say verbs, overriding all other say-verb types- e.g. "says loudly" instead of "shouts"
//You'll still stammer if injured or slur if drunk, but it won't have those specific words
var/ending = copytext(message, length(message))
@@ -297,22 +278,11 @@ proc/get_radio_key_from_channel(var/channel)
verb = "[custom_say]"
//VOREStation edit ends
- //Handle nonverbal and sign languages here
- if (speaking)
- if (speaking.flags & SIGNLANG)
- log_say("(SIGN) [message]", src)
- return say_signlang(message, pick(speaking.signlang_verb), speaking)
-
- if (speaking.flags & NONVERBAL)
- if (prob(30))
- src.custom_emote(1, "[pick(speaking.signlang_verb)].")
-=======
//Handle nonverbal languages here
for(var/datum/multilingual_say_piece/S in message_pieces)
if(S.speaking.flags & NONVERBAL)
if(prob(30))
custom_emote(1, "[pick(S.speaking.signlang_verb)].")
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
//These will contain the main receivers of the message
var/list/listening = list()
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 4f2a23bce5..e15c268eee 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -120,13 +120,8 @@
m_type = 1
if("law")
-<<<<<<< HEAD
- if (istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
- message = "shows its legal authorization barcode."
-=======
- if(istype(module,/obj/item/weapon/robot_module/robot/security))
+ if(istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
message = "[src] shows its legal authorization barcode."
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
playsound(src.loc, 'sound/voice/biamthelaw.ogg', 50, 0)
m_type = 2
@@ -134,13 +129,8 @@
to_chat(src, "You are not THE LAW, pal.")
if("halt")
-<<<<<<< HEAD
- if (istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
- message = "'s speakers skreech, \"Halt! Security!\"."
-=======
- if(istype(module,/obj/item/weapon/robot_module/robot/security))
+ if(istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
message = "[src] 's speakers skreech, \"Halt! Security!\"."
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
playsound(src.loc, 'sound/voice/halt.ogg', 50, 0)
m_type = 2
diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm
index 41df4c5146..ef870cb1f3 100644
--- a/code/modules/mob/living/silicon/say.dm
+++ b/code/modules/mob/living/silicon/say.dm
@@ -61,23 +61,6 @@
var/obj/machinery/hologram/holopad/T = src.holo
if(T && T.masters[src])//If there is a hologram and its master is the user.
-<<<<<<< HEAD
- //Human-like, sorta, heard by those who understand humans.
- var/rendered_a
- //Speech distorted, heard by those who do not understand AIs.
- var/message_stars = stars(message)
- var/rendered_b
-
- if(speaking)
- rendered_a = "[name] [speaking.format_message(message, verb)]"
- rendered_b = "[voice_name] [speaking.format_message(message_stars, verb)]"
- to_chat(src, "Holopad transmitted, [real_name] [speaking.format_message(message, verb)]") //The AI can "hear" its own message.
- else
- rendered_a = "[name] [verb], \"[message]\""
- rendered_b = "[voice_name] [verb], \"[message_stars]\""
- to_chat(src, "Holopad transmitted, [real_name] [verb], \"[message]\"") //The AI can "hear" its own message.
-=======
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
var/list/listeners = get_mobs_and_objs_in_view_fast(get_turf(T), world.view)
var/list/listening = listeners["mobs"]
var/list/listening_obj = listeners["objs"]
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
index 427c0fff9c..3c222b9fdf 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
@@ -1,4 +1,3 @@
-<<<<<<< HEAD
// Parrots can talk, and may repeat things it hears.
/mob/living/simple_mob/animal/passive/bird/parrot
name = "parrot"
@@ -42,11 +41,11 @@
return say(message)
// Ugly saycode so parrots can use their headsets.
-/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name)
+/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, used_radios)
..()
if(message_mode)
if(my_headset && istype(my_headset, /obj/item/device/radio))
- my_headset.talk_into(src, message, message_mode, verb, speaking)
+ my_headset.talk_into(src, message, message_mode, verb)
used_radios += my_headset
// Clicked on while holding an object.
@@ -250,257 +249,4 @@
if(holder.stat || !holder.say_list || !message || speaker == holder)
return
var/datum/say_list/S = holder.say_list
-=======
-// Parrots can talk, and may repeat things it hears.
-/mob/living/simple_mob/animal/passive/bird/parrot
- name = "parrot"
- description_info = "You can give it a headset by clicking on it with a headset. \
- To remove it, click the bird while on grab intent."
- has_langs = list("Galactic Common", "Bird")
-
- ai_holder_type = /datum/ai_holder/simple_mob/passive/parrot
-
- // A headset, so that talking parrots can yell at the crew over comms.
- // If set to a type, on initialize it will be instantiated into that type.
- var/obj/item/device/radio/headset/my_headset = null
-
-// Say list
-/datum/say_list/bird/poly
- speak = list(
- "Poly wanna cracker!",
- "Check the singulo, you chucklefucks!",
- "Wire the solars, you lazy bums!",
- "WHO TOOK THE DAMN HARDSUITS?",
- "OH GOD ITS FREE CALL THE SHUTTLE",
- "Danger! Crystal hyperstructure instability!",
- "CRYSTAL DELAMINATION IMMINENT.",
- "Tweet tweet, I'm a Teshari.",
- "Chitters.",
- "Meteors have been detected on a collision course with the station!"
- )
-
-// Lets the AI use headsets.
-// Player-controlled parrots will need to do it manually.
-/mob/living/simple_mob/animal/passive/bird/parrot/ISay(message)
- if(my_headset && prob(50))
- var/list/keys = list()
- for(var/channel in my_headset.channels)
- var/key = get_radio_key_from_channel(channel)
- if(key)
- keys += key
- if(keys.len)
- var/key_used = pick(keys)
- return say("[key_used] [message]")
- return say(message)
-
-// Ugly saycode so parrots can use their headsets.
-/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, speaking, used_radios)
- ..()
- if(message_mode)
- if(my_headset && istype(my_headset, /obj/item/device/radio))
- my_headset.talk_into(src, message, message_mode, verb, speaking)
- used_radios += my_headset
-
-// Clicked on while holding an object.
-/mob/living/simple_mob/animal/passive/bird/parrot/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/device/radio/headset))
- give_headset(I, user)
- return
- return ..()
-
-// Clicked on by empty hand.
-/mob/living/simple_mob/animal/passive/bird/parrot/attack_hand(mob/living/L)
- if(L.a_intent == I_GRAB && my_headset)
- remove_headset(L)
- else
- ..()
-
-
-/mob/living/simple_mob/animal/passive/bird/parrot/proc/give_headset(obj/item/device/radio/headset/new_headset, mob/living/user)
- if(!istype(new_headset))
- to_chat(user, span("warning", "\The [new_headset] isn't a headset."))
- return
- if(my_headset)
- to_chat(user, span("warning", "\The [src] is already wearing \a [my_headset]."))
- return
- else
- user.drop_item(new_headset)
- my_headset = new_headset
- new_headset.forceMove(src)
- to_chat(user, span("warning", "You place \a [new_headset] on \the [src]. You monster."))
- to_chat(src, span("notice", "\The [user] gives you \a [new_headset]. You should put it to good use immediately."))
- return
-
-/mob/living/simple_mob/animal/passive/bird/parrot/proc/remove_headset(mob/living/user)
- if(!my_headset)
- to_chat(user, "\The [src] doesn't have a headset to remove, thankfully.")
- else
- ISay("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
- my_headset.forceMove(get_turf(src))
- user.put_in_hands(my_headset)
- to_chat(user, span("notice", "You take away \the [src]'s [my_headset.name]. Finally."))
- to_chat(src, span("warning", "\The [user] takes your [my_headset.name] away! How cruel!"))
- my_headset = null
-
-/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user)
- ..()
- if(my_headset)
- to_chat(user, "It is wearing \a [my_headset].")
-
-/mob/living/simple_mob/animal/passive/bird/parrot/Initialize()
- if(my_headset)
- my_headset = new my_headset(src)
- return ..()
-
-// Subtypes.
-
-// Best Bird
-/mob/living/simple_mob/animal/passive/bird/parrot/poly
- name = "Poly"
- desc = "It's a parrot. An expert on quantum cracker theory."
- icon_state = "poly"
- icon_rest = "poly-held"
- icon_dead = "poly-dead"
- tt_desc = "E Ara macao"
- my_headset = /obj/item/device/radio/headset/headset_eng
- say_list_type = /datum/say_list/bird/poly
-
-// Best Bird with best headset.
-/mob/living/simple_mob/animal/passive/bird/parrot/poly/ultimate
- my_headset = /obj/item/device/radio/headset/omni
-
-/mob/living/simple_mob/animal/passive/bird/parrot/kea
- name = "kea"
- desc = "A species of parrot. On Earth, they are unique among other parrots for residing in alpine climates. \
- They are known to be intelligent and curious, which has made some consider them a pest."
- icon_state = "kea"
- icon_rest = "kea-held"
- icon_dead = "kea-dead"
- tt_desc = "E Nestor notabilis"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/eclectus
- name = "eclectus"
- desc = "A species of parrot, this species features extreme sexual dimorphism in their plumage's colors. \
- A male eclectus has emerald green plumage, where as a female eclectus has red and purple plumage."
- icon_state = "eclectus"
- icon_rest = "eclectus-held"
- icon_dead = "eclectus-dead"
- tt_desc = "E Eclectus roratus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/eclectus/Initialize()
- gender = pick(MALE, FEMALE)
- if(gender == FEMALE)
- icon_state = "eclectusf"
- icon_rest = "eclectusf-held"
- icon_dead = "eclectusf-dead"
- return ..()
-
-/mob/living/simple_mob/animal/passive/bird/parrot/grey_parrot
- name = "grey parrot"
- desc = "A species of parrot. This one is predominantly grey, but has red tail feathers."
- icon_state = "agrey"
- icon_rest = "agrey-held"
- icon_dead = "agrey-dead"
- tt_desc = "E Psittacus erithacus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/black_headed_caique
- name = "black-headed caique"
- desc = "A species of parrot, these birds have a distinct black color on their heads, distinguishing them from their relative Caiques."
- icon_state = "bcaique"
- icon_rest = "bcaique-held"
- icon_dead = "bcaique-dead"
- tt_desc = "E Pionites melanocephalus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/white_caique
- name = "white-bellied caique"
- desc = "A species of parrot, they are also known as the Green-Thighed Parrot."
- icon_state = "wcaique"
- icon_rest = "wcaique-held"
- icon_dead = "wcaique-dead"
- tt_desc = "E Pionites leucogaster"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar
- name = "budgerigar"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one is has its natural colors of green and yellow."
- icon_state = "gbudge"
- icon_rest = "gbudge-held"
- icon_dead = "gbudge-dead"
- tt_desc = "E Melopsittacus undulatus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/blue
- icon_state = "bbudge"
- icon_rest = "bbudge-held"
- icon_dead = "bbudge-dead"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one has a mutation which altered its color to be blue instead of green and yellow."
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/bluegreen
- icon_state = "bgbudge"
- icon_rest = "bgbudge-held"
- icon_dead = "bgbudge-dead"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one has a mutation which altered its color to be a mix of blue and green."
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel
- name = "cockatiel"
- desc = "A species of parrot. This one has a highly visible crest."
- icon_state = "tiel"
- icon_rest = "tiel-held"
- icon_dead = "tiel-dead"
- tt_desc = "E Nymphicus hollandicus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/white
- icon_state = "wtiel"
- icon_rest = "wtiel-held"
- icon_dead = "wtiel-dead"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/yellowish
- icon_state = "luttiel"
- icon_rest = "luttiel-held"
- icon_dead = "luttiel-dead"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/grey
- icon_state = "blutiel" // idk why this is blu.
- icon_rest = "blutiel-held"
- icon_dead = "blutiel-dead"
-
-// This actually might be the yellow-crested cockatoo but idk.
-/mob/living/simple_mob/animal/passive/bird/parrot/sulphur_cockatoo
- name = "sulphur-crested cockatoo"
- desc = "A species of parrot. This one has an expressive yellow crest. Their underwing and tail feathers are also yellow."
- icon_state = "too"
- icon_rest = "too-held"
- icon_dead = "too-dead"
- tt_desc = "E Cacatua galerita"
-
-// This was originally called 'hooded_too', which might not mean the unbrella cockatoo but idk.
-/mob/living/simple_mob/animal/passive/bird/parrot/white_cockatoo
- name = "white cockatoo"
- desc = "A species of parrot. This one is also known as the Umbrella Cockatoo, due to the semicircular shape of its crest."
- icon_state = "utoo"
- icon_rest = "utoo-held"
- icon_dead = "utoo-dead"
- tt_desc = "E Cacatua alba"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/pink_cockatoo
- name = "pink cockatoo"
- desc = "A species of parrot. This one is also known as Major Mitchell's cockatoo, \
- in honor of a human surveyor and explorer who existed before humans fully explored their home planet."
- icon_state = "mtoo"
- icon_rest = "mtoo-held"
- icon_dead = "mtoo-dead"
- tt_desc = "E Lophochroa leadbeateri"
-
-
-// AI
-/datum/ai_holder/simple_mob/passive/parrot
- speak_chance = 2
- base_wander_delay = 8
-
-/datum/ai_holder/simple_mob/passive/parrot/on_hear_say(mob/living/speaker, message)
- if(holder.stat || !holder.say_list || !message || speaker == holder)
- return
- var/datum/say_list/S = holder.say_list
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
S.speak |= message
\ No newline at end of file
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 81804d7119..4e825f9c65 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -605,7 +605,7 @@
return ready && ..()
// Prevents lobby players from seeing say, even with ghostears
-/mob/new_player/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/italics = 0, var/mob/speaker = null)
+/mob/new_player/hear_say(var/list/message_pieces, var/verb = "says", var/italics = 0, var/mob/speaker = null)
return
// Prevents lobby players from seeing emotes, even with ghosteyes
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 439e3c5314..fce88e43df 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -12,6 +12,7 @@
set category = "IC"
set_typing_indicator(FALSE)
+ message = sanitize_or_reflect(message, src) //VOREStation Edit - Reflect too-long messages, within reason
usr.say(message)
/mob/verb/me_verb(message as text)
diff --git a/code/modules/multiz/zshadow.dm b/code/modules/multiz/zshadow.dm
index eaa91e4a2b..540dfddada 100644
--- a/code/modules/multiz/zshadow.dm
+++ b/code/modules/multiz/zshadow.dm
@@ -41,12 +41,12 @@
return owner.examine(user, distance, infix, suffix)
// Relay some stuff they hear
-/mob/zshadow/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
+/mob/zshadow/hear_say(var/list/message_pieces, var/verb = "says", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
if(speaker && speaker.z != src.z)
return // Only relay speech on our acutal z, otherwise we might relay sounds that were themselves relayed up!
if(isliving(owner))
verb += " from above"
- return owner.hear_say(message, verb, language, italics, speaker, speech_sound, sound_vol)
+ return owner.hear_say(message_pieces, verb, italics, speaker, speech_sound, sound_vol)
/mob/zshadow/proc/sync_icon(var/mob/M)
name = M.name
diff --git a/code/modules/nifsoft/software/14_commlink.dm b/code/modules/nifsoft/software/14_commlink.dm
index 66773dd711..f156e3ffb5 100644
--- a/code/modules/nifsoft/software/14_commlink.dm
+++ b/code/modules/nifsoft/software/14_commlink.dm
@@ -58,17 +58,18 @@
nif.save_data["commlink_name"] = owner
//So that only the owner's chat is relayed to others.
-/obj/item/device/communicator/commlink/hear_talk(mob/living/M, text, verb, datum/language/speaking)
- if(M != nif.human) return
- for(var/obj/item/device/communicator/comm in communicating)
+/obj/item/device/communicator/commlink/hear_talk(mob/living/M, list/message_pieces, verb)
+ if(M != nif.human)
+ return
+ for(var/obj/item/device/communicator/comm in communicating)
var/turf/T = get_turf(comm)
if(!T) return
var/icon_object = src
var/list/mobs_to_relay
- if(istype(comm,/obj/item/device/communicator/commlink))
+ if(istype(comm, /obj/item/device/communicator/commlink))
var/obj/item/device/communicator/commlink/CL = comm
mobs_to_relay = list(CL.nif.human)
icon_object = CL.nif.big_icon
@@ -77,18 +78,10 @@
mobs_to_relay = in_range["mobs"]
for(var/mob/mob in mobs_to_relay)
- //Can whoever is hearing us understand?
- if(!mob.say_understands(M, speaking))
- if(speaking)
- text = speaking.scramble(text)
- else
- text = stars(text)
+ var/message = mob.combine_message(message_pieces, verb, M)
var/name_used = M.GetVoice()
var/rendered = null
- if(speaking) //Language being used
- rendered = "[bicon(icon_object)] [name_used] [speaking.format_message(text, verb)]"
- else
- rendered = "[bicon(icon_object)] [name_used] [verb], \"[text]\""
+ rendered = "[bicon(icon_object)] [name_used] [message]"
mob.show_message(rendered, 2)
//Not supported by the internal one
diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm
index e6e6dc580f..c2b2968a97 100644
--- a/code/modules/resleeving/machines.dm
+++ b/code/modules/resleeving/machines.dm
@@ -472,10 +472,6 @@
var/obj/item/weapon/grab/G = W
if(!ismob(G.affecting))
return
- for(var/mob/living/carbon/slime/M in range(1, G.affecting))
- if(M.Victim == G.affecting)
- to_chat(usr, "[G.affecting:name] will not fit into the [src.name] because they have a slime latched onto their head.")
- return
var/mob/M = G.affecting
if(put_mob(M))
qdel(G)
diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm
index 98052576d4..ffe15da21d 100644
--- a/code/modules/scripting/Implementations/Telecomms.dm
+++ b/code/modules/scripting/Implementations/Telecomms.dm
@@ -253,7 +253,7 @@ datum/signal
newsign.data["realname"] = newsign.data["name"]
newsign.data["job"] = job
newsign.data["compression"] = 0
- newsign.data["message"] = message
+ newsign.data["message"] = message_to_multilingual(message)
newsign.data["type"] = 2 // artificial broadcast
if(!isnum(freq))
freq = text2num(freq)
@@ -264,7 +264,7 @@ datum/signal
newsign.data["radio"] = hradio
- newsign.data["vmessage"] = message
+ newsign.data["vmessage"] = message_to_multilingual(message)
newsign.data["vname"] = source
newsign.data["vmask"] = 0
newsign.data["level"] = list()
diff --git a/code/modules/xenobio2/mob/xeno procs.dm b/code/modules/xenobio2/mob/xeno procs.dm
index 0acdcba2e7..d038f87104 100644
--- a/code/modules/xenobio2/mob/xeno procs.dm
+++ b/code/modules/xenobio2/mob/xeno procs.dm
@@ -112,27 +112,11 @@ Divergence proc, used in mutation to make unique datums.
/mob/living/simple_mob/xeno/proc/RandomizeTraits()
return
-<<<<<<< HEAD
-/mob/living/simple_mob/xeno/hear_say(var/message, var/verb = "says", var/datum/language/language, var/alt_name = "",var/italics = 0, var/mob/speaker = null)
-=======
-/mob/living/simple_animal/xeno/hear_say(var/message, var/verb = "says", var/datum/language/language, var/italics = 0, var/mob/speaker = null)
->>>>>>> 54a8a58... Saycode Overhaul -- Multilingualism (#6956)
+/mob/living/simple_mob/xeno/hear_say(var/list/message_pieces, var/verb = "says", var/italics = 0, var/mob/speaker = null)
if(traitdat.traits[TRAIT_XENO_CANLEARN])
- /*
- Until this gets sorted out to a functioning point, or waiting on Psi's saycode update.
- var/learned_message = say_understands(speaker, language)
- if(!message || isxeno(speaker))
- return
- if(learned_message) //Is it understood?
- var/complete_message = ",[language.key] [message]"
- if(!(complete_message in speak))
- speech_buffer.Add(complete_message)
- log_debug("Added '[complete_message]'.")
- else
- */
if(!(message in speak))
- speech_buffer.Add(message)
- ..(message,verb,language,italics,speaker)
+ speech_buffer.Add(multilingual_to_message(message_pieces))
+ . = ..()
/mob/living/simple_mob/xeno/proc/ProcessSpeechBuffer()
if(speech_buffer.len)
diff --git a/vorestation.dme b/vorestation.dme
index 7ee3eed2cc..59fa2982e8 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2478,16 +2478,6 @@
#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm"
#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm"
#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm"
-#include "code\modules\mob\living\carbon\metroid\death.dm"
-#include "code\modules\mob\living\carbon\metroid\emote.dm"
-#include "code\modules\mob\living\carbon\metroid\examine.dm"
-#include "code\modules\mob\living\carbon\metroid\life.dm"
-#include "code\modules\mob\living\carbon\metroid\login.dm"
-#include "code\modules\mob\living\carbon\metroid\metroid.dm"
-#include "code\modules\mob\living\carbon\metroid\powers.dm"
-#include "code\modules\mob\living\carbon\metroid\say.dm"
-#include "code\modules\mob\living\carbon\metroid\subtypes.dm"
-#include "code\modules\mob\living\carbon\metroid\update_icons.dm"
#include "code\modules\mob\living\silicon\death.dm"
#include "code\modules\mob\living\silicon\emote.dm"
#include "code\modules\mob\living\silicon\laws.dm"