Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/game/machinery/telecomms/computers/message.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
17 changes: 14 additions & 3 deletions code/game/machinery/telecomms/machines/message_server.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"]]\" (<a href='byond://?src=[REF(logged)];photo=1'>Photo</a>)"
return "\"[data["message"]]\""
return "\"[msg]\" (<a href='byond://?src=[REF(logged)];photo=1'>Photo</a>)"
return "\"[msg]\""

/datum/signal/subspace/messaging/pda/broadcast()
if (!logged) // Can only go through if a message server logs it
Expand Down
14 changes: 10 additions & 4 deletions code/game/objects/items/devices/PDA/PDA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -340,7 +340,13 @@ GLOBAL_LIST_EMPTY(PDAs)

dat += "<h4>[PDAIMG(mail)] Messages</h4>"

dat += tnote
//Build the message list
for(var/x in tnote)
if(istext(x)) // If it's literally just text
dat += tnote
else // It's hopefully a signal
var/datum/signal/subspace/messaging/pda/sig = x
dat += "<i><b><a href='byond://?src=[REF(src)];choice=Message;target=[REF(sig.source)]'>[sig.data["name"]]</a> ([sig.data["job"]]):</b></i><br>[sig.format_message(user)]<br>"
dat += "<br>"

if (3)
Expand Down Expand Up @@ -649,7 +655,7 @@ GLOBAL_LIST_EMPTY(PDAs)

var/target_text = signal.format_target()
// Log it in our logs
tnote += "<i><b>&rarr; To [target_text]:</b></i><br>[signal.format_message()]<br>"
tnote += signal
// Show it to ghosts
var/ghost_message = "<span class='name'>[owner] </span><span class='game say'>PDA Message</span> --> <span class='name'>[target_text]</span>: <span class='message'>[signal.format_message()]</span>"
for(var/mob/M in GLOB.player_list)
Expand All @@ -665,7 +671,7 @@ GLOBAL_LIST_EMPTY(PDAs)
last_everyone = world.time

/obj/item/pda/proc/receive_message(datum/signal/subspace/messaging/pda/signal)
tnote += "<i><b>&larr; From <a href='byond://?src=[REF(src)];choice=Message;target=[REF(signal.source)]'>[signal.data["name"]]</a> ([signal.data["job"]]):</b></i><br>[signal.format_message()]<br>"
tnote += signal

if (!silent)
playsound(src, 'sound/machines/twobeep_high.ogg', 50, 1)
Expand Down