From e635121d878541d544d9c2f7aa9ecfaf4de4a713 Mon Sep 17 00:00:00 2001
From: Kocma-san <112967882+Kocma-san@users.noreply.github.com>
Date: Wed, 14 Aug 2024 18:08:56 +0700
Subject: [PATCH] Added physical references for special fax networks (#84910)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## About The Pull Request
Now there are fax machines that receive and send messages on behalf of
the special networks of NT and syndicate
Also added centcom stamps to centcom (funny, they weren’t there)

## Why It's Good For The Game
Faxes sent from the CC will have the correct sender name. Also, there
will be no unnecessary faxes in the fax panel
## Changelog
:cl:
code: сhanges for a fax located on the CC
qol: added centcom stamps to centcom
/:cl
---
_maps/map_files/generic/CentCom.dmm | 177 +++++++++++++-------------
code/__DEFINES/admin.dm | 4 +-
code/modules/admin/admin_fax_panel.dm | 2 +
code/modules/admin/topic.dm | 7 +-
code/modules/paperwork/fax.dm | 27 +++-
5 files changed, 122 insertions(+), 95 deletions(-)
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index fe2c130ed86..a1ef3a14dd3 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -196,13 +196,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/courtroom)
-"aV" = (
-/obj/structure/table/wood,
-/obj/item/clipboard,
-/obj/item/radio/headset/headset_cent,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron/dark,
-/area/centcom/central_command_areas/briefing)
"aW" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -716,6 +709,21 @@
/obj/effect/landmark/start/new_player,
/turf/closed/indestructible/start_area,
/area/misc/start)
+"df" = (
+/obj/structure/table/wood,
+/obj/item/clipboard,
+/obj/item/folder/red,
+/obj/item/stamp/denied{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/stamp{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stamp/centcom,
+/turf/open/floor/iron/grimy,
+/area/centcom/central_command_areas/admin)
"dh" = (
/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
dir = 4
@@ -1663,6 +1671,13 @@
/obj/item/soap/nanotrasen,
/turf/open/floor/iron/white,
/area/centcom/tdome/observation)
+"ig" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/item/taperecorder,
+/obj/item/book/manual/wiki/security_space_law,
+/turf/open/floor/iron/dark,
+/area/centcom/central_command_areas/ferry)
"ih" = (
/obj/structure/bookcase/random,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -2905,6 +2920,11 @@
},
/turf/open/floor/iron,
/area/centcom/central_command_areas/fore)
+"nz" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/admin,
+/turf/open/floor/iron/grimy,
+/area/centcom/central_command_areas/briefing)
"nA" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -3766,6 +3786,13 @@
/obj/effect/turf_decal/tile/dark_blue/fourcorners,
/turf/open/floor/iron,
/area/centcom/central_command_areas/evacuation)
+"rr" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/item/clipboard,
+/obj/item/radio/headset/headset_cent,
+/turf/open/floor/iron/dark,
+/area/centcom/central_command_areas/briefing)
"rs" = (
/obj/effect/landmark/prisonwarp,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -5473,6 +5500,21 @@
},
/turf/open/floor/iron,
/area/centcom/central_command_areas/supply)
+"yR" = (
+/obj/item/clipboard,
+/obj/item/folder/red,
+/obj/item/stamp/denied{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/stamp{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/structure/table/reinforced,
+/obj/item/stamp/centcom,
+/turf/open/floor/iron/grimy,
+/area/centcom/central_command_areas/briefing)
"yS" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/emps,
@@ -6973,12 +7015,6 @@
},
/turf/open/floor/iron,
/area/centcom/tdome/observation)
-"Ga" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/machinery/fax,
-/turf/open/floor/iron/dark,
-/area/centcom/central_command_areas/ferry)
"Gb" = (
/obj/effect/light_emitter/thunderdome,
/turf/closed/indestructible/fakeglass,
@@ -7517,17 +7553,6 @@
},
/turf/open/floor/iron,
/area/centcom/tdome/observation)
-"Ke" = (
-/obj/item/clipboard,
-/obj/item/folder/red,
-/obj/item/stamp/denied{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/stamp,
-/obj/structure/table/reinforced,
-/turf/open/floor/iron/grimy,
-/area/centcom/central_command_areas/briefing)
"Kf" = (
/obj/machinery/door/airlock/centcom{
name = "Administrative Storage"
@@ -7648,6 +7673,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/central_command_areas/evacuation/ship)
+"KW" = (
+/obj/machinery/keycard_auth/wall_mounted/directional/south,
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
+/obj/machinery/button/door/indestructible{
+ id = "XCCFerry";
+ name = "Hanger Bay Shutters";
+ pixel_y = -38
+ },
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron/dark,
+/area/centcom/central_command_areas/ferry)
"KZ" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
@@ -8227,6 +8264,27 @@
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
/area/centcom/central_command_areas/admin)
+"NN" = (
+/obj/machinery/keycard_auth/wall_mounted/directional/south,
+/obj/structure/table/reinforced,
+/obj/item/stack/package_wrap{
+ pixel_y = 11;
+ pixel_x = -16
+ },
+/obj/item/stack/cable_coil{
+ pixel_y = 4;
+ pixel_x = -10
+ },
+/obj/item/hand_labeler{
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/item/hand_labeler_refill{
+ pixel_x = 8;
+ pixel_y = 12
+ },
+/turf/open/floor/iron/dark,
+/area/centcom/central_command_areas/supply)
"NO" = (
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/supplypod)
@@ -8782,19 +8840,6 @@
"PW" = (
/turf/open/floor/iron,
/area/centcom/central_command_areas/supplypod/loading/three)
-"PX" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/red{
- pixel_x = -2;
- pixel_y = -2
- },
-/obj/item/folder/blue{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/lighter,
-/turf/open/floor/iron/grimy,
-/area/centcom/central_command_areas/briefing)
"PY" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -9586,27 +9631,6 @@
/obj/effect/light_emitter/thunderdome,
/turf/open/floor/iron,
/area/centcom/tdome/arena)
-"TO" = (
-/obj/machinery/keycard_auth/wall_mounted/directional/south,
-/obj/structure/table/reinforced,
-/obj/item/stack/package_wrap{
- pixel_y = 11;
- pixel_x = -16
- },
-/obj/item/stack/cable_coil{
- pixel_y = 4;
- pixel_x = -10
- },
-/obj/item/hand_labeler{
- pixel_y = 1
- },
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/item/hand_labeler_refill{
- pixel_x = 8;
- pixel_y = 12
- },
-/turf/open/floor/iron/dark,
-/area/centcom/central_command_areas/supply)
"TS" = (
/obj/structure/table/wood,
/obj/item/dice/d20{
@@ -10379,18 +10403,6 @@
"Xq" = (
/turf/open/floor/wood,
/area/centcom/central_command_areas/admin)
-"Xr" = (
-/obj/machinery/keycard_auth/wall_mounted/directional/south,
-/obj/structure/table/reinforced,
-/obj/machinery/recharger,
-/obj/machinery/button/door/indestructible{
- id = "XCCFerry";
- name = "Hanger Bay Shutters";
- pixel_y = -38
- },
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron/dark,
-/area/centcom/central_command_areas/ferry)
"Xs" = (
/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
/turf/open/floor/iron,
@@ -10494,17 +10506,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/centcom/central_command_areas/supplypod)
-"XV" = (
-/obj/structure/table/wood,
-/obj/item/clipboard,
-/obj/item/folder/red,
-/obj/item/stamp/denied{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/stamp,
-/turf/open/floor/iron/grimy,
-/area/centcom/central_command_areas/admin)
"Ya" = (
/turf/closed/indestructible/riveted,
/area/centcom/central_command_areas/armory)
@@ -45263,7 +45264,7 @@ aa
aa
aa
oe
-Ga
+ig
sq
to
ZN
@@ -45523,7 +45524,7 @@ mD
FX
sr
tp
-Xr
+KW
mD
aa
oe
@@ -47334,7 +47335,7 @@ WN
cb
Bu
tb
-aV
+rr
ho
gO
aa
@@ -48102,8 +48103,8 @@ fa
mD
PU
eF
-PX
-Ke
+nz
+yR
eV
eF
xU
@@ -49113,7 +49114,7 @@ vo
fP
On
Zw
-XV
+df
hd
To
BT
@@ -50652,7 +50653,7 @@ iF
Pg
mH
nm
-TO
+NN
On
Ui
JC
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index 66f34f5f57b..74c9120d804 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -73,8 +73,8 @@
#define ADMIN_LUAVIEW_CHUNK(state, log_index) "(VIEW CODE)"
/// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper.
#define ADMIN_SHOW_PAPER(atom) "(SHOW)"
-/// Displays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom fax machine.
-#define ADMIN_PRINT_FAX(atom, fax_name) "(PRINT)"
+/// Displays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom/Syndicate fax machine.
+#define ADMIN_PRINT_FAX(atom, sender, destination) "(PRINT)"
/// Displays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request.
#define ADMIN_PLAY_INTERNET(text, credit) "(PLAY)"
/// Displays "(SEE Z-LEVEL LAYOUT)" in the chat, when clicked it shows the z-level layouts for the current world state.
diff --git a/code/modules/admin/admin_fax_panel.dm b/code/modules/admin/admin_fax_panel.dm
index 8874b6f38eb..cc88f1949f2 100644
--- a/code/modules/admin/admin_fax_panel.dm
+++ b/code/modules/admin/admin_fax_panel.dm
@@ -20,6 +20,8 @@ ADMIN_VERB(fax_panel, R_ADMIN, "Fax Panel", "View and respond to faxes sent to C
/datum/fax_panel_interface/New()
//Get all faxes, and save them to our list.
for(var/obj/machinery/fax/fax as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax))
+ if(istype(fax, /obj/machinery/fax/admin))
+ continue
available_faxes += WEAKREF(fax)
//Get all stamps
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index ebdc8430521..6a2666eef9b 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1727,11 +1727,12 @@
if(!check_rights(R_ADMIN))
return
- for(var/obj/machinery/fax/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax))
- if(!is_centcom_level(FAX.z))
+ for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin))
+ if(FAX.fax_id != href_list["destination"])
continue
+ FAX.receive(locate(href_list["print_fax"]), href_list["sender_name"])
+
- FAX.receive(locate(href_list["print_fax"]), href_list["fax_name"])
else if(href_list["play_internet"])
if(!check_rights(R_SOUND))
return
diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm
index e652b92e978..2b75e97c01b 100644
--- a/code/modules/paperwork/fax.dm
+++ b/code/modules/paperwork/fax.dm
@@ -66,6 +66,27 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
fax_name = "[current_area.name]"
return ..()
+/obj/machinery/fax/admin/syndicate
+ name = "Syndicate Fax Machine"
+
+/obj/machinery/fax/admin/syndicate/Initialize(mapload)
+ fax_name = "[special_networks["syndicate"]["fax_name"]]"
+ fax_id = special_networks["syndicate"]["fax_id"]
+ syndicate_network = TRUE
+ return ..()
+
+/obj/machinery/fax/admin
+ name = "CentCom Fax Machine"
+
+/obj/machinery/fax/admin/Initialize(mapload)
+ if (!fax_name)
+ fax_name = "[GLOB.nt_fax_department]"
+ if(!fax_id)
+ fax_id = special_networks["nanotrasen"]["fax_id"]
+ name = "[fax_name] Fax Machine"
+ visible_to_network = FALSE
+ return ..()
+
/obj/machinery/fax/Initialize(mapload)
. = ..()
if (!fax_id)
@@ -232,7 +253,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
var/list/data = list()
//Record a list of all existing faxes.
for(var/obj/machinery/fax/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax))
- if(FAX.fax_id == fax_id || is_centcom_level(FAX.z)) //skip yourself and the centcom fax machine.
+ if(FAX.fax_id == fax_id) //skip yourself
continue
var/list/fax_data = list()
fax_data["fax_name"] = FAX.fax_name
@@ -253,6 +274,8 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
data["fax_history"] = fax_history
var/list/special_networks_data = list()
for(var/key in special_networks)
+ if(special_networks[key]["fax_id"] == fax_id)
+ continue
special_networks_data += list(special_networks[key])
data["special_faxes"] = special_networks_data
return data
@@ -300,7 +323,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
history_add("Send", params["name"])
GLOB.requests.fax_request(usr.client, "sent a fax message from [fax_name]/[fax_id] to [params["name"]]", fax_paper)
- to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name)]"), confidential = TRUE)
+ to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]"), confidential = TRUE)
for(var/client/staff as anything in GLOB.admins)
if(staff?.prefs.read_preference(/datum/preference/toggle/comms_notification))
SEND_SOUND(staff, sound('sound/misc/server-ready.ogg'))