mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
Atmos now starts with nitrous oxide in storage tank.
Radio was optimized even more. Still have some reserves. Restored admin verb "Radio Report". It shows some signs of errors on the map, but I am too tired to fix it now. Optimized player login (that "400000 calls of new_player/Move" bug). Various optimizations and fixes in radio code. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1046 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -215,17 +215,13 @@
|
||||
// called when power status changes
|
||||
|
||||
/area/proc/power_change()
|
||||
|
||||
|
||||
for(var/area/RA in related)
|
||||
for(var/obj/machinery/M in RA) // for each machine in the area
|
||||
M.power_change() // reverify power status (to update icons etc.)
|
||||
|
||||
RA.updateicon()
|
||||
|
||||
if (fire || eject || party)
|
||||
RA.updateicon()
|
||||
|
||||
/area/proc/usage(var/chan)
|
||||
|
||||
var/used = 0
|
||||
switch(chan)
|
||||
if(LIGHT)
|
||||
|
||||
+53
-20
@@ -5,7 +5,7 @@
|
||||
Note that /obj/item/device/radio handles transmission using nonstandard way.
|
||||
procs:
|
||||
|
||||
add_object(obj/device as obj, var/new_frequency as num, var/filter as num|null = null)
|
||||
add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
|
||||
Adds listening object.
|
||||
parameters:
|
||||
device - device receiving signals, must have proc receive_signal (see description below).
|
||||
@@ -30,7 +30,7 @@
|
||||
radio_frequency is a global object maintaining list of devices that listening specific frequency.
|
||||
procs:
|
||||
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as num|null = null, var/range as num|null = null)
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
|
||||
Sends signal to all devices that wants such signal.
|
||||
parameters:
|
||||
source - object, emitted signal. Usually, devices will not receive their own signals.
|
||||
@@ -114,16 +114,21 @@ var/const/SYND_FREQ = 1213
|
||||
#define TRANSMISSION_RADIO 1
|
||||
|
||||
/* filters */
|
||||
var/const/RADIO_TO_AIRALARM = 1
|
||||
var/const/RADIO_FROM_AIRALARM = 2
|
||||
var/const/RADIO_CHAT = 3
|
||||
var/const/RADIO_TO_AIRALARM = "1"
|
||||
var/const/RADIO_FROM_AIRALARM = "2"
|
||||
var/const/RADIO_CHAT = "3"
|
||||
var/const/RADIO_ATMOSIA = "4"
|
||||
var/const/RADIO_NAVBEACONS = "5"
|
||||
var/const/RADIO_AIRLOCK = "6"
|
||||
var/const/RADIO_SECBOT = "7"
|
||||
var/const/RADIO_MULEBOT = "8"
|
||||
|
||||
var/global/datum/controller/radio/radio_controller
|
||||
|
||||
datum/controller/radio
|
||||
var/list/datum/radio_frequency/frequencies = list()
|
||||
|
||||
proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as num|null)
|
||||
proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as text|null)
|
||||
var/f_text = num2text(new_frequency)
|
||||
var/datum/radio_frequency/frequency = frequencies[f_text]
|
||||
|
||||
@@ -157,19 +162,19 @@ datum/radio_frequency
|
||||
var/list/list/obj/devices = list()
|
||||
|
||||
proc
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as num|null, var/range = null as num|null)
|
||||
// var/N=0
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null)
|
||||
//log_admin("DEBUG \[[world.timeofday]\]: post_signal {source=\"[source]\", [signal.debug_print()], filter=[filter]}")
|
||||
// var/N_f=0
|
||||
// var/N_nf=0
|
||||
// var/Nt=0
|
||||
var/filter_str = num2text(filter)
|
||||
var/turf/start_point
|
||||
if(range)
|
||||
start_point = get_turf(source)
|
||||
if(!start_point)
|
||||
del(signal)
|
||||
return 0
|
||||
if (filter)
|
||||
var/list/obj/devices_line = devices[filter_str]
|
||||
for(var/obj/device in devices_line)
|
||||
if (filter) //here goes some copypasta. It is for optimisation. -rastaf0
|
||||
for(var/obj/device in devices[filter])
|
||||
if(device == source)
|
||||
continue
|
||||
if(range)
|
||||
@@ -180,6 +185,18 @@ datum/radio_frequency
|
||||
if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
|
||||
continue
|
||||
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
|
||||
for(var/obj/device in devices["_default"])
|
||||
if(device == source)
|
||||
continue
|
||||
if(range)
|
||||
var/turf/end_point = get_turf(device)
|
||||
if(!end_point)
|
||||
continue
|
||||
//if(max(abs(start_point.x-end_point.x), abs(start_point.y-end_point.y)) <= range)
|
||||
if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
|
||||
continue
|
||||
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
|
||||
// N_f++
|
||||
else
|
||||
for (var/next_filter in devices)
|
||||
// var/list/obj/DDD = devices[next_filter]
|
||||
@@ -195,20 +212,21 @@ datum/radio_frequency
|
||||
if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
|
||||
continue
|
||||
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
|
||||
// N++
|
||||
// log_admin("DEBUG: post_signal(source=[source] ([source.x], [source.y]),filter=[filter]) frequency=[frequency], N=[N],Nt=[Nt]")
|
||||
// N_nf++
|
||||
|
||||
// log_admin("DEBUG: post_signal(source=[source] ([source.x], [source.y], [source.z]),filter=[filter]) frequency=[frequency], N_f=[N_f], N_nf=[N_nf]")
|
||||
|
||||
|
||||
del(signal)
|
||||
|
||||
add_listener(obj/device as obj, var/filter as num|null)
|
||||
add_listener(obj/device as obj, var/filter as text|null)
|
||||
if (!filter)
|
||||
filter = "_default"
|
||||
//log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]")
|
||||
var/filter_str = num2text(filter)
|
||||
var/list/obj/devices_line = devices[filter_str]
|
||||
var/list/obj/devices_line = devices[filter]
|
||||
if (!devices_line)
|
||||
devices_line = new
|
||||
devices[filter_str] = devices_line
|
||||
devices[filter] = devices_line
|
||||
devices_line+=device
|
||||
// var/list/obj/devices_line___ = devices[filter_str]
|
||||
// var/l = devices_line___.len
|
||||
@@ -217,7 +235,14 @@ datum/radio_frequency
|
||||
|
||||
remove_listener(obj/device)
|
||||
for (var/devices_filter in devices)
|
||||
devices[devices_filter]-=device
|
||||
var/list/devices_line = devices[devices_filter]
|
||||
devices_line-=device
|
||||
while (null in devices_line)
|
||||
devices_line -= null
|
||||
if (devices_line.len==0)
|
||||
devices -= devices_filter
|
||||
del(devices_line)
|
||||
|
||||
|
||||
obj/proc
|
||||
receive_signal(datum/signal/signal, receive_method, receive_param)
|
||||
@@ -237,4 +262,12 @@ datum/signal
|
||||
source = model.source
|
||||
transmission_method = model.transmission_method
|
||||
data = model.data
|
||||
encryption = model.encryption
|
||||
encryption = model.encryption
|
||||
|
||||
proc/debug_print()
|
||||
if (source)
|
||||
. = "signal = {source = '[source]' ([source:x],[source:y],[source:z])\n"
|
||||
else
|
||||
. = "signal = {source = '[source]' ()\n"
|
||||
for (var/i in data)
|
||||
. += "data\[\"[i]\"\] = \"[data[i]]\"\n"
|
||||
|
||||
@@ -59,7 +59,7 @@ obj/machinery/door/airlock
|
||||
signal.data["door_status"] = density?("closed"):("open")
|
||||
signal.data["lock_status"] = locked?("locked"):("unlocked")
|
||||
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE)
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
|
||||
|
||||
open(surpress_send)
|
||||
. = ..()
|
||||
@@ -74,7 +74,7 @@ obj/machinery/door/airlock
|
||||
radio_controller.remove_object(src, frequency)
|
||||
if(new_frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
|
||||
|
||||
initialize()
|
||||
if(frequency)
|
||||
@@ -119,7 +119,7 @@ obj/machinery/airlock_sensor
|
||||
signal.data["tag"] = master_tag
|
||||
signal.data["command"] = "cycle"
|
||||
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE)
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
|
||||
flick("airlock_sensor_cycle", src)
|
||||
|
||||
process()
|
||||
@@ -136,7 +136,7 @@ obj/machinery/airlock_sensor
|
||||
|
||||
signal.data["pressure"] = num2text(pressure)
|
||||
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE)
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
|
||||
|
||||
update_icon()
|
||||
|
||||
@@ -144,7 +144,7 @@ obj/machinery/airlock_sensor
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
|
||||
|
||||
initialize()
|
||||
set_frequency(frequency)
|
||||
@@ -183,14 +183,14 @@ obj/machinery/access_button
|
||||
signal.data["tag"] = master_tag
|
||||
signal.data["command"] = command
|
||||
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE)
|
||||
radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK)
|
||||
flick("access_button_cycle", src)
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
|
||||
|
||||
initialize()
|
||||
set_frequency(frequency)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
return
|
||||
if (signal.data["area"] != area_uid)
|
||||
return
|
||||
if((!sensors[id_tag] && !vents[id_tag]))
|
||||
if(!(id_tag in sensors) && !(id_tag in vents))
|
||||
register_env_machine(id_tag, signal.data["device"])
|
||||
if(signal.data["device"] == "AScr")
|
||||
sensor_information[id_tag] = signal.data
|
||||
|
||||
@@ -55,14 +55,14 @@ obj/machinery/air_sensor
|
||||
signal.data["toxins"] = 0
|
||||
signal.data["nitrogen"] = 0
|
||||
signal.data["carbon_dioxide"] = 0
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
|
||||
|
||||
initialize()
|
||||
set_frequency(frequency)
|
||||
@@ -178,7 +178,7 @@ obj/machinery/computer/general_air_control
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency)
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
|
||||
|
||||
initialize()
|
||||
set_frequency(frequency)
|
||||
@@ -254,9 +254,9 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = input_tag
|
||||
signal.data["status"] = 1
|
||||
signal.data["command"] = "status"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["in_toggle_injector"])
|
||||
input_info = null
|
||||
@@ -270,7 +270,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.data["tag"] = input_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["out_refresh_status"])
|
||||
output_info = null
|
||||
@@ -282,9 +282,9 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = output_tag
|
||||
signal.data["status"] = 1
|
||||
signal.data["command"] = "status"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["out_toggle_power"])
|
||||
output_info = null
|
||||
@@ -298,7 +298,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.data["tag"] = output_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["out_set_pressure"])
|
||||
output_info = null
|
||||
@@ -313,7 +313,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.data["command"] = "set_internal_pressure"
|
||||
signal.data["parameter"] = "[pressure_setting]"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["adj_pressure"])
|
||||
var/change = text2num(href_list["adj_pressure"])
|
||||
@@ -393,7 +393,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
else
|
||||
signal.data["command"] = "power_off"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
..()
|
||||
|
||||
@@ -443,9 +443,9 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["status"] = 1
|
||||
signal.data["command"] = "status"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["toggle_automation"])
|
||||
automation = !automation
|
||||
@@ -462,7 +462,7 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["injection"])
|
||||
if(!radio_connection)
|
||||
@@ -475,7 +475,7 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["command"] = "inject"
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
/obj/machinery/computer/atmos_alert
|
||||
var/datum/radio_frequency/radio_connection
|
||||
@@ -504,7 +504,7 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, receive_frequency)
|
||||
receive_frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, receive_frequency)
|
||||
radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA)
|
||||
|
||||
|
||||
attack_hand(mob/user)
|
||||
|
||||
@@ -277,6 +277,20 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
|
||||
src.update_icon()
|
||||
return 1
|
||||
|
||||
//Dirty way to fill room with gas. However it is a bit easier to do than creating some floor/engine/n2o -rastaf0
|
||||
/obj/machinery/portable_atmospherics/canister/sleeping_agent/roomfiller/New()
|
||||
..()
|
||||
var/datum/gas/sleeping_agent/trace_gas = air_contents.trace_gases[1]
|
||||
trace_gas.moles = 9*4000
|
||||
spawn(10)
|
||||
var/turf/simulated/location = src.loc
|
||||
if (istype(src.loc))
|
||||
while (!location.air)
|
||||
sleep(10)
|
||||
location.assume_air(air_contents)
|
||||
air_contents = new
|
||||
return 1
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/nitrogen/New()
|
||||
|
||||
..()
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
src.cam.c_tag = src.name
|
||||
src.cam.network = "SS13"
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, beacon_freq)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
|
||||
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
|
||||
|
||||
examine()
|
||||
set src in view()
|
||||
@@ -553,24 +553,25 @@ Auto Patrol: []"},
|
||||
var/datum/signal/signal = new()
|
||||
signal.source = src
|
||||
signal.transmission_method = 1
|
||||
for(var/key in keyval)
|
||||
signal.data[key] = keyval[key]
|
||||
//for(var/key in keyval)
|
||||
// signal.data[key] = keyval[key]
|
||||
//world << "sent [key],[keyval[key]] on [freq]"
|
||||
|
||||
signal.data = keyval
|
||||
if (signal.data["findbeacon"])
|
||||
frequency.post_signal(src, signal, null)
|
||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||
else if (signal.data["type"] == "secbot")
|
||||
frequency.post_signal(src, signal, null)
|
||||
frequency.post_signal(src, signal, filter = RADIO_SECBOT)
|
||||
else
|
||||
frequency.post_signal(src, signal)
|
||||
|
||||
// signals bot status etc. to controller
|
||||
proc/send_status()
|
||||
var/list/kv = new()
|
||||
kv["type"] = "secbot"
|
||||
kv["name"] = name
|
||||
kv["loca"] = loc.loc // area
|
||||
kv["mode"] = mode
|
||||
var/list/kv = list(
|
||||
"type" = "secbot",
|
||||
"name" = name,
|
||||
"loca" = loc.loc, // area
|
||||
"mode" = mode,
|
||||
)
|
||||
post_signal_multiple(control_freq, kv)
|
||||
|
||||
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
|
||||
spawn(5) // must wait for map loading to finish
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, beacon_freq)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_MULEBOT)
|
||||
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
|
||||
|
||||
var/count = 0
|
||||
for(var/obj/machinery/bot/mulebot/other in world)
|
||||
@@ -890,24 +890,31 @@
|
||||
var/datum/signal/signal = new()
|
||||
signal.source = src
|
||||
signal.transmission_method = 1
|
||||
for(var/key in keyval)
|
||||
signal.data[key] = keyval[key]
|
||||
//for(var/key in keyval)
|
||||
// signal.data[key] = keyval[key]
|
||||
signal.data = keyval
|
||||
//world << "sent [key],[keyval[key]] on [freq]"
|
||||
frequency.post_signal(src, signal)
|
||||
if (signal.data["findbeacon"])
|
||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||
else if (signal.data["type"] == "mulebot")
|
||||
frequency.post_signal(src, signal, filter = RADIO_MULEBOT)
|
||||
else
|
||||
frequency.post_signal(src, signal)
|
||||
|
||||
// signals bot status etc. to controller
|
||||
proc/send_status()
|
||||
var/list/kv = new()
|
||||
kv["type"] = "mulebot"
|
||||
kv["name"] = suffix
|
||||
kv["loca"] = loc.loc // area
|
||||
kv["mode"] = mode
|
||||
kv["powr"] = cell ? cell.percent() : 0
|
||||
kv["dest"] = destination
|
||||
kv["home"] = home_destination
|
||||
kv["load"] = load
|
||||
kv["retn"] = auto_return
|
||||
kv["pick"] = auto_pickup
|
||||
var/list/kv = list(
|
||||
"type" = "mulebot",
|
||||
"name" = suffix,
|
||||
"loca" = loc.loc, // area
|
||||
"mode" = mode,
|
||||
"powr" = (cell ? cell.percent() : 0),
|
||||
"dest" = destination,
|
||||
"home" = home_destination,
|
||||
"load" = load,
|
||||
"retn" = auto_return,
|
||||
"pick" = auto_pickup,
|
||||
)
|
||||
post_signal_multiple(control_freq, kv)
|
||||
|
||||
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
src.cam.c_tag = src.name
|
||||
src.cam.network = "SS13"
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, beacon_freq)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
|
||||
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
|
||||
|
||||
examine()
|
||||
set src in view()
|
||||
@@ -445,7 +445,7 @@ Auto Patrol: []"},
|
||||
// used for beacon reception
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
|
||||
//log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/bot/secbot/receive_signal([signal.debug_print()])")
|
||||
if(!on)
|
||||
return
|
||||
|
||||
@@ -532,10 +532,16 @@ Auto Patrol: []"},
|
||||
var/datum/signal/signal = new()
|
||||
signal.source = src
|
||||
signal.transmission_method = 1
|
||||
for(var/key in keyval)
|
||||
signal.data[key] = keyval[key]
|
||||
//for(var/key in keyval)
|
||||
// signal.data[key] = keyval[key]
|
||||
signal.data = keyval
|
||||
//world << "sent [key],[keyval[key]] on [freq]"
|
||||
frequency.post_signal(src, signal)
|
||||
if (signal.data["findbeacon"])
|
||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||
else if (signal.data["type"] == "secbot")
|
||||
frequency.post_signal(src, signal, filter = RADIO_SECBOT)
|
||||
else
|
||||
frequency.post_signal(src, signal)
|
||||
|
||||
// signals bot status etc. to controller
|
||||
proc/send_status()
|
||||
|
||||
@@ -97,4 +97,8 @@
|
||||
return 1
|
||||
|
||||
src.add_fingerprint(user)
|
||||
return 0
|
||||
return 0
|
||||
|
||||
/obj/machinery/proc/assign_uid()
|
||||
uid = gl_uid
|
||||
gl_uid++
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
spawn(5) // must wait for map loading to finish
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, freq)
|
||||
radio_controller.add_object(src, freq, RADIO_NAVBEACONS)
|
||||
|
||||
// set the transponder codes assoc list from codes_txt
|
||||
proc/set_codes()
|
||||
@@ -96,7 +96,7 @@
|
||||
for(var/key in codes)
|
||||
signal.data[key] = codes[key]
|
||||
|
||||
frequency.post_signal(src, signal)
|
||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||
|
||||
|
||||
attackby(var/obj/item/I, var/mob/user)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
if (istype(loc.loc, /obj/item/device/pda))
|
||||
hostpda = loc.loc
|
||||
|
||||
proc/post_signal(var/freq, var/key, var/value, var/key2, var/value2, var/key3, var/value3)
|
||||
proc/post_signal(var/freq, var/key, var/value, var/key2, var/value2, var/key3, var/value3, s_filter)
|
||||
|
||||
//world << "Post: [freq]: [key]=[value], [key2]=[value2]"
|
||||
var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq)
|
||||
@@ -29,7 +29,7 @@
|
||||
if(key3)
|
||||
signal.data[key3] = value3
|
||||
|
||||
frequency.post_signal(src, signal)
|
||||
frequency.post_signal(src, signal, filter = s_filter)
|
||||
|
||||
proc/print_to_host(var/text)
|
||||
if (isnull(src.hostpda))
|
||||
@@ -56,7 +56,7 @@
|
||||
..()
|
||||
spawn(5)
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
|
||||
|
||||
// receive radio signals
|
||||
// can detect bot status signals
|
||||
@@ -91,23 +91,23 @@
|
||||
|
||||
if("control")
|
||||
active = locate(href_list["bot"])
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = RADIO_SECBOT)
|
||||
|
||||
if("scanbots") // find all bots
|
||||
botlist = null
|
||||
post_signal(control_freq, "command", "bot_status")
|
||||
post_signal(control_freq, "command", "bot_status", s_filter = RADIO_SECBOT)
|
||||
|
||||
if("botlist")
|
||||
active = null
|
||||
|
||||
|
||||
if("stop", "go")
|
||||
post_signal(control_freq, "command", href_list["op"], "active", active)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
post_signal(control_freq, "command", href_list["op"], "active", active, s_filter = RADIO_SECBOT)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = RADIO_SECBOT)
|
||||
|
||||
if("summon")
|
||||
post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) )
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , s_filter = RADIO_SECBOT)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = RADIO_SECBOT)
|
||||
PDA.cartridge.unlock()
|
||||
|
||||
/obj/item/radio/integrated/mule
|
||||
@@ -124,10 +124,10 @@
|
||||
..()
|
||||
spawn(5)
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, beacon_freq)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_MULEBOT)
|
||||
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
|
||||
spawn(10)
|
||||
post_signal(beacon_freq, "findbeacon", "delivery")
|
||||
post_signal(beacon_freq, "findbeacon", "delivery", filter = RADIO_NAVBEACONS)
|
||||
|
||||
// receive radio signals
|
||||
// can detect bot status signals
|
||||
@@ -172,43 +172,43 @@
|
||||
|
||||
if("control")
|
||||
active = locate(href_list["bot"])
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
|
||||
if("scanbots") // find all bots
|
||||
botlist = null
|
||||
post_signal(control_freq, "command", "bot_status")
|
||||
post_signal(control_freq, "command", "bot_status", s_filter = RADIO_MULEBOT)
|
||||
|
||||
if("botlist")
|
||||
active = null
|
||||
|
||||
|
||||
if("unload")
|
||||
post_signal(control_freq, cmd, "unload")
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "unload", s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
if("setdest")
|
||||
if(beacons)
|
||||
var/dest = input("Select Bot Destination", "Mulebot [active.suffix] Interlink", active.destination) as null|anything in beacons
|
||||
if(dest)
|
||||
post_signal(control_freq, cmd, "target", "destination", dest)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "target", "destination", dest, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
|
||||
if("retoff")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 0)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 0, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
if("reton")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 1)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 1, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
|
||||
if("pickoff")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 0)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 0, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
if("pickon")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 1)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 1, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
|
||||
if("stop", "go", "home")
|
||||
post_signal(control_freq, cmd, href_list["op"])
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
post_signal(control_freq, cmd, href_list["op"], s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
PDA.cartridge.unlock()
|
||||
|
||||
|
||||
|
||||
@@ -15,33 +15,11 @@
|
||||
|
||||
for (var/ch_name in channels)
|
||||
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
|
||||
/*
|
||||
if(src.secure_frequency)
|
||||
secure_radio_connection = radio_controller.add_object(src, secure_frequency, RADIO_CHAT)
|
||||
if(src.channels.Find("Medical"))
|
||||
med_connection = radio_controller.add_object(src, med_freq, RADIO_CHAT)
|
||||
if(src.channels.Find("Science"))
|
||||
sci_connection = radio_controller.add_object(src, sci_freq, RADIO_CHAT)
|
||||
if(src.channels.Find("Security"))
|
||||
sec_connection = radio_controller.add_object(src, sec_freq, RADIO_CHAT)
|
||||
if(src.channels.Find("Command"))
|
||||
com_connection = radio_controller.add_object(src, com_freq, RADIO_CHAT)
|
||||
if(src.channels.Find("Engineer"))
|
||||
eng_connection = radio_controller.add_object(src, eng_freq, RADIO_CHAT)*/
|
||||
|
||||
/obj/item/device/radio
|
||||
var
|
||||
datum/radio_frequency/radio_connection
|
||||
|
||||
list/datum/radio_frequency/secure_radio_connections = new
|
||||
/*
|
||||
datum/radio_frequency/secure_radio_connection // Shared by Mport2004 for the security headsets -- TLE
|
||||
datum/radio_frequency/med_connection
|
||||
datum/radio_frequency/sci_connection
|
||||
datum/radio_frequency/com_connection
|
||||
datum/radio_frequency/eng_connection
|
||||
datum/radio_frequency/sec_connection*/
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
|
||||
Reference in New Issue
Block a user