From 83dcba29ee6edbc94f459a30baf91b1930e2a07f Mon Sep 17 00:00:00 2001
From: zxaber <37497534+zxaber@users.noreply.github.com>
Date: Sun, 1 Dec 2019 03:00:01 -0800
Subject: [PATCH] Allows heads of staff to just connect to other holopads,
rather than call. (#48041)
* Delete stale.yml
* Create stale.yml
* does most of the things
* build_path thingy
* box, take two
* Summary (required)
* meta take two
* pubby, delta, donut take 2
* I hate map merger
* Don't need to walk around in circles
* a thousand times I've done this
* sound effect
* incomming > incoming
* removed unneeded "var/"
---
_maps/map_files/BoxStation/BoxStation.dmm | 24 +++++++--------
.../map_files/Deltastation/DeltaStation2.dmm | 16 +++++-----
_maps/map_files/Donutstation/Donutstation.dmm | 16 +++++-----
_maps/map_files/KiloStation/KiloStation.dmm | 25 +++++++++-------
_maps/map_files/MetaStation/MetaStation.dmm | 29 +++++++++----------
_maps/map_files/PubbyStation/PubbyStation.dmm | 17 +++++++----
code/datums/holocall.dm | 15 ++++++++--
code/game/machinery/hologram.dm | 28 ++++++++++++++++--
.../circuitboards/machine_circuitboards.dm | 17 +++++++++++
9 files changed, 124 insertions(+), 63 deletions(-)
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index db16e650a2c..42a711fbb57 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -1033,7 +1033,7 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"act" = (
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"acu" = (
@@ -2993,9 +2993,9 @@
/turf/open/floor/plasteel,
/area/security/main)
"agC" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"agD" = (
@@ -3167,9 +3167,9 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agV" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agW" = (
@@ -20947,8 +20947,8 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bcf" = (
-/obj/machinery/holopad,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bcg" = (
@@ -22723,8 +22723,8 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bgW" = (
-/obj/machinery/holopad,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bgX" = (
@@ -44997,10 +44997,10 @@
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat_interior)
"ctJ" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/landmark/start/cyborg,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat_interior)
"ctK" = (
@@ -45363,8 +45363,8 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/atmos)
"cuC" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/atmos)
"cuD" = (
@@ -45416,12 +45416,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"cuG" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"cuH" = (
@@ -45446,10 +45446,10 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/service)
"cuJ" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/service)
"cuK" = (
@@ -45958,9 +45958,9 @@
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/aisat/hallway)
"cvT" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/hallway)
"cvV" = (
@@ -46167,11 +46167,11 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"cwA" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"cwB" = (
@@ -47045,7 +47045,7 @@
dir = 1;
pixel_y = -22
},
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"cBf" = (
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 676b74c7325..ea226dc76ab 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -34054,8 +34054,8 @@
/turf/open/floor/plasteel,
/area/security/main)
"bpo" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"bpp" = (
@@ -34148,11 +34148,11 @@
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/heads/hos)
"bpv" = (
-/obj/machinery/holopad,
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/heads/hos)
"bpw" = (
@@ -42781,7 +42781,6 @@
/turf/open/floor/circuit/green,
/area/ai_monitored/turret_protected/ai)
"bEg" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -42792,6 +42791,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"bEh" = (
@@ -49313,10 +49313,10 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bOR" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bOS" = (
@@ -53220,7 +53220,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bVx" = (
-/obj/machinery/holopad,
/obj/effect/landmark/start/cyborg,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -53233,6 +53232,7 @@
dir = 8
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bVy" = (
@@ -58676,12 +58676,12 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"ceH" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment{
dir = 10
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"ceI" = (
@@ -60005,9 +60005,9 @@
/turf/open/floor/plasteel,
/area/security/brig)
"chd" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/brig)
"che" = (
@@ -60122,7 +60122,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"chn" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
@@ -60137,6 +60136,7 @@
dir = 8
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"cho" = (
diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm
index 66b9c3d7d1b..1c8f2a9f320 100644
--- a/_maps/map_files/Donutstation/Donutstation.dmm
+++ b/_maps/map_files/Donutstation/Donutstation.dmm
@@ -4960,6 +4960,7 @@
dir = 6
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/holofloor/wood,
/area/crew_quarters/heads/captain/private)
"ani" = (
@@ -11456,7 +11457,7 @@
/turf/open/floor/plasteel/white,
/area/medical/storage)
"aEZ" = (
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"aFa" = (
@@ -23863,9 +23864,9 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/science)
"bmd" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bme" = (
@@ -34039,12 +34040,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bLe" = (
-/obj/machinery/holopad,
/obj/effect/landmark/start/cyborg,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat/foyer)
"bLg" = (
@@ -34283,13 +34284,13 @@
/turf/open/floor/plasteel/grimy,
/area/ai_monitored/turret_protected/aisat/foyer)
"bLI" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/service)
"bLJ" = (
@@ -35068,7 +35069,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
"bOb" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
dir = 10
},
@@ -35076,6 +35076,7 @@
dir = 10
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
"bOd" = (
@@ -35150,8 +35151,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
-/obj/machinery/holopad,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"bOm" = (
@@ -39301,9 +39302,9 @@
"caP" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/holopad,
/obj/effect/landmark/event_spawn,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"caQ" = (
@@ -42680,6 +42681,7 @@
pixel_y = 25
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"gdI" = (
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 6a1682f1900..cff0a4b6bbe 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -1026,7 +1026,6 @@
},
/area/space/nearstation)
"abM" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -1035,6 +1034,7 @@
dir = 8
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"abN" = (
@@ -1189,7 +1189,6 @@
/turf/open/floor/plasteel/dark,
/area/maintenance/port/aft)
"acd" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -1204,6 +1203,7 @@
dir = 4
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"ace" = (
@@ -2584,11 +2584,11 @@
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/atmos)
"aed" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/aisat/foyer)
"aee" = (
@@ -4968,7 +4968,7 @@
dir = 8
},
/obj/effect/turf_decal/bot,
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"aid" = (
@@ -52145,9 +52145,9 @@
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
"byK" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai_upload)
"byL" = (
@@ -73626,12 +73626,12 @@
/turf/open/floor/circuit/red,
/area/ai_monitored/turret_protected/ai)
"ceg" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
"ceh" = (
@@ -75680,7 +75680,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"chp" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -75688,6 +75687,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/machinery/holopad/secure,
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/aisat_interior)
"chq" = (
@@ -83330,7 +83330,6 @@
},
/obj/effect/turf_decal/tile/neutral,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -83342,6 +83341,7 @@
dir = 1
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/showroomfloor,
/area/security/brig)
"ctx" = (
@@ -95317,8 +95317,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"cNI" = (
-/obj/machinery/holopad,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/carpet/red,
/area/crew_quarters/heads/hos)
"cNJ" = (
@@ -95840,6 +95840,11 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"fhz" = (
+/obj/structure/cable,
+/obj/machinery/holopad/secure,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
(1,1,1) = {"
aaa
@@ -128367,7 +128372,7 @@ bDc
asx
aqK
azC
-bJD
+fhz
cMX
cNl
asx
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index e2502329977..1ce0ea390fc 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -3324,7 +3324,6 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agS" = (
-/obj/machinery/holopad,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -3335,6 +3334,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"agT" = (
@@ -3400,10 +3400,10 @@
"agY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"agZ" = (
-/obj/machinery/holopad,
/obj/structure/chair{
dir = 1
},
@@ -7255,7 +7255,6 @@
/turf/open/floor/plasteel,
/area/security/main)
"aoE" = (
-/obj/machinery/holopad,
/obj/structure/disposalpipe/segment{
dir = 6
},
@@ -7270,6 +7269,7 @@
dir = 8
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"aoF" = (
@@ -8415,9 +8415,9 @@
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
"ari" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"arj" = (
@@ -18281,7 +18281,7 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aOc" = (
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aOd" = (
@@ -23607,7 +23607,6 @@
/turf/open/floor/circuit/green,
/area/ai_monitored/turret_protected/ai)
"aZR" = (
-/obj/machinery/holopad,
/obj/machinery/flasher{
id = "AI";
pixel_x = -25;
@@ -23623,6 +23622,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"aZS" = (
@@ -23683,7 +23683,6 @@
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"aZX" = (
-/obj/machinery/holopad,
/obj/machinery/flasher{
id = "AI";
pixel_x = 25;
@@ -23699,6 +23698,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"aZY" = (
@@ -27408,7 +27408,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"bhz" = (
@@ -27859,8 +27859,8 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"bip" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
"biq" = (
@@ -30303,12 +30303,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bnC" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/landmark/start/cyborg,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"bnD" = (
@@ -31232,9 +31232,9 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
"bpK" = (
-/obj/machinery/holopad,
/obj/item/beacon,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
"bpL" = (
@@ -33438,7 +33438,7 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
"buG" = (
-/obj/machinery/holopad{
+/obj/machinery/holopad/secure{
pixel_x = 9;
pixel_y = -9
},
@@ -35364,12 +35364,12 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bzq" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bzr" = (
@@ -38711,11 +38711,11 @@
/turf/open/floor/plasteel/dark/telecomms,
/area/tcommsat/server)
"bHE" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark/telecomms,
/area/tcommsat/server)
"bHF" = (
@@ -74102,7 +74102,6 @@
/turf/open/floor/plasteel/white,
/area/science/misc_lab/range)
"kwl" = (
-/turf/open/floor/plating,
/turf/open/floor/plating{
icon_state = "platingdmg2"
},
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index aaf60ec70f1..6a36e3cbe58 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -522,6 +522,7 @@
pixel_y = -24
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/white,
/area/ai_monitored/turret_protected/ai)
"acr" = (
@@ -531,7 +532,6 @@
/obj/machinery/power/terminal{
dir = 1
},
-/obj/machinery/holopad,
/turf/open/floor/plasteel/white,
/area/ai_monitored/turret_protected/ai)
"acs" = (
@@ -637,6 +637,7 @@
/obj/machinery/status_display/ai{
pixel_y = 37
},
+/obj/machinery/holopad/secure,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai)
"acE" = (
@@ -1787,7 +1788,7 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
"afP" = (
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/mob/living/simple_animal/bot/secbot/pingsky,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat_interior)
@@ -4550,11 +4551,11 @@
/turf/open/floor/plasteel,
/area/security/main)
"amp" = (
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{
dir = 1
},
/obj/structure/cable,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel,
/area/security/main)
"amq" = (
@@ -10513,7 +10514,7 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"aBn" = (
-/obj/machinery/holopad,
+/obj/machinery/holopad/secure,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/captain)
"aBo" = (
@@ -11626,7 +11627,6 @@
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
"aDM" = (
-/obj/machinery/holopad,
/obj/machinery/camera/motion{
c_tag = "AI Upload Center";
dir = 1;
@@ -11639,6 +11639,7 @@
name = "Station Intercom (AI Private)";
pixel_y = -28
},
+/obj/machinery/holopad/secure,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
"aDN" = (
@@ -52269,6 +52270,10 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/science/xenobiology)
+"kNE" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/hos)
"kPi" = (
/obj/structure/table,
/obj/machinery/microwave,
@@ -84253,7 +84258,7 @@ abI
ajs
aka
akV
-alJ
+kNE
amv
alJ
anS
diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm
index 4edf8161706..21bf6a293ad 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -32,20 +32,29 @@
var/datum/action/innate/end_holocall/hangup //hangup action
var/call_start_time
+ var/head_call = FALSE //calls from a head of staff autoconnect, if the recieving pad is not secure.
//creates a holocall made by `caller` from `calling_pad` to `callees`
-/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees)
+/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees, elevated_access = FALSE)
call_start_time = world.time
user = caller
calling_pad.outgoing_call = src
calling_holopad = calling_pad
+ head_call = elevated_access
dialed_holopads = list()
for(var/I in callees)
var/obj/machinery/holopad/H = I
if(!QDELETED(H) && H.is_operational())
dialed_holopads += H
- H.say("Incoming call.")
+ if(head_call)
+ if(H.secure)
+ calling_pad.say("Auto-connection refused, falling back to call mode.")
+ H.say("Incoming call.")
+ else
+ H.say("Incoming connection.")
+ else
+ H.say("Incoming call.")
LAZYADD(H.holo_calls, src)
if(!dialed_holopads.len)
@@ -160,6 +169,8 @@
hangup = new(eye, src)
hangup.Grant(user)
+ playsound(H, 'sound/machines/ping.ogg', 100)
+ H.say("Connection established.")
//Checks the validity of a holocall and qdels itself if it's not. Returns TRUE if valid, FALSE otherwise
/datum/holocall/proc/Check()
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 1a54a155313..f5b79c1e6df 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -34,6 +34,7 @@ Possible to do for anyone motivated enough:
layer = LOW_OBJ_LAYER
plane = FLOOR_PLANE
flags_1 = HEAR_1
+ req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though.
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 100
@@ -60,6 +61,18 @@ Possible to do for anyone motivated enough:
var/ringing = FALSE
var/offset = FALSE
var/on_network = TRUE
+ var/secure = FALSE //for pads in secure areas; do not allow forced connecting
+
+/obj/machinery/holopad/secure
+ name = "secure holopad"
+ desc = "It's a floor-mounted device for projecting holographic images. This one will refuse to auto-connect incoming calls."
+ secure = TRUE
+
+obj/machinery/holopad/secure/Initialize()
+ . = ..()
+ var/obj/item/circuitboard/machine/holopad/board = circuit
+ board.secure = TRUE
+ board.build_path = /obj/machinery/holopad/secure
/obj/machinery/holopad/tutorial
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
@@ -187,7 +200,10 @@ Possible to do for anyone motivated enough:
else
if(on_network)
dat += "Request an AI's presence
"
- dat += "Call another holopad
"
+ if(allowed(user))
+ dat += "Connect to another holopad
"
+ else
+ dat += "Call another holopad
"
if(disk)
if(disk.record)
//Replay
@@ -255,9 +271,12 @@ Possible to do for anyone motivated enough:
temp = "A request for AI presence was already sent recently.
"
temp += "Main Menu"
- else if(href_list["Holocall"])
+ else if(href_list["Holocall"] || href_list["Holoconnect"])
if(outgoing_call)
return
+ var/head_call = FALSE
+ if(href_list["Holoconnect"])
+ head_call = TRUE
temp = "You must stand on the holopad to make a call!
"
temp += "Main Menu"
@@ -276,7 +295,7 @@ Possible to do for anyone motivated enough:
if(usr.loc == loc)
temp = "Dialing...
"
temp += "Main Menu"
- new /datum/holocall(usr, src, callnames[result])
+ new /datum/holocall(usr, src, callnames[result], head_call)
else if(href_list["connectcall"])
var/datum/holocall/call_to_connect = locate(href_list["connectcall"]) in holo_calls
@@ -363,6 +382,9 @@ Possible to do for anyone motivated enough:
if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2)))
HC.Answer(src)
break
+ if(HC.head_call && !secure)
+ HC.Answer(src)
+ break
if(outgoing_call)
HC.Disconnect(src)//can't answer calls while calling
else
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 77b901b5b69..77cd7018b6e 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -388,7 +388,24 @@
build_path = /obj/machinery/holopad
req_components = list(/obj/item/stock_parts/capacitor = 1)
needs_anchored = FALSE //wew lad
+ var/secure = FALSE
+/obj/item/circuitboard/machine/holopad/attackby(obj/item/P, mob/user, params)
+ if(P.tool_behaviour == TOOL_MULTITOOL)
+ if(secure)
+ build_path = /obj/machinery/holopad
+ secure = FALSE
+ else
+ build_path = /obj/machinery/holopad/secure
+ secure = TRUE
+ to_chat(user, "You [secure? "en" : "dis"]able the security on the [src]")
+ . = ..()
+
+/obj/item/circuitboard/machine/holopad/examine(mob/user)
+ . = ..()
+ . += "There is a connection port on this board that could be pulsed"
+ if(secure)
+ . += "There is a red light flashing next to the word \"secure\""
/obj/item/circuitboard/machine/launchpad
name = "Bluespace Launchpad (Machine Board)"