[MIRROR] Refactors speech/communication logging and adds coordinates to speech logs (#1905)

* Refactors speech/communication logging and adds coordinates to speech logs

* Update clockwork_slab.dm

* Delete clockwork_slab.dm.rej

* Update browserOutput.dm

* Delete browserOutput.dm.rej
This commit is contained in:
CitadelStationBot
2017-07-13 08:37:51 -05:00
committed by kevinz000
parent 3d895118e7
commit f893863397
30 changed files with 96 additions and 39 deletions
+10
View File
@@ -40,3 +40,13 @@
#define FOLLOW_LINK(alice, bob) "<a href=?src=\ref[alice];follow=\ref[bob]>(F)</a>"
#define TURF_LINK(alice, turfy) "<a href=?src=\ref[alice];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(T)</a>"
#define FOLLOW_OR_TURF_LINK(alice, bob, turfy) "<a href=?src=\ref[alice];follow=\ref[bob];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(F)</a>"
#define LOGSAY "say"
#define LOGWHISPER "whisper"
#define LOGEMOTE "emote"
#define LOGDSAY "dsay"
#define LOGPDA "pda"
#define LOGCHAT "chat"
#define LOGASAY "adminsay"
#define LOGCOMMENT "comment"
#define LOGOOC "ooc"
+36
View File
@@ -537,3 +537,39 @@ Proc for attack log creation, because really why not
to_chat(M, rendered_message)
else
to_chat(M, message)
/proc/log_talk(mob/user,message,logtype)
var/turf/say_turf = get_turf(user)
var/sayloc = ""
if(say_turf)
sayloc = "([say_turf.x],[say_turf.y],[say_turf.z])"
var/logmessage = "[message] [sayloc]"
switch(logtype)
if(LOGDSAY)
log_dsay(logmessage)
if(LOGSAY)
log_say(logmessage)
if(LOGWHISPER)
log_whisper(logmessage)
if(LOGEMOTE)
log_emote(logmessage)
if(LOGPDA)
log_pda(logmessage)
if(LOGCHAT)
log_chat(logmessage)
if(LOGCOMMENT)
log_comment(logmessage)
if(LOGASAY)
log_adminsay(logmessage)
if(LOGOOC)
log_ooc(logmessage)
else
warning("Invalid speech logging type detected. [logtype]. Defaulting to say")
log_say(logmessage)
+1 -1
View File
@@ -25,7 +25,7 @@ SUBSYSTEM_DEF(communications)
else
priority_announce(html_decode(input), null, 'sound/misc/announce.ogg', "Captain")
nonsilicon_message_cooldown = world.time + COMMUNICATION_COOLDOWN
log_say("[key_name(user)] has made a priority announcement: [input]")
log_talk(user,"[key_name(user)] has made a priority announcement: [input]",LOGSAY)
message_admins("[key_name_admin(user)] has made a priority announcement.")
#undef COMMUNICATION_COOLDOWN
+1 -1
View File
@@ -58,7 +58,7 @@
user.audible_message(msg)
else
user.visible_message(msg)
log_emote("[key_name(user)] : [msg]")
log_talk(user,"[key_name(user)] : [msg]",LOGEMOTE)
/datum/emote/proc/replace_pronoun(mob/user, message)
if(findtext(message, "their"))
+2 -1
View File
@@ -121,13 +121,14 @@
blob_talk(message)
/mob/camera/blob/proc/blob_talk(message)
log_say("[key_name(src)] : [message]")
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
if (!message)
return
log_talk(src,"[key_name(src)] : [message]",LOGSAY)
var/message_a = say_quote(message, get_spans())
var/rendered = "<span class='big'><font color=\"#EE4000\"><b>\[Blob Telepathy\] [name](<font color=\"[blob_reagent_datum.color]\">[blob_reagent_datum.name]</font>)</b> [message_a]</font></span>"
@@ -44,4 +44,5 @@
if(!input || !IsAvailable())
return
log_talk(owner,"CLOCK:[key_name(owner)] : [input]",LOGSAY)
titled_hierophant_message(owner, input, span_for_name, span_for_message, title)
@@ -235,6 +235,7 @@
if(!message || !user || !user.canUseTopic(src) || !user.can_speak_vocal())
return FALSE
clockwork_say(user, text2ratvar("Servants, hear my words: [html_decode(message)]"), TRUE)
log_talk(user,"CLOCK:[key_name(user)] : [message]",LOGSAY)
titled_hierophant_message(user, message)
return TRUE
+1 -1
View File
@@ -46,7 +46,7 @@
var/link = FOLLOW_LINK(M, user)
to_chat(M, "[link] [my_message]")
log_say("[user.real_name]/[user.key] : [message]")
log_talk(user,"CULT:[key_name(user)] : [message]",LOGSAY)
/mob/living/proc/cult_help()
set category = "Cultist"
+1 -1
View File
@@ -135,7 +135,7 @@
for(var/mob/M in GLOB.dead_mob_list)
var/link = FOLLOW_LINK(M, user)
to_chat(M, "[link] [ping]")
log_game("[key_name(user)] Messaged [gang.name] Gang: [message].")
log_talk(user,"GANG: [key_name(user)] Messaged [gang.name] Gang: [message].",LOGSAY)
/obj/item/device/gangtool/proc/register_device(mob/user)
@@ -141,7 +141,7 @@
/mob/living/simple_animal/revenant/say(message)
if(!message)
return
log_say("[key_name(src)] : [message]")
log_talk(src,"[key_name(src)] : [message]",LOGSAY)
var/rendered = "<span class='revennotice'><b>[src]</b> says, \"[message]\"</span>"
for(var/mob/M in GLOB.mob_list)
if(isrevenant(M))
@@ -106,7 +106,7 @@
if(!msg)
charge_counter = charge_max
return
log_say("RevenantTransmit: [key_name(user)]->[key_name(M)] : [msg]")
log_talk(user,"RevenantTransmit: [key_name(user)]->[key_name(M)] : [msg]",LOGSAY)
to_chat(user, "<span class='revenboldnotice'>You transmit to [M]:</span> <span class='revennotice'>[msg]</span>")
to_chat(M, "<span class='revenboldnotice'>You hear something behind you talking...</span> <span class='revennotice'>[msg]</span>")
for(var/ded in GLOB.dead_mob_list)
@@ -145,7 +145,7 @@
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
send2otherserver("[station_name()]", input,"Comms_Console")
minor_announce(input, title = "Outgoing message to allied station")
log_say("[key_name(usr)] has sent a message to the other server: [input]")
log_talk(usr,"[key_name(usr)] has sent a message to the other server: [input]",LOGSAY)
message_admins("[key_name_admin(usr)] has sent a message to the other server.")
CM.lastTimeUsed = world.time
@@ -278,7 +278,7 @@
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
Centcomm_announce(input, usr)
to_chat(usr, "<span class='notice'>Message transmitted to Central Command.</span>")
log_say("[key_name(usr)] has made a Centcom announcement: [input]")
log_talk(usr,"[key_name(usr)] has made a Centcom announcement: [input]",LOGSAY)
CM.lastTimeUsed = world.time
@@ -295,7 +295,7 @@
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
Syndicate_announce(input, usr)
to_chat(usr, "<span class='danger'>SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.</span>")
log_say("[key_name(usr)] has made a Syndicate announcement: [input]")
log_talk(usr,"[key_name(usr)] has made a Syndicate announcement: [input]",LOGSAY)
CM.lastTimeUsed = world.time
if("RestoreBackup")
@@ -314,7 +314,7 @@
return
Nuke_request(input, usr)
to_chat(usr, "<span class='notice'>Request sent.</span>")
log_say("[key_name(usr)] has requested the nuclear codes from Centcomm")
log_talk(usr,"[key_name(usr)] has requested the nuclear codes from Centcomm",LOGSAY)
priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/ai/commandreport.ogg')
CM.lastTimeUsed = world.time
+2 -2
View File
@@ -417,7 +417,7 @@
if( customrecepient.loc && ishuman(customrecepient.loc) )
var/mob/living/carbon/human/H = customrecepient.loc
to_chat(H, "[bicon(customrecepient)] <b>Message from [customsender] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)")
log_pda("[usr]/([usr.ckey]) (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]")
log_talk(usr,"[key_name(usr)] (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]",LOGPDA)
customrecepient.cut_overlays()
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
//Sender is faking as someone who exists
@@ -430,7 +430,7 @@
if( customrecepient.loc && ishuman(customrecepient.loc) )
var/mob/living/carbon/human/H = customrecepient.loc
to_chat(H, "[bicon(customrecepient)] <b>Message from [PDARec.owner] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=\ref[customrecepient];choice=Message;skiprefresh=1;target=\ref[PDARec]'>Reply</a>)")
log_pda("[usr]/([usr.ckey]) (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]")
log_talk(usr,"[key_name(usr)] (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]",LOGPDA)
customrecepient.cut_overlays()
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
//Finally..
+1 -1
View File
@@ -138,7 +138,7 @@
if(I && istype(I) && I.imp_in)
var/mob/living/R = I.imp_in
to_chat(R, "<span class='italics'>You hear a voice in your head saying: '[warning]'</span>")
log_say("[usr]/[usr.ckey] sent an implant message to [R]/[R.ckey]: '[warning]'")
log_talk(usr,"[key_name(usr)] sent an implant message to [R]/[R.ckey]: '[warning]'",LOGSAY)
src.add_fingerprint(usr)
src.updateUsrDialog()
+1 -1
View File
@@ -693,7 +693,7 @@ GLOBAL_LIST_EMPTY(allCasters)
FC.body = cominput
FC.time_stamp = worldtime2text()
FM.comments += FC
log_comment("[usr]/([usr.ckey]) as [scanned_user] commented on message [FM.returnBody(-1)] -- [FC.body]")
log_talk(usr,"[key_name(usr)] as [scanned_user] commented on message [FM.returnBody(-1)] -- [FC.body]",LOGCOMMENT)
updateUsrDialog()
else if(href_list["del_comment"])
var/datum/newscaster/feed_comment/FC = locate(href_list["del_comment"])
+1 -1
View File
@@ -304,7 +304,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
return
minor_announce(message, "[department] Announcement:")
GLOB.news_network.SubmitArticle(message, department, "Station Announcements", null)
log_say("[key_name(usr)] has made a station announcement: [message]")
log_talk(usr,"[key_name(usr)] has made a station announcement: [message]",LOGSAY)
message_admins("[key_name_admin(usr)] has made a station announcement.")
announceAuth = 0
message = ""
+2 -2
View File
@@ -536,7 +536,7 @@ GLOBAL_LIST_EMPTY(PDAs)
P.show_recieved_message(msg,src)
if(!multiple)
show_to_ghosts(user,msg)
log_pda("[user] (PDA: [src.name]) sent \"[message]\" to [P.name]")
log_talk(user,"[user] (PDA: [name]) sent \"[message]\" to [P.name]",LOGPDA)
else
if(!multiple)
to_chat(user, "<span class='notice'>ERROR: Server isn't responding.</span>")
@@ -546,7 +546,7 @@ GLOBAL_LIST_EMPTY(PDAs)
if(multiple)
show_to_sender(last_sucessful_msg,1)
show_to_ghosts(user,last_sucessful_msg,1)
log_pda("[user] (PDA: [src.name]) sent \"[message]\" to Everyone")
log_talk(user,"[user] (PDA: [name]) sent \"[message]\" to Everyone",LOGPDA)
/obj/item/device/pda/proc/show_to_sender(datum/data_pda_msg/msg,multiple = 0)
tnote += "<i><b>&rarr; To [multiple ? "Everyone" : msg.recipient]:</b></i><br>[msg.message][msg.get_photo_ref()]<br>"
+1 -1
View File
@@ -1328,7 +1328,7 @@
name = "[initial(name)] - [doll_name]"
/obj/item/toy/dummy/talk_into(atom/movable/M, message, channel, list/spans, datum/language/language)
log_say("[key_name(M)] : through dummy : [message]")
log_talk(M,"[key_name(M)] : through dummy : [message]",LOGSAY)
say(message, language)
return NOPASS
+1 -1
View File
@@ -9,7 +9,7 @@
if(!msg)
return
log_adminsay("[key_name(src)] : [msg]")
log_talk(mob,"[key_name(src)] : [msg]",LOGASAY)
msg = keywords_lookup(msg)
if(check_rights(R_ADMIN,0))
msg = "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, 1)]</EM> (<a href='?_src_=holder;adminplayerobservefollow=\ref[mob]'>FLW</A>): <span class='message'>[msg]</span></span>"
+1 -1
View File
@@ -15,7 +15,7 @@
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
log_dsay("[key_name(src)] : [msg]")
log_talk(mob,"[key_name(src)] : [msg]",LOGDSAY)
if (!msg)
return
+6 -6
View File
@@ -51,7 +51,7 @@
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
return
log_ooc("[mob.name]/[key] : [raw_msg]")
log_talk(mob,"[key_name(src)] : [raw_msg]",LOGOOC)
mob.log_message("[key]: [raw_msg]", INDIVIDUAL_OOC_LOG)
var/keyname = key
@@ -157,7 +157,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
winset(src, "output", "is-visible=true;is-disabled=false")
winset(src, "browseroutput", "is-visible=false")
log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window after recreating the chatOutput and forcing a load()")
else if (chatOutput.loaded)
var/action = alert(src, "ChatOutput seems to be loaded\nDo you want me to force a reload, wiping the chat log or just refresh the chat window because it broke/went away?", "Hmmm", "Force Reload", "Refresh", "Cancel")
switch (action)
@@ -178,7 +178,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
winset(src, "output", "is-visible=true;is-disabled=false")
winset(src, "browseroutput", "is-visible=false")
log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window forcing a start() and forcing a load()")
if ("Refresh")
chatOutput.showChat()
action = alert(src, "Goon chat refreshing, wait a bit and tell me if it's fixed", "", "Fixed", "Nope, force a reload")
@@ -197,7 +197,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
winset(src, "browseroutput", "is-visible=false")
log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window forcing a show() and forcing a load()")
return
else
chatOutput.start()
var/action = alert(src, "Manually loading Chat, wait a bit and tell me if it's fixed", "", "Fixed", "Nope")
@@ -214,8 +214,8 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
winset(src, "output", list2params(list("on-show" = "", "is-disabled" = "false", "is-visible" = "true")))
winset(src, "browseroutput", "is-disabled=true;is-visible=false")
log_game("GOONCHAT: [key_name(src)] Failed to fix their goonchat window after manually calling start() and forcing a load()")
/client/verb/motd()
set name = "MOTD"
+1 -1
View File
@@ -152,7 +152,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
if (found.len > 0)
//TODO: add a new evasion ban for the CURRENT client details, using the matched row details
message_admins("[key_name(src.owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])")
log_admin_private("[key_name(owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])")
log_admin_private("[key_name(src.owner)] has a cookie from a banned account! (Matched: [found["ckey"]], [found["ip"]], [found["compid"]])")
cookieSent = TRUE
+1 -1
View File
@@ -4,7 +4,7 @@
if (!message)
return
log_say("Ghost/[src.key] : [message]")
log_talk(src,"Ghost/[src.key] : [message]", LOGSAY)
. = src.say_dead(message)
@@ -84,7 +84,7 @@ Doesn't work on other aliens/AI.*/
return 0
var/msg = sanitize(input("Message:", "Alien Whisper") as text|null)
if(msg)
log_say("AlienWhisper: [key_name(user)]->[M.key] : [msg]")
log_talk(user,"AlienWhisper: [key_name(user)]->[M.key] : [msg]",LOGSAY)
to_chat(M, "<span class='noticealien'>You hear a strange, alien voice in your head...</span>[msg]")
to_chat(user, "<span class='noticealien'>You said: \"[msg]\" to [M]</span>")
for(var/ded in GLOB.dead_mob_list)
+1 -1
View File
@@ -1,5 +1,5 @@
/mob/living/proc/alien_talk(message, shown_name = real_name)
log_say("[key_name(src)] : [message]")
log_talk(src,"[key_name(src)] : [message]",LOGSAY)
message = trim(message)
if(!message) return
+3 -3
View File
@@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(message_mode == MODE_WHISPER)
message_range = 1
spans |= SPAN_ITALICS
log_whisper("[src.name]/[src.key] : [message]")
log_talk(src,"[key_name(src)] : [message]",LOGWHISPER)
if(in_critical)
var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health)
// If we cut our message short, abruptly end it with a-..
@@ -158,7 +158,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
message_mode = MODE_WHISPER_CRIT
succumbed = TRUE
else
log_say("[name]/[key] : [message]")
log_talk(src,"[name]/[key] : [message]",LOGSAY)
message = treat_message(message)
if(!message)
@@ -333,7 +333,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
to_chat(M, "<i><font color=#800080>We can faintly sense an outsider trying to communicate through the hivemind...</font></i>")
if(2)
var/msg = "<i><font color=#800080><b>[mind.changeling.changelingID]:</b> [message]</font></i>"
log_say("[mind.changeling.changelingID]/[src.key] : [message]")
log_talk(src,"[mind.changeling.changelingID]/[key] : [message]",LOGSAY)
for(var/_M in GLOB.mob_list)
var/mob/M = _M
if(M in GLOB.dead_mob_list)
+8 -1
View File
@@ -40,7 +40,7 @@
//For holopads only. Usable by AI.
/mob/living/silicon/ai/proc/holopad_talk(message, language)
log_say("[key_name(src)] : [message]")
message = trim(message)
@@ -49,6 +49,13 @@
var/obj/machinery/holopad/T = current
if(istype(T) && T.masters[src])//If there is a hologram and its master is the user.
var/turf/padturf = get_turf(T)
var/padloc
if(padturf)
padloc = COORD(padturf)
else
padloc = "(UNKNOWN)"
log_talk(src,"HOLOPAD [padloc]: [key_name(src)] : [message]", LOGSAY)
send_speech(message, 7, T, "robot", get_spans(), language)
to_chat(src, "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> <span class='message robot'>\"[message]\"</span></span></i>")
else
+1 -1
View File
@@ -3,7 +3,7 @@
return ..() | SPAN_ROBOT
/mob/living/proc/robot_talk(message)
log_say("[key_name(src)] : [message]")
log_talk(src,"[key_name(src)] : [message]",LOGSAY)
log_message(message, INDIVIDUAL_SAY_LOG)
var/desig = "Default Cyborg" //ezmode for taters
if(issilicon(src))
@@ -365,7 +365,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [my_message]")
log_say("[src.real_name]/[src.key] : [input]")
log_talk(src,"GUARDIAN:[key_name(src)]: [input]",LOGSAY)
/mob/living/proc/guardian_comm()
set name = "Communicate"
@@ -387,7 +387,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
var/link = FOLLOW_LINK(M, src)
to_chat(M, "[link] [my_message]")
log_say("[src.real_name]/[src.key] : [text]")
log_talk(src,"GUARDIAN:[key_name(src)]: [input]",LOGSAY)
//FORCE RECALL/RESET
@@ -552,6 +552,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
G.summoner = user
G.key = key
G.mind.enslave_mind_to_creator(user)
log_game("[key_name(user)] has summoned [key_name(G)], a [guardiantype] holoparasite.")
switch(theme)
if("tech")
to_chat(user, "[G.tech_fluff_string]")
@@ -34,7 +34,7 @@
if(!message || !channel)
return
channel.add_message(message, username)
log_chat("[user]/([user.ckey]) as [username] sent to [channel.title]: [message]")
log_talk(user,"[key_name(user)] as [username] sent to [channel.title]: [message]",LOGCHAT)
if("PRG_joinchannel")
. = 1