// Function from file: communications.dm public bool post_signal(Obj source = null, Signal signal = null, string filter = null, int?range = null) { ByTable filter_list = null; dynamic start_point = null; dynamic current_filter = null; Obj device = null; dynamic end_point = null; if (Lang13.Bool(filter)) { filter_list = new ByTable(new object [] { filter, "_default" }); } else { filter_list = this.devices; } if (Lang13.Bool(range)) { start_point = GlobalFuncs.get_turf(source); if (!Lang13.Bool(start_point)) { return(false); } } foreach (dynamic _b in Lang13.Enumerate(filter_list)) { current_filter = _b; foreach (dynamic _a in Lang13.Enumerate(this.devices[current_filter], typeof(Obj))) { device = _a; if (device == source) { continue; } if (Lang13.Bool(range)) { end_point = GlobalFuncs.get_turf(device); if (!Lang13.Bool(end_point)) { continue; } if (start_point.z != end_point.z || (range ?? 0) > 0 && Map13.GetDistance(start_point, end_point) > (range ?? 0)) { continue; } } device.receive_signal(signal, true, this.frequency); } } return(false); }