mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-04-21 20:05:59 +01:00
57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
/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 = TRUE
|
|
size = 12
|
|
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP
|
|
network_destination = "long-range communication array"
|
|
category = PROG_COMMAND
|
|
var/datum/comm_message_listener/message_core
|
|
|
|
/datum/computer_file/program/comm/New(var/obj/item/modular_computer/comp = null)
|
|
..()
|
|
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
|
|
*/
|
|
|
|
/proc/get_comm_message_id()
|
|
GLOB.last_message_id = GLOB.last_message_id + 1
|
|
return GLOB.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 GLOB.comm_message_listeners)
|
|
l.Add(message)
|
|
|
|
/datum/comm_message_listener
|
|
var/list/messages
|
|
|
|
/datum/comm_message_listener/New()
|
|
..()
|
|
messages = list()
|
|
GLOB.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)
|