diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm
index 5116cd5cd6..ab9f4a534c 100644
--- a/code/modules/admin/view_variables/debug_variables.dm
+++ b/code/modules/admin/view_variables/debug_variables.dm
@@ -16,11 +16,19 @@
header = "
"
var/item
+ var/name_part = VV_HTML_ENCODE(name)
+ if(level > 0 || islist(D)) //handling keys in assoc lists
+ if(istype(name,/datum))
+ name_part = "[VV_HTML_ENCODE(name)] [REF(name)]"
+ else if(islist(name))
+ var/list/L = name
+ name_part = " /list ([length(L)]) [REF(name)]"
+
if (isnull(value))
- item = "[VV_HTML_ENCODE(name)] = null"
+ item = "[name_part] = null"
else if (istext(value))
- item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\""
+ item = "[name_part] = \"[VV_HTML_ENCODE(value)]\""
else if (isicon(value))
#ifdef VARSICON
@@ -28,33 +36,31 @@
var/rnd = rand(1,10000)
var/rname = "tmp[REF(I)][rnd].png"
usr << browse_rsc(I, rname)
- item = "[VV_HTML_ENCODE(name)] = ([value])
"
+ item = "[name_part] = ([value])
"
#else
- item = "[VV_HTML_ENCODE(name)] = /icon ([value])"
+ item = "[name_part] = /icon ([value])"
#endif
else if (isfile(value))
- item = "[VV_HTML_ENCODE(name)] = '[value]'"
+ item = "[name_part] = '[value]'"
- else if(istype(value, /matrix)) // Needs to be before datum
+ else if(istype(value,/matrix)) // Needs to be before datum
var/matrix/M = value
- item = {"[VV_HTML_ENCODE(name)] =
-
- | |
-
- | [M.a] | [M.d] | 0 |
- | [M.b] | [M.e] | 0 |
- | [M.c] | [M.f] | 1 |
- |
- |
-
"} //TODO link to modify_transform wrapper for all matrices
-
+ item = {"[name_part] =
+ | |
+
+
+ | [M.a] | [M.d] | 0 |
+ | [M.b] | [M.e] | 0 |
+ | [M.c] | [M.f] | 1 |
+
+ | |
"} //TODO link to modify_transform wrapper for all matrices
else if (istype(value, /datum))
var/datum/DV = value
if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it.
- item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV] [DV.type]"
+ item = "[name_part] = [DV] [DV.type] [REF(value)]"
else
- item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV.type]"
+ item = "[name_part] = [DV.type] [REF(value)]"
else if (islist(value))
var/list/L = value
@@ -72,19 +78,19 @@
items += debug_variable(key, val, level + 1, sanitize = sanitize)
- item = "[VV_HTML_ENCODE(name)] = /list ([L.len])"
+ item = "[name_part] = /list ([L.len])"
else
- item = "[VV_HTML_ENCODE(name)] = /list ([L.len])"
+ item = "[name_part] = /list ([L.len])"
else if (name in GLOB.bitfields)
var/list/flags = list()
for (var/i in GLOB.bitfields[name])
if (value & GLOB.bitfields[name][i])
flags += i
- item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]"
+ item = "[name_part] = [VV_HTML_ENCODE(jointext(flags, ", "))]"
else
- item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]"
+ item = "[name_part] = [VV_HTML_ENCODE(value)]"
return "[header][item]"
-#undef VV_HTML_ENCODE
+#undef VV_HTML_ENCODE
\ No newline at end of file