diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index c8a2b86982..618b6ad86e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1483,52 +1483,83 @@ log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].") H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. \"[input]\" Message ends.\"" - else if(href_list["CentcommFaxView"]) - var/info = locate(href_list["CentcommFaxView"]) + else if(href_list["AdminFaxView"]) + var/obj/item/fax = locate(href_list["AdminFaxView"]) + if (istype(fax, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = fax + P.show_content(usr) + else if (istype(fax, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/H = fax + H.show(usr) + else if (istype(fax, /obj/item/weapon/paper_bundle)) + //having multiple people turning pages on a paper_bundle can cause issues + //open a browse window listing the contents instead + var/data = "" + var/obj/item/weapon/paper_bundle/B = fax + + for (var/page = 1, page <= B.amount, page++) + var/obj/pageobj = B.contents[page] + data += "Page [page] - [pageobj.name]
" + + world << data + world << "usr = [usr]" + + usr << browse(data, "window=[B.name]") + else + usr << "\red The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]" - usr << browse("Centcomm Fax Message[info]", "window=Centcomm Fax Message") + else if (href_list["AdminFaxViewPage"]) + var/page = text2num(href_list["AdminFaxViewPage"]) + var/obj/item/weapon/paper_bundle/bundle = locate(href_list["paper_bundle"]) + + if (!bundle) return + + if (istype(bundle.contents[page], /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = bundle.contents[page] + P.show_content(src.owner, 1) + else if (istype(bundle.contents[page], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/H = bundle.contents[page] + H.show(src.owner) + return else if(href_list["CentcommFaxReply"]) - var/mob/living/carbon/human/H = locate(href_list["CentcommFaxReply"]) + var/mob/sender = locate(href_list["CentcommFaxReply"]) var/obj/machinery/photocopier/faxmachine/fax = locate(href_list["originfax"]) - 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 Centcomm", "") as message|null + var/input = input(src.owner, "Please enter a message to reply to [key_name(sender)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
for line breaks.", "Outgoing message from Centcomm", "") as message|null if(!input) return var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + + // Create the reply message + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( null ) //hopefully the null loc won't cause trouble for us + P.name = "[command_name()]- [customname]" + P.info = input + P.update_icon() + + // Stamps + var/image/stampoverlay = image('icons/obj/bureaucracy.dmi') + stampoverlay.icon_state = "paper_stamp-cent" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/weapon/stamp + P.overlays += stampoverlay + P.stamps += "
This paper has been stamped by the Central Command Quantum Relay." - for(var/obj/machinery/photocopier/faxmachine/F in machines) - if(F == fax) - if(! (F.stat & (BROKEN|NOPOWER) ) ) - - // animate! it's alive! - flick("faxreceive", F) - - // give the sprite some time to flick - spawn(20) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( F.loc ) - P.name = "[command_name()]- [customname]" - P.info = input - P.update_icon() - - playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1) - - // Stamps - var/image/stampoverlay = image('icons/obj/bureaucracy.dmi') - stampoverlay.icon_state = "paper_stamp-cent" - if(!P.stamped) - P.stamped = new - P.stamped += /obj/item/weapon/stamp - P.overlays += stampoverlay - P.stamps += "
This paper has been stamped by the Central Command Quantum Relay." - - src.owner << "Message reply to transmitted successfully." - log_admin("[key_name(src.owner)] replied to a fax message from [key_name(H)]: [input]") - message_admins("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]", 1) - return - src.owner << "/red Unable to locate fax!" + if(fax.recievefax(P)) + src.owner << "\blue Message reply to transmitted successfully." + log_admin("[key_name(src.owner)] replied to a fax message from [key_name(sender)]: [input]") + message_admins("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(sender)]", 1) + else + src.owner << "\red Message reply failed." + + spawn(100) + del(P) + return else if(href_list["SolGovFaxReply"]) + //TODO + /* var/mob/living/carbon/human/H = locate(href_list["SolGovFaxReply"]) var/obj/machinery/photocopier/faxmachine/fax = locate(href_list["originfax"]) @@ -1567,6 +1598,7 @@ message_admins("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]", 1) return src.owner << "/red Unable to locate fax!" + */ diff --git a/code/modules/paperwork/faxmachine2.dm b/code/modules/paperwork/faxmachine2.dm index a94f0ea5e6..14c5a19b1f 100644 --- a/code/modules/paperwork/faxmachine2.dm +++ b/code/modules/paperwork/faxmachine2.dm @@ -1,5 +1,8 @@ var/list/obj/machinery/photocopier/faxmachine/allfaxes = list() -var/list/alldepartments = list("Central Command", "Sol Government") +var/list/admin_departments = list("Central Command", "Sol Government") +var/list/alldepartments = list() + +var/list/adminfaxes = list() //cache for faxes that have been sent to admins /obj/machinery/photocopier/faxmachine name = "fax machine" @@ -24,7 +27,7 @@ var/list/alldepartments = list("Central Command", "Sol Government") ..() allfaxes += src - if( !("[department]" in alldepartments) ) + if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) ) alldepartments |= department /obj/machinery/photocopier/faxmachine/attack_hand(mob/user as mob) @@ -82,17 +85,11 @@ var/list/alldepartments = list("Central Command", "Sol Government") /obj/machinery/photocopier/faxmachine/Topic(href, href_list) if(href_list["send"]) if(copyitem) - - if(destination == "Central Command") - //Centcomm_fax(src, tofax.info, tofax.name, usr) - sendcooldown = 1800 - - else if(destination == "Sol Government") - //Solgov_fax(src, tofax.info, tofax.name, usr) - sendcooldown = 1800 + if (destination in admin_departments) + send_admin_fax(usr, destination) else sendfax(destination) - + if (sendcooldown) spawn(sendcooldown) // cooldown time sendcooldown = 0 @@ -125,7 +122,7 @@ var/list/alldepartments = list("Central Command", "Sol Government") if(href_list["dept"]) var/lastdestination = destination - destination = input(usr, "Which department?", "Choose a department", "") as null|anything in alldepartments + destination = input(usr, "Which department?", "Choose a department", "") as null|anything in (alldepartments + admin_departments) if(!destination) destination = lastdestination if(href_list["auth"]) @@ -138,21 +135,18 @@ var/list/alldepartments = list("Central Command", "Sol Government") updateUsrDialog() -/obj/machinery/photocopier/faxmachine/proc/admin_fax() - //TODO - /obj/machinery/photocopier/faxmachine/proc/sendfax(var/destination) if(stat & (BROKEN|NOPOWER)) return - var/sent = 0 - use_power(200) + + var/success = 0 for(var/obj/machinery/photocopier/faxmachine/F in allfaxes) if( F.department == destination ) - sent = F.recievefax(copyitem) + success = F.recievefax(copyitem) - if (sent) + if (success) visible_message("[src] beeps, \"Message transmitted successfully.\"") sendcooldown = 600 else @@ -180,13 +174,40 @@ var/list/alldepartments = list("Central Command", "Sol Government") use_power(active_power_usage) return 1 -/proc/Centcomm_fax(var/originfax, var/sent, var/sentname, var/mob/Sender) +/obj/machinery/photocopier/faxmachine/proc/send_admin_fax(var/mob/sender, var/destination) + if(stat & (BROKEN|NOPOWER)) + return + + use_power(200) - var/msg = "\blue CENTCOMM FAX: [key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (REPLY): Receiving '[sentname]' via secure connection ... view message" - - admins << msg - -/proc/Solgov_fax(var/originfax, var/sent, var/sentname, var/mob/Sender) - var/msg = "\blue SOL GOVERNMENT FAX: [key_name(Sender, 1)] (PP) (VV) (SM) (JMP) (CA) (REPLY): Receiving '[sentname]' via secure connection ... view message" + var/obj/item/rcvdcopy + if (istype(copyitem, /obj/item/weapon/paper)) + rcvdcopy = copy(copyitem) + else if (istype(copyitem, /obj/item/weapon/photo)) + rcvdcopy = photocopy(copyitem) + else if (istype(copyitem, /obj/item/weapon/paper_bundle)) + rcvdcopy = bundlecopy(copyitem) + else + visible_message("[src] beeps, \"Error transmitting message.\"") + return + + rcvdcopy.loc = null //hopefully this shouldn't cause trouble + adminfaxes += rcvdcopy + + //message badmins that a fax has arrived + switch(destination) + if ("Central Command") + message_admins(sender, "CENTCOMM FAX", rcvdcopy, "CentcommFaxReply", "#006100") + if ("Sol Government") + message_admins(sender, "SOL GOVERNMENT FAX", rcvdcopy, "CentcommFaxReply", "#1F66A0") + //message_admins(sender, "SOL GOVERNMENT FAX", rcvdcopy, "SolGovFaxReply", "#1F66A0") + + sendcooldown = 1800 + sleep(50) + visible_message("[src] beeps, \"Message transmitted successfully.\"") + +/obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/obj/item/sent, var/reply_type, font_colour="#006100") + var/msg = "\blue [faxname]: [key_name(sender, 1)] (PP) (VV) (SM) (JMP) (CA) (REPLY): Receiving '[sent.name]' via secure connection ... view message" + admins << msg \ No newline at end of file diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 83df89ee85..16bab79038 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -62,20 +62,20 @@ /obj/item/weapon/paper/examine() set src in oview(1) -// ..() //We don't want them to see the dumb "this is a paper" thing every time. -// I didn't like the idea that people can read tiny pieces of paper from across the room. -// Now you need to be next to the paper in order to read it. if(in_range(usr, src)) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) - usr << browse("[name][stars(info)][stamps]", "window=[name]") - onclose(usr, "[name]") - else - usr << browse("[name][info][stamps]", "window=[name]") - onclose(usr, "[name]") + show_content(usr) else usr << "It is too far away." return +/obj/item/weapon/paper/proc/show_content(var/mob/user, var/forceshow=0) + if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/dead/observer) || istype(user, /mob/living/silicon)) && !forceshow) + user << browse("[name][stars(info)][stamps]", "window=[name]") + onclose(user, "[name]") + else + user << browse("[name][info][stamps]", "window=[name]") + onclose(user, "[name]") + /obj/item/weapon/paper/verb/rename() set name = "Rename paper" set category = "Object" diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 704afe76d5..1284d0aedb 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -99,52 +99,49 @@ usr << desc if(in_range(usr, src)) - src.attack_self(usr) + src.show_content(usr) else usr << "It is too far away." return +/obj/item/weapon/paper_bundle/proc/show_content(mob/user as mob) + var/dat + var/obj/item/weapon/W = src[page] + switch(screen) + if(0) + dat+= "
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" + dat+= "
Next Page


