diff --git a/code/defines/procs/command_alert.dm b/code/defines/procs/command_alert.dm
index 6a68d105729..9635e20eb97 100644
--- a/code/defines/procs/command_alert.dm
+++ b/code/defines/procs/command_alert.dm
@@ -10,3 +10,7 @@
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))
M << command
+ if(title == "")
+ news_network.SubmitArticle(text, "Centcom Official", "Central Command", null)
+ else
+ news_network.SubmitArticle(title + "
" + text, "Centcom Official", "Central Command", null)
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index ca98373bad7..7cdbc186b61 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -10,6 +10,7 @@
var/backup_author =""
var/is_admin_message = 0
var/icon/img = null
+ var/time_stamp = ""
/datum/feed_channel
var/channel_name=""
@@ -42,6 +43,33 @@
var/list/datum/feed_channel/network_channels = list()
var/datum/feed_message/wanted_issue
+/datum/feed_network/New()
+ CreateFeedChannel("Central Command", "Centcom Official", 1)
+
+/datum/feed_network/proc/CreateFeedChannel(var/channel_name, var/author, var/locked, var/adminChannel = 0)
+ var/datum/feed_channel/newChannel = new /datum/feed_channel
+ newChannel.channel_name = channel_name
+ newChannel.author = author
+ newChannel.locked = locked
+ newChannel.is_admin_channel = adminChannel
+ network_channels += newChannel
+
+/datum/feed_network/proc/SubmitArticle(var/msg, var/author, var/channel_name, var/obj/item/weapon/photo/photo, var/adminMessage = 0)
+ var/datum/feed_message/newMsg = new /datum/feed_message
+ newMsg.author = author
+ newMsg.body = msg
+ newMsg.time_stamp = "[worldtime2text()]"
+ newMsg.is_admin_message = adminMessage
+ if(photo)
+ newMsg.img = photo.img
+ for(var/datum/feed_channel/FC in network_channels)
+ if(FC.channel_name == channel_name)
+ FC.messages += newMsg //Adding message to the network's appropriate feed_channel
+ break
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
+ NEWSCASTER.newsAlert(channel_name)
+
+
var/datum/feed_network/news_network = new /datum/feed_network //The global news-network, which is coincidentally a global list.
var/list/obj/machinery/newscaster/allCasters = list() //Global list that will contain reference to all newscasters in existence.
@@ -89,7 +117,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
var/ispowered = 1 //starts powered, changes with power_change()
//var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored.
//OBSOLETE: We're now using a global news network
- var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3
+ var/screen = 0
// 0 = welcome screen - main menu
// 1 = view feed channels
// 2 = create feed channel
@@ -131,10 +159,10 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
name = "security newscaster"
securityCaster = 1
-/obj/machinery/newscaster/New() //Constructor, ho~
+/obj/machinery/newscaster/New()
allCasters += src
- src.paper_remaining = 15 // Will probably change this to something better
- for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) // Let's give it an appropriate unit number
+ src.paper_remaining = 15
+ for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
src.unit_no++
src.update_icon() //for any custom ones on the map...
..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that
@@ -335,7 +363,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(MESSAGE.img)
usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
dat+="
"
- dat+="\[Story by [MESSAGE.author]\]
"
+ dat+="\[Story by [MESSAGE.author] \] - ([MESSAGE.time_stamp])
"
dat+="