// Function from file: allinone.dm public override bool receive_signal(Signal signal = null, bool?receive_method = null, dynamic receive_param = null) { dynamic original = null; if (!this.on) { return(false); } if (this.is_freq_listening(signal)) { signal.data["done"] = 1; signal.data["compression"] = 0; original = signal.data["original"]; if (Lang13.Bool(original)) { original.data["done"] = 1; } if (Convert.ToDouble(signal.data["slow"]) > 0) { Task13.Sleep(Convert.ToInt32(signal.data["slow"])); } if (signal.frequency == GlobalVars.SYND_FREQ) { GlobalFuncs.Broadcast_Message(signal.data["mob"], Lang13.Bool(signal.data["vmask"]), signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], null, Lang13.Bool(signal.data["compression"]), new ByTable(new object [] { 0, this.z }), signal.frequency, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]); } } return(false); }
// Function from file: broadcaster.dm public override void receive_information(Signal signal = null, Obj_Machinery_Telecomms machine_from = null) { dynamic original = null; string signal_message = null; if (Lang13.Bool(signal.data["reject"])) { return; } if (Lang13.Bool(signal.data["message"])) { signal.data["done"] = 1; original = signal.data["original"]; if (Lang13.Bool(original)) { original.data["done"] = 1; original.data["compression"] = signal.data["compression"]; original.data["level"] = signal.data["level"]; } signal_message = "" + signal.frequency + ":" + signal.data["message"] + ":" + signal.data["realname"]; if (GlobalVars.recentmessages.Contains(signal_message)) { return; } GlobalVars.recentmessages.Add(signal_message); if (Convert.ToDouble(signal.data["slow"]) > 0) { Task13.Sleep(Convert.ToInt32(signal.data["slow"])); } signal.data["level"] |= this.listening_level; if (Lang13.Bool(signal.data["type"]) == false) { GlobalFuncs.Broadcast_Message(signal.data["mob"], Lang13.Bool(signal.data["vmask"]), signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], 0, Lang13.Bool(signal.data["compression"]), signal.data["level"], signal.frequency, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]); } if (Lang13.Bool(signal.data["type"]) == true) { GlobalFuncs.Broadcast_SimpleMessage(signal.data["name"], signal.frequency, signal.data["message"], null, null, Lang13.Bool(signal.data["compression"]), this.listening_level); } if (Convert.ToInt32(signal.data["type"]) == 2) { GlobalFuncs.Broadcast_Message(signal.data["mob"], Lang13.Bool(signal.data["vmask"]), signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], 4, Lang13.Bool(signal.data["compression"]), signal.data["level"], signal.frequency, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]); } if (!GlobalVars.message_delay) { GlobalVars.message_delay = true; Task13.Schedule(10, (Task13.Closure)(() => { GlobalVars.message_delay = false; GlobalVars.recentmessages = new ByTable(); return; })); } Icon13.Flick("broadcaster_send", this); } return; }
// Function from file: radio.dm public override void talk_into(dynamic M = null, dynamic input = null, dynamic channel = null, ByTable spans = null) { dynamic freq = null; double? freqnum = null; dynamic position = null; string real_name = null; string mobkey = null; bool voicemask = false; dynamic voice = null; dynamic speaker = null; string jobname = null; Data_Record findjob = null; dynamic B = null; Signal signal = null; Signal signal2 = null; Obj_Machinery_Telecomms_Receiver R = null; Obj_Machinery_Telecomms_Allinone R2 = null; int? filter_type = null; Signal signal3 = null; Obj_Machinery_Telecomms_Receiver R3 = null; if (!Lang13.Bool(this.on)) { return; } if (!Lang13.Bool(M) || !Lang13.Bool(input)) { return; } if (((Wires)this.wires).is_cut("transmit")) { return; } if (!((Ent_Dynamic)M).IsVocal()) { return; } if (this.use_command) { spans.Or("commmand_headset"); } if (Lang13.Bool(channel) && this.channels != null && this.channels.len > 0) { if (channel == "department") { channel = this.channels[1]; } freq = this.secure_radio_connections[channel]; if (!Lang13.Bool(this.channels[channel])) { return; } } else { freq = this.frequency; channel = null; } freqnum = String13.ParseNumber(freq); position = GlobalFuncs.get_turf(this); real_name = M.name; mobkey = "none"; voicemask = false; voice = ((Ent_Dynamic)M).GetVoice(); if (M is Mob) { speaker = M; real_name = speaker.real_name; if (Lang13.Bool(speaker.client)) { mobkey = speaker.key; } } if (M is Mob_Living_Carbon_Human) { findjob = GlobalFuncs.find_record("name", voice, GlobalVars.data_core.general); if (voice != real_name) { voicemask = true; } if (findjob != null) { jobname = findjob.fields["rank"]; } else { jobname = "Unknown"; } } else if (M is Mob_Living_Carbon) { jobname = "No id"; } else if (M is Mob_Living_Silicon_Ai) { jobname = "AI"; } else if (M is Mob_Living_Silicon_Robot) { B = M; jobname = "" + B.designation + " Cyborg"; } else if (M is Mob_Living_Silicon_Pai) { jobname = "Personal AI"; } else if (M is Obj) { jobname = "Machine"; } else { jobname = "Unknown"; } if (freqnum == GlobalVars.CENTCOM_FREQ && this.centcom) { signal = new Signal(); signal.transmission_method = 2; signal.data = new ByTable() .Set("mob", M) .Set("mobtype", M.type) .Set("realname", real_name) .Set("name", voice) .Set("job", jobname) .Set("key", mobkey) .Set("vmask", voicemask) .Set("compression", 0) .Set("message", input) .Set("radio", this) .Set("slow", 0) .Set("traffic", 0) .Set("type", 0) .Set("server", null) .Set("reject", 0) .Set("level", 0) .Set("languages", this.languages) .Set("spans", spans) .Set("verb_say", M.verb_say) .Set("verb_ask", M.verb_ask) .Set("verb_exclaim", M.verb_exclaim) .Set("verb_yell", M.verb_yell) ; signal.frequency = freqnum; GlobalFuncs.Broadcast_Message(M, voicemask, this, input, voice, jobname, real_name, 5, Lang13.Bool(signal.data["compression"]), new ByTable(new object [] { position.z, 0 }), freq, spans, this.verb_say, this.verb_ask, this.verb_exclaim, this.verb_yell); return; } if (this.subspace_transmission) { signal2 = new Signal(); signal2.transmission_method = 2; signal2.data = new ByTable() .Set("mob", M) .Set("mobtype", M.type) .Set("realname", real_name) .Set("name", voice) .Set("job", jobname) .Set("key", mobkey) .Set("vmask", voicemask) .Set("compression", Rand13.Int(35, 65)) .Set("message", input) .Set("radio", this) .Set("slow", 0) .Set("traffic", 0) .Set("type", 0) .Set("server", null) .Set("reject", 0) .Set("level", position.z) .Set("languages", M.languages) .Set("spans", spans) .Set("verb_say", M.verb_say) .Set("verb_ask", M.verb_ask) .Set("verb_exclaim", M.verb_exclaim) .Set("verb_yell", M.verb_yell) ; signal2.frequency = freq; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.telecomms_list, typeof(Obj_Machinery_Telecomms_Receiver))) { R = _a; R.receive_signal(signal2); } foreach (dynamic _b in Lang13.Enumerate(GlobalVars.telecomms_list, typeof(Obj_Machinery_Telecomms_Allinone))) { R2 = _b; R2.receive_signal(signal2); } return; } filter_type = 2; signal3 = new Signal(); signal3.transmission_method = 2; signal3.data = new ByTable() .Set("mob", M) .Set("mobtype", M.type) .Set("realname", real_name) .Set("name", voice) .Set("job", jobname) .Set("key", mobkey) .Set("vmask", voicemask) .Set("compression", 0) .Set("message", input) .Set("radio", this) .Set("slow", 0) .Set("traffic", 0) .Set("type", 0) .Set("server", null) .Set("reject", 0) .Set("level", position.z) .Set("languages", this.languages) .Set("spans", spans) .Set("verb_say", M.verb_say) .Set("verb_ask", M.verb_ask) .Set("verb_exclaim", M.verb_exclaim) .Set("verb_yell", M.verb_yell) ; signal3.frequency = freqnum; foreach (dynamic _c in Lang13.Enumerate(GlobalVars.telecomms_list, typeof(Obj_Machinery_Telecomms_Receiver))) { R3 = _c; R3.receive_signal(signal3); } Task13.Schedule(20, (Task13.Closure)(() => { if (Lang13.Bool(signal3.data["level"].Contains(Lang13.Bool(signal3.data["done"]) && Lang13.Bool(position.z)))) { return; } GlobalFuncs.Broadcast_Message(M, voicemask, this, input, voice, jobname, real_name, filter_type, Lang13.Bool(signal3.data["compression"]), new ByTable(new object [] { position.z }), freq, spans, this.verb_say, this.verb_ask, this.verb_exclaim, this.verb_yell); return; })); return; }