From 8512f454d3cdc21a649d5506c92be623ec238517 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 4 Dec 2020 20:13:08 -0500 Subject: [PATCH] Fixes some Telecomms stuff - Allinones now work - Adds a special ERT allinone for ERT comms - Fixes comms interception for Antags --- code/game/machinery/telecomms/broadcaster.dm | 2 +- .../machinery/telecomms/broadcaster_vr.dm | 44 ++++++++++++ maps/submaps/admin_use_vr/ert.dmm | 68 +++++++++++++++---- maps/tether/submaps/tether_misc.dmm | 14 ++-- vorestation.dme | 1 + 5 files changed, 108 insertions(+), 21 deletions(-) create mode 100644 code/game/machinery/telecomms/broadcaster_vr.dm diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 19bc0304217..6bd35b91538 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -142,7 +142,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept machinetype = 6 produces_heat = 0 var/intercept = 0 // if nonzero, broadcasts all messages to syndicate channel - var/overmap_range = 0 //Same turf + var/overmap_range = 1 //Same turf var/list/linked_radios_weakrefs = list() diff --git a/code/game/machinery/telecomms/broadcaster_vr.dm b/code/game/machinery/telecomms/broadcaster_vr.dm new file mode 100644 index 00000000000..12c4b831d27 --- /dev/null +++ b/code/game/machinery/telecomms/broadcaster_vr.dm @@ -0,0 +1,44 @@ +//ERT version with unlimited range (doesn't even check) and uses no power, to enable ert comms to work anywhere. +/obj/machinery/telecomms/allinone/ert + use_power = USE_POWER_OFF + idle_power_usage = 0 + +/obj/machinery/telecomms/allinone/ert/receive_signal(datum/signal/signal) + if(!on) // has to be on to receive messages + return + + if(is_freq_listening(signal)) // detect subspace signals + + signal.data["done"] = 1 // mark the signal as being broadcasted + signal.data["compression"] = 0 + + // Search for the original signal and mark it as done as well + var/datum/signal/original = signal.data["original"] + if(original) + original.data["done"] = 1 + + // For some reason level is both used as a list and not a list, and now it needs to be a list. + // Because this is a 'all in one' machine, we're gonna just cheat. + signal.data["level"] = using_map.contact_levels.Copy() + + if(signal.data["slow"] > 0) + sleep(signal.data["slow"]) // simulate the network lag if necessary + + /* ###### Broadcast a message using signal.data ###### */ + + var/datum/radio_frequency/connection = signal.data["connection"] + + var/list/forced_radios + for(var/weakref/wr in linked_radios_weakrefs) + var/obj/item/device/radio/R = wr.resolve() + if(istype(R)) + LAZYDISTINCTADD(forced_radios, R) + + if(connection.frequency in CENT_FREQS) // if ert broadcast, just + Broadcast_Message(signal.data["connection"], signal.data["mob"], + signal.data["vmask"], signal.data["vmessage"], + signal.data["radio"], signal.data["message"], + signal.data["name"], signal.data["job"], + signal.data["realname"], signal.data["vname"], DATA_NORMAL, + signal.data["compression"], list(0), connection.frequency, + signal.data["verb"], forced_radios) diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm index f017d21a305..350005bbbcf 100644 --- a/maps/submaps/admin_use_vr/ert.dmm +++ b/maps/submaps/admin_use_vr/ert.dmm @@ -286,6 +286,10 @@ }, /turf/simulated/floor/reinforced/airless, /area/ship/ert/hallways_aft) +"cL" = ( +/obj/machinery/telecomms/allinone/ert, +/turf/simulated/floor/tiled/techfloor, +/area/ship/ert/atmos) "cO" = ( /obj/machinery/computer/operating, /turf/simulated/floor/tiled/white, @@ -400,6 +404,8 @@ /obj/structure/table/rack, /obj/item/weapon/storage/backpack/ert/commander, /obj/item/clothing/suit/space/void/responseteam/command, +/obj/item/clothing/head/helmet/ert/command, +/obj/item/clothing/suit/armor/vest/ert/command, /turf/simulated/floor/wood, /area/ship/ert/commander) "dx" = ( @@ -1138,6 +1144,10 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled/techmaint, /area/ship/ert/mech_bay) +"kd" = ( +/obj/item/device/multitool/tether_buffered, +/turf/simulated/floor/tiled/techfloor, +/area/ship/ert/atmos) "kf" = ( /obj/structure/table/rack/steel, /obj/item/weapon/gun/projectile/automatic/pdw, @@ -1979,6 +1989,12 @@ /obj/item/clothing/suit/space/void/responseteam/engineer, /obj/item/clothing/suit/space/void/responseteam/engineer, /obj/item/clothing/suit/space/void/responseteam/engineer, +/obj/item/clothing/head/helmet/ert/engineer, +/obj/item/clothing/head/helmet/ert/engineer, +/obj/item/clothing/head/helmet/ert/engineer, +/obj/item/clothing/suit/armor/vest/ert/engineer, +/obj/item/clothing/suit/armor/vest/ert/engineer, +/obj/item/clothing/suit/armor/vest/ert/engineer, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "pa" = ( @@ -2020,6 +2036,12 @@ /obj/item/clothing/suit/space/void/responseteam/medical, /obj/machinery/light/no_nightshift, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "pf" = ( @@ -2047,6 +2069,12 @@ /obj/item/clothing/suit/space/void/responseteam/medical, /obj/item/clothing/suit/space/void/responseteam/medical, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/head/helmet/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, +/obj/item/clothing/suit/armor/vest/ert/medical, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "po" = ( @@ -2490,6 +2518,12 @@ /obj/item/clothing/suit/space/void/responseteam/security, /obj/machinery/light/no_nightshift, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "sp" = ( @@ -2639,10 +2673,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/ert/hangar) -"tb" = ( -/obj/machinery/telecomms/allinone, -/turf/simulated/floor/tiled/techfloor, -/area/ship/ert/teleporter) "tg" = ( /obj/effect/floor_decal/corner/white{ dir = 6 @@ -4080,6 +4110,12 @@ pixel_y = -26 }, /obj/effect/floor_decal/industrial/outline/grey, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/head/helmet/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, +/obj/item/clothing/suit/armor/vest/ert/security, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "Ed" = ( @@ -5228,6 +5264,10 @@ /obj/effect/floor_decal/industrial/outline/grey, /turf/simulated/floor/tiled/techfloor, /area/ship/ert/hallways) +"Lm" = ( +/obj/machinery/ntnet_relay, +/turf/simulated/floor/tiled/techfloor, +/area/ship/ert/atmos) "Lq" = ( /obj/structure/table/rack/steel, /obj/item/weapon/gun/energy/gun/martin{ @@ -6657,10 +6697,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/ert/hangar) -"VB" = ( -/obj/machinery/ntnet_relay, -/turf/simulated/floor/tiled/techfloor, -/area/ship/ert/teleporter) "VC" = ( /obj/machinery/power/port_gen/pacman/super/potato, /obj/structure/cable/green, @@ -6720,6 +6756,10 @@ /obj/structure/curtain/open/bed, /turf/simulated/floor/wood, /area/ship/ert/commander) +"Wd" = ( +/obj/machinery/telecomms/relay/preset/centcom/tether, +/turf/simulated/floor/tiled/techfloor, +/area/ship/ert/atmos) "Wj" = ( /obj/machinery/light/no_nightshift{ dir = 8 @@ -13348,8 +13388,8 @@ pV kP kP rS -gA -gA +Wd +kd CT qR pV @@ -13916,8 +13956,8 @@ pV ls ls ls -gA -gA +Lm +cL DQ Ip pV @@ -14491,7 +14531,7 @@ ds sp Oi Mm -tb +jA Wj UU iA @@ -15201,7 +15241,7 @@ IZ sp Oi wn -VB +jA Yq Ys Yr diff --git a/maps/tether/submaps/tether_misc.dmm b/maps/tether/submaps/tether_misc.dmm index 37bdb7e06e7..a11a486fc91 100644 --- a/maps/tether/submaps/tether_misc.dmm +++ b/maps/tether/submaps/tether_misc.dmm @@ -1933,7 +1933,9 @@ /turf/simulated/floor/holofloor/wmarble, /area/holodeck/source_chess) "nn" = ( -/obj/machinery/telecomms/allinone/antag, +/obj/machinery/telecomms/allinone/antag{ + intercept = 1 + }, /turf/unsimulated/floor/steel, /area/centcom/control) "nV" = ( @@ -4460,7 +4462,7 @@ /area/beach) "XP" = ( /obj/machinery/oxygen_pump/anesthetic, -/turf/simulated/floor/tiled/white, +/turf/unsimulated/wall, /area/centcom/simulated/medical) "XQ" = ( /obj/machinery/optable, @@ -19657,7 +19659,7 @@ ae ae wy wy -wy +Ga wy wl Up @@ -19798,9 +19800,9 @@ ae ae ae ae -ae -ae -ae +wy +wy +wy wl Up Vj diff --git a/vorestation.dme b/vorestation.dme index 402d269db95..4c217ba82a7 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -929,6 +929,7 @@ #include "code\game\machinery\pipe\pipelayer.dm" #include "code\game\machinery\reagents\pump.dm" #include "code\game\machinery\telecomms\broadcaster.dm" +#include "code\game\machinery\telecomms\broadcaster_vr.dm" #include "code\game\machinery\telecomms\logbrowser.dm" #include "code\game\machinery\telecomms\machine_interactions.dm" #include "code\game\machinery\telecomms\presets.dm"