Fix error handler printing bogus src.loc and usr.loc info

This commit is contained in:
Leshana
2020-03-30 16:49:22 -04:00
parent 118c669d6a
commit 2e114ede5c
2 changed files with 16 additions and 8 deletions

View File

@@ -259,20 +259,28 @@
return key_name(whom, 1, include_name)
// Helper procs for building detailed log lines
//
// These procs must not fail under ANY CIRCUMSTANCES!
//
/datum/proc/log_info_line()
return "[src] ([type])"
/atom/log_info_line()
. = ..()
var/turf/t = get_turf(src)
if(istype(t))
return "([t]) ([t.x],[t.y],[t.z]) ([t.type])"
return "[.] @ [t.log_info_line()]"
else if(loc)
return "([loc]) (0,0,0) ([loc.type])"
return "[.] @ ([loc]) (0,0,0) ([loc.type])"
else
return "(NULL) (0,0,0) (NULL)"
return "[.] @ (NULL) (0,0,0) (NULL)"
/turf/log_info_line()
return "([src]) ([x],[y],[z]) ([type])"
/mob/log_info_line()
return "[..()] ([ckey])"
return "[..()] (ckey=[ckey])"
/proc/log_info_line(var/datum/d)
if(!d)

View File

@@ -51,12 +51,12 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0)
// First, try to make better src/usr info lines
if(istype(e_src))
srcinfo = list(" src: [log_info_line(e_src)]")
locinfo = log_info_line(e_src)
if(locinfo)
srcinfo += " src.loc: [locinfo]"
var/atom/atom_e_src = e_src
if(istype(atom_e_src))
srcinfo += " src.loc: [log_info_line(atom_e_src.loc)]"
if(istype(usr))
usrinfo = list(" usr: [log_info_line(usr)]")
locinfo = log_info_line(usr)
locinfo = log_info_line(usr.loc)
if(locinfo)
usrinfo += " usr.loc: [locinfo]"
// The proceeding mess will almost definitely break if error messages are ever changed