Background:
We have a proc we have named `START_TRACKING`.
This roughly compiles to:
if(!by_type[PROC TYPE])
by_type[PROC TYPE] = list()
by_type[PROC TYPE][src] = 1
Now, let's look at a usage:
/obj/machinery/door/New()
..()
START_TRACKING
now, say i have
/obj/machinery/door
/obj/machinery/door/child
/obj/machinery/door/child/grandchild
/obj/machinery/door/child/grandchild/uglychild
If I use the macro and then do `by_type[/obj/machinery/door]` i will get all of them, not just the exact type match (which you'd get if you used src.type)
One could hardcode the type usage into the START_TRACKING macro, but this leads to a lot of needless verbosity. This adds up if you use this in over 500 places. It's also ripe for typos and similar unnoticed small bugs.
Implementation:
Lummox JR: I was just thinking `proc` for the current proc would be useful.
Based off this, I would say it could be: `proc::type`