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..0d9b2268994a 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)
@@ -277,9 +287,12 @@ 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)
@@ -339,13 +352,22 @@ 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): "
+ 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")
+ 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")
@@ -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..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", "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")
@@ -334,6 +338,7 @@
body += "
"
@@ -343,6 +348,7 @@
body += "
"
@@ -361,9 +367,9 @@
body += "
"
body += "
"
for(var/text in GLOB.CMBFaxes)
@@ -373,6 +379,36 @@
body += "
"
+
+ for(var/text in GLOB.UPPFaxes)
+ body += text
+ body += "
"
+
+ body += "
"
+
+ for(var/text in GLOB.TWEFaxes)
+ body += text
+ body += "
"
+
+ body += "
"
+
+ for(var/text in GLOB.CLFFaxes)
+ body += text
+ body += "
"
+
+ body += "
"
diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm
index fa814ca16b7c..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 ... "
@@ -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"])
@@ -1226,7 +1227,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
@@ -1282,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"))
@@ -1364,6 +1365,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"])
diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi
index fa8858e8a17b..b15d4be6076d 100644
Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.dmi differ