From 3ae48df6811976820dc497008aef38486a95044d Mon Sep 17 00:00:00 2001 From: ItsVyzo Date: Sun, 21 Jan 2024 02:35:53 +0300 Subject: [PATCH 1/6] faxpansion --- code/_globalvars/global_lists.dm | 3 ++ code/game/machinery/fax_machine.dm | 48 ++++++++++++++++++++++++++- code/modules/admin/tabs/event_tab.dm | 30 +++++++++++++++-- icons/obj/items/paper.dmi | Bin 11203 -> 12014 bytes 4 files changed, 78 insertions(+), 3 deletions(-) diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 6e1b229e562f..6a38b5c60652 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -3,6 +3,9 @@ GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) GLOBAL_LIST_EMPTY(ProvostFaxes) GLOBAL_LIST_EMPTY(CMBFaxes) +GLOBAL_LIST_EMPTY(UPPFaxes) +GLOBAL_LIST_EMPTY(TWEFaxes) +GLOBAL_LIST_EMPTY(CLFFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index 4a5c62b1f9a0..0111b8924b53 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -6,7 +6,10 @@ GLOBAL_LIST_EMPTY(alldepartments) #define DEPARTMENT_CMB "CMB Incident Command Center, Local Operations" #define DEPARTMENT_PROVOST "USCM Provost Office" #define DEPARTMENT_PRESS "Various Press Organizations" -#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS) +#define DEPARTMENT_TWE "Three World Empire" +#define DEPARTMENT_UPP "Union of Progress Peoples" +#define DEPARTMENT_CLF "Colonial Liberation Front" +#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS, DEPARTMENT_TWE, DEPARTMENT_UPP, DEPARTMENT_CLF) /obj/structure/machinery/faxmachine // why not fax_machine? name = "\improper General Purpose Fax Machine" @@ -138,6 +141,13 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.alldepartments += DEPARTMENT_CMB if(!(DEPARTMENT_PRESS in GLOB.alldepartments)) GLOB.alldepartments += DEPARTMENT_PRESS + if(!(DEPARTMENT_TWE in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_TWE + if(!(DEPARTMENT_UPP in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_UPP + if(!(DEPARTMENT_CLF in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_CLF + // TGUI SHIT \\ /obj/structure/machinery/faxmachine/tgui_interact(mob/user, datum/tgui/ui) @@ -280,6 +290,9 @@ GLOBAL_LIST_EMPTY(alldepartments) . += "" . += "" . += "" + . += "" + . += "" + . += "" // converting whatever type the fax is into a single paper with all the information on it. /obj/structure/machinery/faxmachine/proc/copy_fax_paper(mob/living/user) @@ -344,6 +357,15 @@ GLOBAL_LIST_EMPTY(alldepartments) if(DEPARTMENT_PRESS) GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " + if(DEPARTMENT_TWE) + GLOB.TWEFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_UPP) + GLOB.UPPFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_CLF) + GLOB.CLFFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " else GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " @@ -416,6 +438,30 @@ GLOBAL_LIST_EMPTY(alldepartments) P.stamped += /obj/item/tool/stamp P.overlays += stampoverlay P.stamps += "
This paper has been stamped and encrypted by the Weyland-Yutani Quantum Relay (tm)." + if("TWE Royal Marines Commando Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the TWE Royal Marines Commando Quantum Relay." + if("UPP High Kommand Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the UPP High Kommand Quantum Relay." + if("CLF Gureilla Command Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped and encrypted by the CLF Gureilla Command Quantum Relay." playsound(F.loc, "sound/items/polaroid1.ogg", 15, 1) qdel(faxcontents) diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 839dea7b2334..60e07b676a77 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -322,7 +322,7 @@ if(!admin_holder) return - var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "Other", "Cancel") + var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "UPP", "TWE", "CLF", "Other", "Cancel") var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options) switch(answer) if("Weyland-Yutani") @@ -334,6 +334,7 @@ body += "

" show_browser(src, body, "Faxes to Weyland-Yutani", "wyfaxviewer", "size=300x600") + if("High Command") var/body = "" @@ -343,6 +344,7 @@ body += "

" show_browser(src, body, "Faxes to High Command", "uscmfaxviewer", "size=300x600") + if("Provost") var/body = "" @@ -363,7 +365,7 @@ body += "

" show_browser(src, body, "Faxes to Press organizations", "otherfaxviewer", "size=300x600") - if("CMB") + if("Colonial Marshal Bureau") var/body = "" for(var/text in GLOB.CMBFaxes) @@ -373,6 +375,30 @@ body += "

" show_browser(src, body, "Faxes to the Colonial Marshal Bureau", "cmbfaxviewer", "size=300x600") + if("Union of Progressive Peoples") + var/body = "" + + for(var/text in GLOB.UPPFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Union of Progressive Peoples", "uppfaxviewer", "size=300x600") + + for(var/text in GLOB.TWEFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Three World Empire", "twefaxviewer", "size=300x600") + + for(var/text in GLOB.CLFFaxes) + body += text + body += "

" + + body += "

" + show_browser(src, body, "Faxes to the Colonial Liberation Front", "clffaxviewer", "size=300x600") + if("Other") var/body = "" diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi index fa8858e8a17b9927a8d90ffeaee9b97ef167e23f..b15d4be6076d44d17404eae888e8b7b09f1a4b61 100644 GIT binary patch literal 12014 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 EU&db!P5=M^ From 44b16fca1151ecc358d3d1852f9fb52d7dca599c Mon Sep 17 00:00:00 2001 From: ItsVyzo <46250991+ItsVyzo@users.noreply.github.com> Date: Sat, 20 Jan 2024 16:22:57 -0800 Subject: [PATCH 2/6] Update code/modules/admin/tabs/event_tab.dm Co-authored-by: SabreML <57483089+SabreML@users.noreply.github.com> --- code/modules/admin/tabs/event_tab.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 60e07b676a77..a839207ae2a4 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -385,6 +385,9 @@ body += "

" show_browser(src, body, "Faxes to the Union of Progressive Peoples", "uppfaxviewer", "size=300x600") + if("Three World Empire") + var/body = "" + for(var/text in GLOB.TWEFaxes) body += text body += "

" From 49e200165310f2910de071da4481524dae73cdfc Mon Sep 17 00:00:00 2001 From: ItsVyzo <46250991+ItsVyzo@users.noreply.github.com> Date: Sat, 20 Jan 2024 16:23:08 -0800 Subject: [PATCH 3/6] Update code/modules/admin/tabs/event_tab.dm Co-authored-by: SabreML <57483089+SabreML@users.noreply.github.com> --- code/modules/admin/tabs/event_tab.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index a839207ae2a4..c94e9bb9dc37 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -395,6 +395,9 @@ body += "

" show_browser(src, body, "Faxes to the Three World Empire", "twefaxviewer", "size=300x600") + if("Colonial Liberation Front") + var/body = "" + for(var/text in GLOB.CLFFaxes) body += text body += "

" From 9e4105674d47a9627b0e47b48db0131e278e1efd Mon Sep 17 00:00:00 2001 From: ItsVyzo Date: Sun, 21 Jan 2024 06:01:39 +0300 Subject: [PATCH 4/6] VV works now --- code/modules/admin/topic/topic.dm | 245 +++++++++++++++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index fa814ca16b7c..5b3b9d6b57b3 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -1226,7 +1226,7 @@ return else return - var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from Weyland USCM", "") as message|null + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from USCM", "") as message|null if(!message_body) return var/sent_by = input(src.owner, "Enter the name and rank you are sending from.", "Outgoing message from USCM", "") as message|null @@ -1364,6 +1364,249 @@ return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["TWEFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["TWEFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from TWE", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from TWE", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from TWE", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from TWE", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from TWE", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "THREE WORLD EMPIRE - ROYAL MILITARY COMMAND", subject, addressed_to, message_body, sent_by, "Office of Military Communications", "Three World Empire")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF TWE FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.TWEFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("THREE WORLD EMPIRE FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Three World Empire - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the Three World Empire Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["UPPFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["UPPFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from UPP", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from UPP", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from UPP", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from UPP", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from UPP", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "UNION OF PROGRESSIVE PEOPLES - MILITARY HIGH KOMMAND", subject, addressed_to, message_body, sent_by, "Military High Kommand", "Union of Progressive Peoples")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF UPP FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.UPPFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("UNION OF PROGRESSIVE PEOPLES FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Union of Progressive Peoples - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the Union of Progressive Peoples Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["CLFFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["CLFFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from CLF", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from CLF", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from CLF", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

for paragraphs", "Outgoing message from CLF", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from CLF", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "COLONIAL LIBERATION FRONT - COLONIAL COUNCIL OF LIBERATION", subject, addressed_to, message_body, sent_by, "Guerilla Forces Command", "Colonial Liberation Front")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF CLF FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.CLFFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("COLONIAL LIBERATION FRONT FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Colonial Liberation Front - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped and encrypted by the Colonial Liberation Front Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["CMBFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["CMBFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) From f491c0bc70b01f3febdd7dc920bb7f32e3cbf84e Mon Sep 17 00:00:00 2001 From: ItsVyzo Date: Sun, 21 Jan 2024 07:03:08 +0300 Subject: [PATCH 5/6] yess --- code/modules/admin/tabs/event_tab.dm | 8 ++++++-- code/modules/admin/topic/topic.dm | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index c94e9bb9dc37..d03e52406cbc 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -322,7 +322,11 @@ if(!admin_holder) return - var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "UPP", "TWE", "CLF", "Other", "Cancel") + var/list/options = list( + "Weyland-Yutani", "High Command", "Provost", "Press", + "Colonial Marshal Bureau", "Union of Progressive Peoples", + "Three World Empire", "Colonial Liberation Front", + "Other", "Cancel") var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options) switch(answer) if("Weyland-Yutani") @@ -363,7 +367,7 @@ body += "

" body += "

" - show_browser(src, body, "Faxes to Press organizations", "otherfaxviewer", "size=300x600") + show_browser(src, body, "Faxes to Press organizations", "pressfaxviewer", "size=300x600") if("Colonial Marshal Bureau") var/body = "" diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index 5b3b9d6b57b3..dd2b3e68b310 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -1199,6 +1199,7 @@ message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["USCMFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["USCMFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) From 9470c8ad9244418f3f68f138ce8c8d032ab37b32 Mon Sep 17 00:00:00 2001 From: ItsVyzo Date: Fri, 2 Feb 2024 14:40:12 +0300 Subject: [PATCH 6/6] fixes --- code/game/machinery/fax_machine.dm | 8 ++++---- code/modules/admin/topic/topic.dm | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index 0111b8924b53..0d9b2268994a 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -287,7 +287,7 @@ GLOBAL_LIST_EMPTY(alldepartments) . = ..() . += "" . += "" - . += "" + . += "" . += "" . += "" . += "" @@ -352,8 +352,8 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.CMBFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY)
: " if(DEPARTMENT_WY) - GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") - msg_admin += "(RPLY): " + GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " if(DEPARTMENT_PRESS) GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " @@ -367,7 +367,7 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.CLFFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " else - GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... view message") diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index dd2b3e68b310..514a46e3259a 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -1163,7 +1163,7 @@ GLOB.fax_contents += fax_message // save a copy var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null - GLOB.USCMFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") + GLOB.PressFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") var/msg_ghost = SPAN_NOTICE("PRESS REPLY: ") msg_ghost += "Transmitting '[customname]' via secure connection ... " @@ -1283,8 +1283,8 @@ return to_chat(src.owner, "/red Unable to locate fax!") - else if(href_list["CLFaxReply"]) - var/mob/living/carbon/human/H = locate(href_list["CLFaxReply"]) + else if(href_list["WYFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["WYFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom"))