//CCIAA's PDA. /obj/item/device/pda/central default_cartridge = /obj/item/weapon/cartridge/captain icon_state = "pda-h" detonate = 0 //CCIAA's tape recorder /obj/item/device/taperecorder/cciaa w_class = 1.0 recording = 0 timestamp = list() //This actually turns timestamp into a string later on //Redundent matter = list() playing = 0 emagged = 0 timerecorded = 0 playsleepseconds = 0 storedinfo = list() canprint = 1 //Specific for Duty Officers var/paused = 0 var/assignedUsers = list() var/sessionLog = list() var/interviewLog = list() var/sLogFile = null var/iLogFile = null /obj/item/device/taperecorder/cciaa/hear_talk(mob/living/M as mob, msg, var/verb="says") if(recording && !paused) timestamp = "[get_time()]" var/fmsg = "\[[timestamp]\] [M.name] [verb], \"[msg]\"" sLogFile << fmsg return /obj/item/device/taperecorder/cciaa/proc/get_time() return "[round(world.time / 36000)+12]:[(world.time / 600 % 60) < 10 ? add_zero(world.time / 600 % 60, 1) : world.time / 600 % 60]:[(world.time / 60 % 60) < 10 ? add_zero(world.time / 60 % 60, 1) : world.time / 60 % 60]" /obj/item/device/taperecorder/cciaa/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/ID = W if(ID.GetAccess(access_cent_captain)) if(!user in assignedUsers) assignedUsers += user else user << "The device beeps and flashes \"Already Registered\"." return else user << "The device beeps and appears to shutdown." return if(istype(W, /obj/item/weapon/paper)) var/obj/item/weapon/paper/P = W logPaper(user, P) ..() /obj/item/device/taperecorder/cciaa/proc/logPaper(var/mob/M, var/obj/item/weapon/paper/P) if(!P) return var/case = input(usr, "Enter case name","Case Name") as null|text if(!case || case == "") usr << "The device beeps and flashes \"No data entered, Aborting\"." return var/reference = input(usr, "Enter reference","Reference") as null|text if(!reference || reference == "") usr << "The device beeps and flashes \"No data entered, Aborting\"." return var/date_string = time2text(world.realtime, "YYYY_MM_DD") var/fileLoc = "data/dutylogs/[M.ckey]/[date_string]-[case].log" var/fileName = "[date_string]-[case].log" if(fexists(fileLoc)) var/safe = 0 var/i = 1 while(!safe) fileLoc = "data/dutylogs/[M.ckey]/[date_string]-[case][i].log" if(!fexists(fileLoc)) fileName = "[date_string]-[case][i].log" safe = 1 break i++ iLogFile = file(fileLoc) iLogFile << "[P.name]-[reference]" iLogFile << "Case file: [case]" iLogFile << "Reference: [reference]" iLogFile << "Date: [date_string]" iLogFile << "Filed by: [M]" iLogFile << "--------------------------------" iLogFile << "[P.info]" iLogFile << "[P.stamps]" iLogFile = null usr << "The device beeps and flashes \"Writing to [fileName]\"." return /obj/item/device/taperecorder/cciaa/record() set name = "Start Recording" set category = "Recorder" if(!usr.client.holder && !(usr.client.holder.rights & R_CCIAA)) usr << "The device beeps and flashes \"Unauthorised user.\"." return if(usr.stat) return if(recording) usr << "The device beeps and flashes \"Already recording, Aborting\"." return var/case = input(usr, "Enter case name","Case Name") as null|text if(!case || case == "") usr << "The device beeps and flashes \"No data entered, Aborting\"." return var/interviewee = input(usr, "Enter interviewee name","Interviewee Name") as null|text if(!interviewee || interviewee == "") usr << "The device beeps and flashed \"No data entered, Aborting\"." return var/date_string = time2text(world.realtime, "YYYY_MM_DD") var/fileLoc = "data/dutylogs/[usr.ckey]/[date_string]-[case]-[interviewee].log" var/fileName = "[date_string]-[case]-[interviewee].log" if(fexists(fileLoc)) var/safe = 0 var/i = 1 while(!safe) fileLoc = "data/dutylogs/[usr.ckey]/[date_string]-[case]-[interviewee]-[i].log" if(!fexists(fileLoc)) fileName = "[date_string]-[case]-[interviewee]-[i].log" safe = 1 break i++ sLogFile = file(fileLoc) sLogFile << "[case]-[interviewee]" sLogFile << "Case file: [case]" sLogFile << "--------------------------------" sLogFile << "Date: [date_string]" sLogFile << "--------------------------------" sLogFile << "Interviewer: [usr.name]" sLogFile << "Interviewee: [interviewee]" sLogFile << "Recorder started: [get_time()]" sLogFile << "--------------------------------" recording = 1 icon_state = "taperecorderrecording" usr << "The device beeps and flashes \"Writing to [fileName]\"." return /obj/item/device/taperecorder/cciaa/stop() set name = "Stop" set category = "Recorder" if(usr.stat) return if(!usr.client.holder && !(usr.client.holder.rights & R_CCIAA)) usr << "The device beeps and flashes \"Unauthorised user.\"." return if(!recording) usr << "The device beeps and flashes \"Not recording, Aborting\"." return recording = 0 paused = 0 sLogFile << "--------------------------------" sLogFile << "Recorder stopped: [get_time()]" sLogFile << "--------------------------------" sLogFile = null usr << "The device beeps and flashes \"Recording stopped log saved.\"." icon_state = "taperecorderidle" return /obj/item/device/taperecorder/cciaa/print_transcript() set name = "Print Transcript" set category = "Recorder" if(usr.stat) return if(!usr.client.holder && !(usr.client.holder.rights & R_CCIAA)) usr << "The device beeps and flashes \"Unauthorised user\"." return if(recording) usr << "The device beeps and flashes \"Device recording, Aborting\"." return var/path = usr.client.browse_files("data/dutylogs/") if(!path) return message_admins("[key_name_admin(usr)] accessed file: [path]") var/list/lFile = file2list(path) var/dat = "" var/firstLine = null for(var/line in lFile) if(!line) continue if(!firstLine) firstLine = "[line]" continue dat += "[line]
" var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) var/pname = "[firstLine]" var/info = "[dat]" P.set_content_unsafe(pname, info) P.loc = get_turf(src.loc) return /obj/item/device/taperecorder/cciaa/verb/pause_recording() set name = "Pause" set category = "Recorder" if(usr.stat) return if(!usr.client.holder && !(usr.client.holder.rights & R_CCIAA)) usr << "The device beeps and flashes \"Unauthorised user.\"." return if(!recording) usr << "The device beeps and flashes \"Not recording, Aborting\"." return if(!paused) sLogFile << "--------------------------------" sLogFile << "Recorder paused at: [get_time()]" usr << "The device beeps and flashes \"Recording resumed\"." paused = 1 else sLogFile << "Recorder resumed at: [get_time()]" sLogFile << "--------------------------------" usr << "The device beeps and flashes \"Recording paused\"." paused = 0 return /obj/item/device/taperecorder/cciaa/attack_self(mob/user) return //redundent for now /obj/item/device/taperecorder/cciaa/clear_memory() set name = "Clear Memory" set category = null return /obj/item/device/taperecorder/cciaa/playback_memory() set name = "Playback Memory" set category = null return /obj/item/device/taperecorder/cciaa/explode() return //ccia headset, only command and ert channel are on by default /obj/item/device/radio/headset/ert/ccia name = "central command internal affairs radio headset" ks2type = /obj/item/device/encryptionkey/ccia /obj/item/device/encryptionkey/ccia name = "\improper CCIA radio encryption key" channels = list("Response Team" = 1, "Science" = 0, "Command" = 1, "Medical" = 0, "Engineering" = 0, "Security" = 0, "Supply" = 0, "Service" = 0)