Ports Bay's Journalist TV Drone
Also ports prerequisite entertainment radio frequency code.
@@ -108,6 +108,7 @@ var/const/ERT_FREQ = 1345
|
|||||||
var/const/AI_FREQ = 1343
|
var/const/AI_FREQ = 1343
|
||||||
var/const/DTH_FREQ = 1341
|
var/const/DTH_FREQ = 1341
|
||||||
var/const/SYND_FREQ = 1213
|
var/const/SYND_FREQ = 1213
|
||||||
|
var/const/ENT_FREQ = 1461 //entertainment frequency. This is not a diona exclusive frequency.
|
||||||
|
|
||||||
// department channels
|
// department channels
|
||||||
var/const/PUB_FREQ = 1459
|
var/const/PUB_FREQ = 1459
|
||||||
@@ -135,6 +136,7 @@ var/list/radiochannels = list(
|
|||||||
"Supply" = SUP_FREQ,
|
"Supply" = SUP_FREQ,
|
||||||
"Service" = SRV_FREQ,
|
"Service" = SRV_FREQ,
|
||||||
"AI Private" = AI_FREQ,
|
"AI Private" = AI_FREQ,
|
||||||
|
"Entertainment" = ENT_FREQ,
|
||||||
"Medical(I)" = MED_I_FREQ,
|
"Medical(I)" = MED_I_FREQ,
|
||||||
"Security(I)" = SEC_I_FREQ
|
"Security(I)" = SEC_I_FREQ
|
||||||
)
|
)
|
||||||
@@ -146,7 +148,7 @@ var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
|
|||||||
var/list/ANTAG_FREQS = list(SYND_FREQ)
|
var/list/ANTAG_FREQS = list(SYND_FREQ)
|
||||||
|
|
||||||
//Department channels, arranged lexically
|
//Department channels, arranged lexically
|
||||||
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
|
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ, ENT_FREQ)
|
||||||
|
|
||||||
#define TRANSMISSION_WIRE 0
|
#define TRANSMISSION_WIRE 0
|
||||||
#define TRANSMISSION_RADIO 1
|
#define TRANSMISSION_RADIO 1
|
||||||
@@ -177,6 +179,8 @@ var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI
|
|||||||
return "supradio"
|
return "supradio"
|
||||||
if(frequency == SRV_FREQ) // service
|
if(frequency == SRV_FREQ) // service
|
||||||
return "srvradio"
|
return "srvradio"
|
||||||
|
if(frequency == ENT_FREQ) // entertainment
|
||||||
|
return "entradio"
|
||||||
if(frequency in DEPT_FREQS)
|
if(frequency in DEPT_FREQS)
|
||||||
return "deptradio"
|
return "deptradio"
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
id = "Receiver A"
|
id = "Receiver A"
|
||||||
network = "tcommsat"
|
network = "tcommsat"
|
||||||
autolinkers = list("receiverA") // link to relay
|
autolinkers = list("receiverA") // link to relay
|
||||||
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ)
|
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ)
|
||||||
|
|
||||||
//Common and other radio frequencies for people to freely use
|
//Common and other radio frequencies for people to freely use
|
||||||
New()
|
New()
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
/obj/machinery/telecomms/bus/preset_four
|
/obj/machinery/telecomms/bus/preset_four
|
||||||
id = "Bus 4"
|
id = "Bus 4"
|
||||||
network = "tcommsat"
|
network = "tcommsat"
|
||||||
freq_listening = list(ENG_FREQ, AI_FREQ, PUB_FREQ)
|
freq_listening = list(ENG_FREQ, AI_FREQ, PUB_FREQ, ENT_FREQ)
|
||||||
autolinkers = list("processor4", "engineering", "common")
|
autolinkers = list("processor4", "engineering", "common")
|
||||||
|
|
||||||
/obj/machinery/telecomms/bus/preset_cent
|
/obj/machinery/telecomms/bus/preset_cent
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
|
|
||||||
/obj/machinery/telecomms/server/presets/common
|
/obj/machinery/telecomms/server/presets/common
|
||||||
id = "Common Server"
|
id = "Common Server"
|
||||||
freq_listening = list(PUB_FREQ, AI_FREQ) // AI Private and Common
|
freq_listening = list(PUB_FREQ, AI_FREQ, ENT_FREQ) // AI Private and Common
|
||||||
autolinkers = list("common")
|
autolinkers = list("common")
|
||||||
|
|
||||||
// "Unused" channels, AKA all others.
|
// "Unused" channels, AKA all others.
|
||||||
|
|||||||
@@ -43,6 +43,10 @@
|
|||||||
icon_state = "medintercom"
|
icon_state = "medintercom"
|
||||||
frequency = SEC_I_FREQ
|
frequency = SEC_I_FREQ
|
||||||
|
|
||||||
|
/obj/item/device/radio/intercom/entertainment
|
||||||
|
name = "entertainment intercom"
|
||||||
|
frequency = ENT_FREQ
|
||||||
|
|
||||||
/obj/item/device/radio/intercom/New()
|
/obj/item/device/radio/intercom/New()
|
||||||
..()
|
..()
|
||||||
processing_objects += src
|
processing_objects += src
|
||||||
@@ -59,6 +63,13 @@
|
|||||||
num2text(SEC_I_FREQ) = list(access_security)
|
num2text(SEC_I_FREQ) = list(access_security)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/obj/item/device/radio/intercom/entertainment/New()
|
||||||
|
..()
|
||||||
|
internal_channels = list(
|
||||||
|
num2text(PUB_FREQ) = list(),
|
||||||
|
num2text(ENT_FREQ) = list()
|
||||||
|
)
|
||||||
|
|
||||||
/obj/item/device/radio/intercom/syndicate
|
/obj/item/device/radio/intercom/syndicate
|
||||||
name = "illicit intercom"
|
name = "illicit intercom"
|
||||||
desc = "Talk through this. Evilly"
|
desc = "Talk through this. Evilly"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
var/global/list/default_internal_channels = list(
|
var/global/list/default_internal_channels = list(
|
||||||
num2text(PUB_FREQ) = list(),
|
num2text(PUB_FREQ) = list(),
|
||||||
num2text(AI_FREQ) = list(access_synth),
|
num2text(AI_FREQ) = list(access_synth),
|
||||||
|
num2text(ENT_FREQ) = list(),
|
||||||
num2text(ERT_FREQ) = list(access_cent_specops),
|
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(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
|
||||||
|
|||||||
95
code/game/objects/items/devices/tvcamera.dm
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
/obj/item/device/tvcamera
|
||||||
|
name = "press camera drone"
|
||||||
|
desc = "A Ward-Takahashi EyeBuddy media streaming hovercam. Weapon of choice for war correspondents and reality show cameramen."
|
||||||
|
icon_state = "camcorder"
|
||||||
|
item_state = "camcorder"
|
||||||
|
w_class = ITEMSIZE_LARGE
|
||||||
|
slot_flags = SLOT_BELT
|
||||||
|
var/channel = "NCS Northern Star News Feed"
|
||||||
|
var/obj/machinery/camera/network/thunder/camera
|
||||||
|
var/obj/item/device/radio/radio
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/New()
|
||||||
|
..()
|
||||||
|
listening_objects += src
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/Destroy()
|
||||||
|
listening_objects -= src
|
||||||
|
qdel(camera)
|
||||||
|
qdel(radio)
|
||||||
|
camera = null
|
||||||
|
radio = null
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/examine()
|
||||||
|
..()
|
||||||
|
to_chat(usr, "Video feed is [camera.status ? "on" : "off"]")
|
||||||
|
to_chat(usr, "Audio feed is [radio.broadcasting ? "on" : "off"]")
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/initialize()
|
||||||
|
..()
|
||||||
|
camera = new(src)
|
||||||
|
camera.c_tag = channel
|
||||||
|
camera.status = FALSE
|
||||||
|
radio = new(src)
|
||||||
|
radio.listening = FALSE
|
||||||
|
radio.set_frequency(ENT_FREQ)
|
||||||
|
radio.icon = src.icon
|
||||||
|
radio.icon_state = src.icon_state
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/hear_talk(mob/living/M, msg, var/verb="says", datum/language/speaking=null)
|
||||||
|
radio.hear_talk(M,msg,verb,speaking)
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/attack_self(mob/user)
|
||||||
|
add_fingerprint(user)
|
||||||
|
user.set_machine(src)
|
||||||
|
var/dat = list()
|
||||||
|
dat += "Channel name is: <a href='?src=\ref[src];channel=1'>[channel ? channel : "unidentified broadcast"]</a><br>"
|
||||||
|
dat += "Video streaming is <a href='?src=\ref[src];video=1'>[camera.status ? "on" : "off"]</a><br>"
|
||||||
|
dat += "Mic is <a href='?src=\ref[src];sound=1'>[radio.broadcasting ? "on" : "off"]</a><br>"
|
||||||
|
dat += "Sound is being broadcasted on frequency [format_frequency(radio.frequency)] ([get_frequency_name(radio.frequency)])<br>"
|
||||||
|
var/datum/browser/popup = new(user, "Hovercamera", "Eye Buddy", 300, 390, src)
|
||||||
|
popup.set_content(jointext(dat,null))
|
||||||
|
popup.open()
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/Topic(bred, href_list, state = physical_state)
|
||||||
|
if(..())
|
||||||
|
return 1
|
||||||
|
if(href_list["channel"])
|
||||||
|
var/nc = input(usr, "Channel name", "Select new channel name", channel) as text|null
|
||||||
|
if(nc)
|
||||||
|
channel = nc
|
||||||
|
camera.c_tag = channel
|
||||||
|
to_chat(usr, "<span class='notice'>New channel name - '[channel]' is set</span>")
|
||||||
|
if(href_list["video"])
|
||||||
|
camera.set_status(!camera.status)
|
||||||
|
if(camera.status)
|
||||||
|
to_chat(usr,"<span class='notice'>Video streaming activated. Broadcasting on channel '[channel]'</span>")
|
||||||
|
else
|
||||||
|
to_chat(usr,"<span class='notice'>Video streaming deactivated.</span>")
|
||||||
|
update_icon()
|
||||||
|
if(href_list["sound"])
|
||||||
|
radio.ToggleBroadcast()
|
||||||
|
if(radio.broadcasting)
|
||||||
|
to_chat(usr,"<span class='notice'>Audio streaming activated. Broadcasting on frequency [format_frequency(radio.frequency)].</span>")
|
||||||
|
else
|
||||||
|
to_chat(usr,"<span class='notice'>Audio streaming deactivated.</span>")
|
||||||
|
if(!href_list["close"])
|
||||||
|
attack_self(usr)
|
||||||
|
|
||||||
|
/obj/item/device/tvcamera/update_icon()
|
||||||
|
..()
|
||||||
|
if(camera.status)
|
||||||
|
icon_state = "camcorder_on"
|
||||||
|
item_state = "camcorder_on"
|
||||||
|
else
|
||||||
|
icon_state = "camcorder"
|
||||||
|
item_state = "camcorder"
|
||||||
|
var/mob/living/carbon/human/H = loc
|
||||||
|
if(istype(H))
|
||||||
|
H.update_inv_r_hand()
|
||||||
|
H.update_inv_l_hand()
|
||||||
|
H.update_inv_belt()
|
||||||
|
|
||||||
@@ -47,6 +47,7 @@ em {font-style: normal;font-weight: bold;}
|
|||||||
.syndradio {color: #6D3F40;}
|
.syndradio {color: #6D3F40;}
|
||||||
.centradio {color: #5C5C8A;}
|
.centradio {color: #5C5C8A;}
|
||||||
.airadio {color: #FF00FF;}
|
.airadio {color: #FF00FF;}
|
||||||
|
.entradio {color: #339966;}
|
||||||
|
|
||||||
.secradio {color: #A30000;}
|
.secradio {color: #A30000;}
|
||||||
.engradio {color: #A66300;}
|
.engradio {color: #A66300;}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 48 KiB |
@@ -777,6 +777,7 @@
|
|||||||
#include "code\game\objects\items\devices\taperecorder.dm"
|
#include "code\game\objects\items\devices\taperecorder.dm"
|
||||||
#include "code\game\objects\items\devices\traitordevices.dm"
|
#include "code\game\objects\items\devices\traitordevices.dm"
|
||||||
#include "code\game\objects\items\devices\transfer_valve.dm"
|
#include "code\game\objects\items\devices\transfer_valve.dm"
|
||||||
|
#include "code\game\objects\items\devices\tvcamera.dm"
|
||||||
#include "code\game\objects\items\devices\uplink.dm"
|
#include "code\game\objects\items\devices\uplink.dm"
|
||||||
#include "code\game\objects\items\devices\uplink_random_lists.dm"
|
#include "code\game\objects\items\devices\uplink_random_lists.dm"
|
||||||
#include "code\game\objects\items\devices\violin.dm"
|
#include "code\game\objects\items\devices\violin.dm"
|
||||||
|
|||||||