Rotates and otherwise cleans up map intercom usage.

Conflicts:
	code/controllers/communications.dm
This commit is contained in:
PsiOmega
2015-11-22 21:35:36 -05:00
committed by Neerti
parent 92afc566bb
commit 42342bedcb
6 changed files with 7219 additions and 7181 deletions
@@ -1,9 +1,9 @@
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
var/global/list/default_intercom_channels = list(
num2text(PUB_FREQ) = list(),
num2text(AI_FREQ) = list(access_synth),
num2text(AI_FREQ) = list(access_synth),
num2text(ERT_FREQ) = list(access_cent_specops),
num2text(COMM_FREQ) = list(access_heads),
num2text(COMM_FREQ)= list(access_heads),
num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(SEC_FREQ) = list(access_security),
@@ -13,7 +13,7 @@ var/global/list/default_intercom_channels = list(
)
/obj/item/device/radio/intercom
name = "station intercom"
name = "station intercom (General)"
desc = "Talk through this."
icon_state = "intercom"
anchored = 1
@@ -21,34 +21,70 @@ var/global/list/default_intercom_channels = list(
canhear_range = 2
flags = CONDUCT | NOBLOODY
var/number = 0
var/anyai = 1
var/mob/living/silicon/ai/ai = list()
var/last_tick //used to delay the powercheck
var/list/intercom_channels
/obj/item/device/radio/intercom/custom
name = "station intercom (Custom)"
broadcasting = 0
listening = 0
/obj/item/device/radio/intercom/interrogation
name = "station intercom (Interrogation)"
frequency = 1449
/obj/item/device/radio/intercom/private
name = "station intercom (Private)"
frequency = AI_FREQ
/obj/item/device/radio/intercom/specops
name = "\improper Spec Ops intercom"
frequency = ERT_FREQ
/obj/item/device/radio/intercom/department
canhear_range = 5
broadcasting = 0
listening = 1
/obj/item/device/radio/intercom/department/medbay
name = "station intercom (Medbay)"
frequency = MED_I_FREQ
/obj/item/device/radio/intercom/department/security
name = "station intercom (Security)"
frequency = SEC_I_FREQ
/obj/item/device/radio/intercom/New()
..()
processing_objects += src
intercom_channels = default_intercom_channels
intercom_channels = default_intercom_channels.Copy()
/obj/item/device/radio/intercom/syndicate
name = "illicit intercom"
/obj/item/device/radio/intercom/syndicate/New()
/obj/item/device/radio/intercom/department/medbay/New()
..()
intercom_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SYND_FREQ) = list(access_syndicate),
num2text(COMM_FREQ) = list(access_syndicate),
num2text(ENG_FREQ) = list(access_syndicate),
num2text(MED_FREQ) = list(access_syndicate),
num2text(SEC_FREQ) = list(access_syndicate),
num2text(SCI_FREQ) = list(access_syndicate),
num2text(SUP_FREQ) = list(access_syndicate),
num2text(SRV_FREQ) = list(access_syndicate)
num2text(MED_I_FREQ) = list(access_medical_equip)
)
/obj/item/device/radio/intercom/department/security/New()
..()
intercom_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
)
/obj/item/device/radio/intercom/syndicate
name = "illicit intercom"
desc = "Talk through this. Evilly"
frequency = SYND_FREQ
subspace_transmission = 1
syndie = 1
/obj/item/device/radio/intercom/syndicate/New()
..()
intercom_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/proc/has_channel_access(var/mob/user, var/freq)
if(!user)
return 0
@@ -98,12 +134,6 @@ var/global/list/default_intercom_channels = list(
return canhear_range
/obj/item/device/radio/intercom/hear_talk(mob/M as mob, msg)
if(!src.anyai && !(M in src.ai))
return
..()
/obj/item/device/radio/intercom/process()
if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0))
last_tick = world.timeofday
@@ -144,3 +174,11 @@ var/global/list/default_intercom_channels = list(
/obj/item/device/radio/intercom/locked/list_channels()
return ""
/obj/item/device/radio/intercom/locked/ai_private
name = "\improper AI intercom"
frequency = AI_FREQ
/obj/item/device/radio/intercom/locked/confessional
name = "confessional intercom"
frequency = 1480