" + if(1) + dat+= "
Previous Page
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" + dat+= "
Next Page


" + if(2) + dat+= "
Previous Page
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]


" + dat+= "
" + if(istype(src[page], /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = W + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + dat+= "[P.name][stars(P.info)][P.stamps]" + else + dat+= "[P.name][P.info][P.stamps]" + user << browse(dat, "window=[name]") + else if(istype(src[page], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = W + user << browse_rsc(P.img, "tmp_photo.png") + user << browse(dat + "[P.name]" \ + + "" \ + + "
Written on the back:
[P.scribble]" : ]"\ + + "", "window=[name]") /obj/item/weapon/paper_bundle/attack_self(mob/user as mob) - if(ishuman(user)) - var/mob/living/carbon/human/human_user = user - var/dat - var/obj/item/weapon/W = src[page] - switch(screen) - if(0) - dat+= "
" - dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" - dat+= "
Next Page


" - if(1) - dat+= "
Previous Page
" - dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" - dat+= "
Next Page


" - if(2) - dat+= "
Previous Page
" - dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]


" - dat+= "
" - if(istype(src[page], /obj/item/weapon/paper)) - var/obj/item/weapon/paper/P = W - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) - dat+= "[P.name][stars(P.info)][P.stamps]" - else - dat+= "[P.name][P.info][P.stamps]" - human_user << browse(dat, "window=[name]") - P.add_fingerprint(usr) - else if(istype(src[page], /obj/item/weapon/photo)) - var/obj/item/weapon/photo/P = W - human_user << browse_rsc(P.img, "tmp_photo.png") - human_user << browse(dat + "[P.name]" \ - + "" \ - + "
Written on the back:
[P.scribble]" : ]"\ - + "", "window=[name]") - P.add_fingerprint(usr) - add_fingerprint(usr) - update_icon() + src.show_content(user) + add_fingerprint(usr) + update_icon() return - /obj/item/weapon/paper_bundle/Topic(href, href_list) ..() if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents))) diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 4db50a0fe4..cd04e09644 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -256,7 +256,7 @@ "aeV" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aeW" = (/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "aeX" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) -"aeY" = (/obj/structure/table,/obj/machinery/faxmachine{department = "Warden's Office"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) +"aeY" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Warden's Office"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aeZ" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "afa" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "afb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) @@ -532,7 +532,7 @@ "akl" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/security/brig) "akm" = (/obj/machinery/door/airlock/glass_security{name = "Solitary Confinement 2"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/brig) "akn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) -"ako" = (/obj/structure/table/reinforced,/obj/machinery/faxmachine{anchored = 0; department = "Internal Affairs"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) +"ako" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{anchored = 0; department = "Internal Affairs"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "akp" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "akq" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "akr" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/secure_closet/detective,/obj/item/weapon/reagent_containers/food/drinks/flask/detflask,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) @@ -788,7 +788,7 @@ "aph" = (/obj/structure/flora/pottedplant{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) "api" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "apj" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/item/weapon/stamp,/obj/item/weapon/stamp/denied{pixel_x = 5},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"apk" = (/obj/structure/table/woodentable,/obj/machinery/keycard_auth{pixel_x = 30},/obj/machinery/faxmachine{department = "Head of Security"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) +"apk" = (/obj/structure/table/woodentable,/obj/machinery/keycard_auth{pixel_x = 30},/obj/machinery/photocopier/faxmachine{department = "Head of Security"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "apl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/crew_quarters/heads/hos) "apm" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/obj/item/device/radio/off,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) "apn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos) @@ -1674,7 +1674,7 @@ "aGj" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aGk" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/hallway/primary/port) "aGl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room) -"aGm" = (/obj/structure/table/woodentable,/obj/machinery/faxmachine{department = "Bridge"},/turf/simulated/floor/wood,/area/bridge/meeting_room) +"aGm" = (/obj/structure/table/woodentable,/obj/machinery/photocopier/faxmachine{department = "Bridge"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "aGn" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{dir = 2; id = "bar"; layer = 3.1; name = "Bar Shutters"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aGo" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aGp" = (/obj/item/weapon/book/manual/security_space_law,/obj/structure/table/woodentable,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room) @@ -2046,7 +2046,7 @@ "aNr" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) "aNs" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aNt" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 1; name = "Locker Room"; sortType = "Locker Room"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/locker) -"aNu" = (/obj/structure/table,/obj/machinery/faxmachine{anchored = 1; department = "Vacant Office"},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/security/vacantoffice) +"aNu" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{anchored = 1; department = "Vacant Office"},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/security/vacantoffice) "aNv" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/decal/cleanable/blood/oil,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/locker) "aNw" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4; icon_state = "intact-supply"; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/locker) "aNx" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green,/obj/machinery/power/smes/buildable{charge = 0},/turf/simulated/floor/plating,/area/maintenance/locker) @@ -3867,7 +3867,7 @@ "bws" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/hallway/primary/aft) "bwt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/rnd/research) "bwu" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "EngineVent"; name = "Engine Ventillatory Control"; pixel_x = -24; pixel_y = 10; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/crew_quarters/heads/chief) -"bwv" = (/obj/structure/table/reinforced,/obj/machinery/faxmachine{department = "Chief Engineer's Office"},/turf/simulated/floor,/area/crew_quarters/heads/chief) +"bwv" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{department = "Chief Engineer's Office"},/turf/simulated/floor,/area/crew_quarters/heads/chief) "bww" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/clothing/glasses/welding/superior,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/crew_quarters/heads/chief) "bwx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/central_two) "bwy" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central_two) @@ -3896,7 +3896,7 @@ "bwV" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) "bwW" = (/turf/simulated/wall,/area/crew_quarters/medbreak) "bwX" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bwY" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table,/obj/machinery/faxmachine{department = "CMO's Office"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) +"bwY" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "CMO's Office"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) "bwZ" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) "bxa" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/obj/item/weapon/storage/secure/safe{pixel_x = 32},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) "bxb" = (/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/cmo) @@ -4071,7 +4071,7 @@ "bAo" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bAp" = (/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bAq" = (/turf/simulated/wall,/area/medical/genetics) -"bAr" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/structure/table,/obj/machinery/faxmachine{department = "Research Director's Office"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hop) +"bAr" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Research Director's Office"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hop) "bAs" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/table,/obj/item/weapon/storage/box/botanydisk,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "bAt" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/science,/obj/item/weapon/cartridge/signal/science{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/science{pixel_x = 4; pixel_y = 6},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","Research")},/obj/item/clothing/glasses/welding/superior,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bAu" = (/obj/structure/closet/secure_closet/RD,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) @@ -4887,7 +4887,7 @@ "bPY" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "bPZ" = (/turf/simulated/wall,/area/medical/medbay2) "bQa" = (/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/camera{c_tag = "Messaging Server"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_server_room) -"bQb" = (/obj/structure/table,/obj/machinery/faxmachine{department = "Head of Personnel's Office"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bQb" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Head of Personnel's Office"},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bQc" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bQd" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/medbay2) "bQe" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/miningdock) @@ -4983,7 +4983,7 @@ "bRQ" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bRR" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/camera{c_tag = "Command Substation"; dir = 2; network = list("SS13","Engineering")},/obj/machinery/power/smes/buildable{charge = 0},/turf/simulated/floor/plating,/area/maintenance/substation/command) "bRS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bRT" = (/obj/machinery/faxmachine{department = "Captain's Office"},/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bRT" = (/obj/machinery/photocopier/faxmachine{department = "Captain's Office"},/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bRU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bRV" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bRW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)