getRefs(var/datum/D)
. = new/list()
var/count = 0
var/list/searched = new/list()
for(var/datum/D2)
searched += D2
for(var/v in D2.vars)
if("[v]" == "vars")continue
if(D2.vars[v] == D)
count ++
.["[count]: [D2]"] = "[v]"
else if(istype(D2.vars[v],/list))
for(var/v2 in D2.vars[v])
if(v2 == D || D2.vars[v][v2] == D)
count ++
.["[count]: [D2]"] = "[v]"
//Found not-in-world datums, now lets find atoms, or anything else weird.
for(var/datum/D2 in world)
if(D2 in searched)continue
searched += D2
for(var/v in D2.vars)
if("[v]" == "vars")continue
if(D2.vars[v] == D)
count ++
.["[count]: [D2]"] = "[v]"
/*
else if(istype(D2.vars[v],/list))
var/list/L = D2.vars[v]
for(var/v2 in L)
if(!(v2 in L))continue
if(v2 == D || L[v2] == D) //I get a bad index error here for some reason
count ++
.["[count]: [D2]"] = "[v]"
*/
Problem description:
Creating a *cough* feasible refList() but for some reason I get a bad index error here.