mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-14 02:43:16 +00:00
* Refactor several log lines to use datum_info_line and atom_loc_line * Add default return strings from datum_info_line and atom_loc_line * Add parentheses around atom_loc_line data * Change more logs to use atom_loc_line * Add check in atom_loc_line for turfs to avoid calling get_turf on them * Re-add removed 'at' * Replace datum_info_line with key_name and atom_loc_line with loc_name * Refactor logging functions * Avoid double-logging self-interactions * Fallback to simple stringification if all else fails in key_name() * Rewrite muscle spasm logging to use log_message * Standardize logging of martial arts * Tweak individual logging panel look * Fix individual logging panel source * When I typed || I really meant && * Fix Telecomms logging always showing client logs in the panel * Reverts addition of buggy ownership log to panel * Remove colon * Fix missing log_directed_talk tag * Add warning for missing type in log_direted_talk * Change warnings to stack_traces * Add square brackets around fallthrough key_name() case to help parsing * Allow atom arguments/src in log_*() functions * Change log_combat call with null argument to log_message * Change mecha types' log_message() arguments to match atom and mob version * Add key_name() case for atoms * Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it * Fix log_globally logic * Add logging for hitting objects with items * Move log_combat() to atoms.dm * Use utility functions for object stringification in log_combat() * Use utility functions for object stringification in log_combat() * Add missing logs for interacting with display cases * Rewrite log_combat() comment * Add missing space in log_combat() * Add logging for hitting grilles barehanded * Add missing ..()
67 lines
2.9 KiB
Plaintext
67 lines
2.9 KiB
Plaintext
/proc/show_individual_logging_panel(mob/M, source = LOGSRC_CLIENT, type = INDIVIDUAL_ATTACK_LOG)
|
|
if(!M || !ismob(M))
|
|
return
|
|
|
|
var/ntype = text2num(type)
|
|
|
|
//Add client links
|
|
var/dat = ""
|
|
if(M.client)
|
|
dat += "<center><p>Client</p></center>"
|
|
dat += "<center>"
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_ATTACK_LOG, LOGSRC_CLIENT, "Attack Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_SAY_LOG, LOGSRC_CLIENT, "Say Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_EMOTE_LOG, LOGSRC_CLIENT, "Emote Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_COMMS_LOG, LOGSRC_CLIENT, "Comms Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_OOC_LOG, LOGSRC_CLIENT, "OOC Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_SHOW_ALL_LOG, LOGSRC_CLIENT, "Show All", source, ntype)
|
|
dat += "</center>"
|
|
else
|
|
dat += "<p> No client attached to mob </p>"
|
|
|
|
dat += "<hr style='background:#000000; border:0; height:1px'>"
|
|
dat += "<center><p>Mob</p></center>"
|
|
//Add the links for the mob specific log
|
|
dat += "<center>"
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_ATTACK_LOG, LOGSRC_MOB, "Attack Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_SAY_LOG, LOGSRC_MOB, "Say Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_EMOTE_LOG, LOGSRC_MOB, "Emote Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_COMMS_LOG, LOGSRC_MOB, "Comms Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_OOC_LOG, LOGSRC_MOB, "OOC Log", source, ntype)
|
|
dat += " | "
|
|
dat += individual_logging_panel_link(M, INDIVIDUAL_SHOW_ALL_LOG, LOGSRC_MOB, "Show All", source, ntype)
|
|
dat += "</center>"
|
|
|
|
dat += "<hr style='background:#000000; border:0; height:1px'>"
|
|
|
|
var/log_source = M.logging;
|
|
if(source == LOGSRC_CLIENT && M.client) //if client doesn't exist just fall back to the mob log
|
|
log_source = M.client.player_details.logging //should exist, if it doesn't that's a bug, don't check for it not existing
|
|
|
|
for(var/log_type in log_source)
|
|
var/nlog_type = text2num(log_type)
|
|
if(nlog_type & ntype)
|
|
var/list/reversed = log_source[log_type]
|
|
if(islist(reversed))
|
|
reversed = reverseRange(reversed.Copy())
|
|
for(var/entry in reversed)
|
|
dat += "<font size=2px><b>[entry]</b><br>[reversed[entry]]</font><br>"
|
|
dat += "<hr>"
|
|
|
|
usr << browse(dat, "window=invidual_logging_[key_name(M)];size=600x480")
|
|
|
|
/proc/individual_logging_panel_link(mob/M, log_type, log_src, label, selected_src, selected_type)
|
|
var/slabel = label
|
|
if(selected_type == log_type && selected_src == log_src)
|
|
slabel = "<b>\[[label]\]</b>"
|
|
|
|
return "<a href='?_src_=holder;[HrefToken()];individuallog=[REF(M)];log_type=[log_type];log_src=[log_src]'>[slabel]</a>" |