diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index f213c6bf30..4cfdfc4b9e 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -55,6 +55,10 @@ var/global/datum/controller/subsystem/ticker/ticker /datum/controller/subsystem/ticker/Initialize() pregame_timeleft = config.pregame_time send2mainirc("Server lobby is loaded and open at byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]") + + // Set up the global announcer + GLOB.autospeaker = new (null, null, null, 1) + return ..() /datum/controller/subsystem/ticker/fire(resumed = FALSE) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 4ef7cc576a..2049d96a7d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -284,7 +284,10 @@ var/global/list/default_medbay_channels = list( if(.) SSnanoui.update_uis(src) +GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer) /obj/item/device/radio/proc/autosay(var/message, var/from, var/channel, var/list/zlevels) //BS12 EDIT + if(!GLOB.autospeaker) + return var/datum/radio_frequency/connection = null if(channel && channels && channels.len > 0) if(channel == "department") @@ -299,9 +302,8 @@ var/global/list/default_medbay_channels = list( if(!LAZYLEN(zlevels)) zlevels = list(0) - var/static/mob/living/silicon/ai/announcer/A = new /mob/living/silicon/ai/announcer(src, null, null, 1) - A.SetName(from) - Broadcast_Message(connection, A, + GLOB.autospeaker.SetName(from) + Broadcast_Message(connection, GLOB.autospeaker, 0, "*garbled automated announcement*", src, message_to_multilingual(message), from, "Automated Announcement", from, "synthesized voice", DATA_FAKE, 0, zlevels, connection.frequency, "states")