mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
60 lines
1.8 KiB
Plaintext
60 lines
1.8 KiB
Plaintext
#define STATE_DEFAULT 1
|
|
#define STATE_MESSAGELIST 2
|
|
#define STATE_VIEWMESSAGE 3
|
|
#define STATE_STATUSDISPLAY 4
|
|
#define STATE_ALERT_LEVEL 5
|
|
/datum/computer_file/program/comm
|
|
filename = "comm"
|
|
filedesc = "Command and Communications Program"
|
|
program_icon_state = "comm"
|
|
program_key_state = "med_key"
|
|
program_menu_icon = "flag"
|
|
tguimodule_path = /datum/tgui_module/communications/ntos
|
|
extended_desc = "Used to command and control. Can relay long-range communications. This program can not be run on tablet computers."
|
|
required_access = access_heads
|
|
requires_ntnet = 1
|
|
size = 12
|
|
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP
|
|
network_destination = "long-range communication array"
|
|
var/datum/comm_message_listener/message_core = new
|
|
|
|
/datum/computer_file/program/comm/clone()
|
|
var/datum/computer_file/program/comm/temp = ..()
|
|
temp.message_core.messages = null
|
|
temp.message_core.messages = message_core.messages.Copy()
|
|
return temp
|
|
|
|
/*
|
|
General message handling stuff
|
|
*/
|
|
var/list/comm_message_listeners = list() //We first have to initialize list then we can use it.
|
|
var/datum/comm_message_listener/global_message_listener = new //May be used by admins
|
|
var/last_message_id = 0
|
|
|
|
/proc/get_comm_message_id()
|
|
last_message_id = last_message_id + 1
|
|
return last_message_id
|
|
|
|
/proc/post_comm_message(var/message_title, var/message_text)
|
|
var/list/message = list()
|
|
message["id"] = get_comm_message_id()
|
|
message["title"] = message_title
|
|
message["contents"] = message_text
|
|
|
|
for(var/datum/comm_message_listener/l in comm_message_listeners)
|
|
l.Add(message)
|
|
|
|
/datum/comm_message_listener
|
|
var/list/messages
|
|
|
|
/datum/comm_message_listener/New()
|
|
..()
|
|
messages = list()
|
|
comm_message_listeners.Add(src)
|
|
|
|
/datum/comm_message_listener/proc/Add(var/list/message)
|
|
messages[++messages.len] = message
|
|
|
|
/datum/comm_message_listener/proc/Remove(var/list/message)
|
|
messages -= list(message)
|