POLARIS: Add an adhoc radio fallback mechanism

Allows subspace radios (eg headsets) to have adhoc_fallback enabled on them, which allows them to turn into shortwaves until they reestablish telecomms. I'm doing this for exp/sar/pilot headsets on our server, you can too if you want. What else are those giant antennas for? Up to you. This doesn't change anything for you unless you enable adhoc_fallback on something, but you can use it if you want!
This commit is contained in:
Arokha Sieyes
2018-02-02 18:05:39 -05:00
parent a493a379fe
commit b7c4f50f2b
2 changed files with 13 additions and 6 deletions
+12 -5
View File
@@ -39,6 +39,7 @@ var/global/list/default_medbay_channels = list(
var/listening = 1
var/list/channels = list() //see communications.dm for full list. First channel is a "default" for :h
var/subspace_transmission = 0
var/adhoc_fallback = FALSE //Falls back to 'radio' mode if subspace not available
var/syndie = 0//Holder to see if it's a syndicate encrypted radio
var/centComm = 0//Holder to see if it's a CentCom encrypted radio
flags = CONDUCT
@@ -414,9 +415,15 @@ var/global/list/default_medbay_channels = list(
for(var/obj/machinery/telecomms/allinone/R in telecomms_list)
R.receive_signal(signal)
// Receiving code can be located in Telecommunications.dm
return signal.data["done"] && position.z in signal.data["level"]
if(signal.data["done"] && position.z in signal.data["level"])
return TRUE //Huzzah, sent via subspace
else if(adhoc_fallback) //Less huzzah, we have to fallback
to_chat(loc,"<span class='warning'>\The [src] pings as it falls back to local radio transmission.</span>")
subspace_transmission = FALSE
return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
src, message, displayname, jobname, real_name, M.voice_name,
signal.transmission_method, signal.data["compression"], list(position.z), connection.frequency,verb,speaking)
/* ###### Intercoms and station-bounced radios ###### */
@@ -463,10 +470,10 @@ var/global/list/default_medbay_channels = list(
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
sleep(rand(10,25)) // wait a little...
if(signal.data["done"] && position.z in signal.data["level"])
if(adhoc_fallback)
to_chat(loc,"<span class='notice'>\The [src] pings as it reestablishes subspace communications.</span>")
subspace_transmission = TRUE
// we're done here.
return 1