diff --git a/code/game/machinery/tcomms/_base.dm b/code/game/machinery/tcomms/_base.dm index 624fc8c31ba..5ca3b9c52ac 100644 --- a/code/game/machinery/tcomms/_base.dm +++ b/code/game/machinery/tcomms/_base.dm @@ -176,6 +176,8 @@ GLOBAL_LIST_EMPTY(tcomms_machines) var/sender_name = "Error" /// What job are they var/sender_job = "Error" + /// What rank are they (this is used for formatting) + var/sender_rank = "Error" /// Pieces of the message var/list/message_pieces = list() /// Source Z-level diff --git a/code/game/machinery/tcomms/nttc.dm b/code/game/machinery/tcomms/nttc.dm index c54888d50ea..8ed0828e3b2 100644 --- a/code/game/machinery/tcomms/nttc.dm +++ b/code/game/machinery/tcomms/nttc.dm @@ -40,18 +40,30 @@ "Maintenance Technician" = "engradio", "Station Engineer" = "engradio", // Central Command - "Emergency Response Team Engineer" = "dsquadradio", // I know this says deathsquad but the class for responseteam is neon green. No. + "Custodian" = "dsquadradio", // I know this says deathsquad but the class for responseteam is neon green. No. + "Deathsquad Commando" = "dsquadradio", + "Emergency Response Team Engineer" = "dsquadradio", "Emergency Response Team Leader" = "dsquadradio", "Emergency Response Team Medic" = "dsquadradio", "Emergency Response Team Member" = "dsquadradio", "Emergency Response Team Officer" = "dsquadradio", + "Intel Officer" = "dsquadradio", + "Medical Officer" = "dsquadradio", + "Nanotrasen Navy Captain" = "dsquadradio", "Nanotrasen Navy Officer" = "dsquadradio", + "Nanotrasen Navy Representative" = "dsquadradio", + "Research Officer" = "dsquadradio", "Special Operations Officer" = "dsquadradio", + "Sol Trader" = "dsquadradio", "Solar Federation General" = "dsquadradio", + "Solar Federation Representative" = "dsquadradio", "Solar Federation Specops Lieutenant" = "dsquadradio", "Solar Federation Specops Marine" = "dsquadradio", "Solar Federation Lieutenant" = "dsquadradio", "Solar Federation Marine" = "dsquadradio", + "Supreme Commander" = "dsquadradio", + "Thunderdome Overseer" = "dsquadradio", + "VIP Guest" = "dsquadradio", // Medical "Chemist" = "medradio", "Chief Medical Officer" = "medradio", @@ -60,6 +72,7 @@ "Microbiologist" = "medradio", "Nurse" = "medradio", "Paramedic" = "medradio", + "Pathologist" = "medradio", "Pharmacologist" = "medradio", "Pharmacist" = "medradio", "Psychiatrist" = "medradio", @@ -118,9 +131,9 @@ /// List of ERT jobs var/list/ert_jobs = list("Emergency Response Team Officer", "Emergency Response Team Engineer", "Emergency Response Team Medic", "Emergency Response Team Leader", "Emergency Response Team Member") /// List of CentComm jobs - var/list/cc_jobs = list("Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation General") + var/list/cc_jobs = list("Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Intel Officer", "Medical Officer", "Nanotrasen Navy Captain", "Nanotrasen Navy Representative", "Research Officer", "Supreme Commander", "Thunderdome Overseer") /// List of SolGov Marine jobs - var/list/tsf_jobs = list("Solar Federation Specops Lieutenant", "Solar Federation Specops Marine", "Solar Federation Lieutenant", "Solar Federation Marine") + var/list/tsf_jobs = list("Solar Federation Specops Lieutenant", "Solar Federation Specops Marine", "Solar Federation Lieutenant", "Solar Federation Marine", "Solar Federation Representative", "Solar Federation General", "VIP Guest") // Defined so code compiles and incase someone has a non-standard job var/job_class = "radio" // NOW FOR ACTUAL TOGGLES @@ -235,7 +248,12 @@ // All job and coloring shit if(toggle_job_color || toggle_name_color) var/job = tcm.sender_job - job_class = all_jobs[job] + var/rank = tcm.sender_rank + //if the job title is not custom, just use that to decide the rules of formatting + if (job in all_jobs) + job_class = all_jobs[job] + else + job_class = all_jobs[rank] if(toggle_name_color) var/new_name = "[tcm.sender_name]" @@ -279,7 +297,12 @@ // Makes heads of staff bold if(toggle_command_bold) var/job = tcm.sender_job - if((job in ert_jobs) || (job in heads) || (job in cc_jobs) || (job in tsf_jobs)) + var/rank = tcm.sender_rank + var/realjob = job + if(!(job in all_jobs)) + realjob = rank + + if((realjob in ert_jobs) || (realjob in heads) || (realjob in cc_jobs) || (realjob in tsf_jobs)) for(var/I in 1 to length(message_pieces)) var/datum/multilingual_say_piece/S = message_pieces[I] if(!S.message) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index d86436071ee..3e1c1aa47b9 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -385,6 +385,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( var/displayname = M.name // grab the display name (name you get when you hover over someone's icon) var/voicemask = 0 // the speaker is wearing a voice mask var/jobname // the mob's "job" + var/rankname // the formatting to be used for the mob's job if(jammed) Gibberish_all(message_pieces, 100) @@ -393,6 +394,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( if(ishuman(M)) var/mob/living/carbon/human/H = M jobname = H.get_assignment() + rankname = H.get_authentification_rank() // --- Carbon Nonhuman --- else if(iscarbon(M)) // Nonhuman carbon mob @@ -427,6 +429,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( if(syndiekey && syndiekey.change_voice && connection.frequency == SYND_FREQ) displayname = syndiekey.fake_name jobname = "Unknown" + rankname = "Unknown" voicemask = TRUE // Copy the message pieces so we can safely edit comms line without affecting the actual line @@ -438,6 +441,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( var/datum/tcomms_message/tcm = new tcm.sender_name = displayname tcm.sender_job = jobname + tcm.sender_rank = rankname tcm.message_pieces = message_pieces_copy tcm.source_level = position.z tcm.freq = connection.frequency