diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 0245e4314000..bb2007cd90c4 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -425,6 +425,7 @@ "name" = "[customsender]", "job" = "[customjob]", "message" = custommessage, + "language" = get_default_language(), // PDAs now use the language system! "targets" = list("[customrecepient.owner] ([customrecepient.ownjob])") )) // this will log the signal and transmit it to the target diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index 51f874265396..775daf51bb9f 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -121,15 +121,26 @@ return copy // PDA signal datum +/datum/signal/subspace/messaging/pda + var/datum/language/lang // Stores what language the message was written in. + +/datum/signal/subspace/messaging/pda/New(init_source,init_data) + ..() + lang = data["language"] || /datum/language/common + /datum/signal/subspace/messaging/pda/proc/format_target() if (length(data["targets"]) > 1) return "Everyone" return data["targets"][1] -/datum/signal/subspace/messaging/pda/proc/format_message() +/datum/signal/subspace/messaging/pda/proc/format_message(mob/living/listener) + var/msg = data["message"] + if(istype(listener) && !listener.has_language(lang)) + var/datum/language/langue = GLOB.language_datum_instances[lang] + msg = langue.scramble(msg) if (logged && data["photo"]) - return "\"[data["message"]]\" (Photo)" - return "\"[data["message"]]\"" + return "\"[msg]\" (Photo)" + return "\"[msg]\"" /datum/signal/subspace/messaging/pda/broadcast() if (!logged) // Can only go through if a message server logs it diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 66c0aa37fa6d..0ac2639981c7 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/f_lum = 2.3 //Luminosity for the flashlight function var/silent = FALSE //To beep or not to beep, that is the question var/toff = FALSE //If TRUE, messenger disabled - var/tnote = null //Current Texts + var/list/tnote = list() //Current list of received signals, which are transmuted into messages on-the-spot. Can also be just plain strings, y'know, like, who really gives a shit, y'know var/last_text //No text spamming var/last_everyone //No text for everyone spamming var/last_noise //Also no honk spamming that's bad too @@ -340,7 +340,13 @@ GLOBAL_LIST_EMPTY(PDAs) dat += "