Using "set src in usr" would be an option, though I would rather use something a little different, like "set src in usr.client.screen" or "set src in usr.group". Both of these are actually legitimate src settings and work, but not for datums. (Incidentially, I learned by experimenting with this that the group list doesn't count for garbage collection, something in usr.group can still get garbage collected...)
I suppose the first thing I should ask is if I can find a complete list of legitimate src settings. The one in BYOND ref is far from complete, listing only the most common ones.
This is the code that I've been working with (not that it's anything too exciting)
#define DEBUG
world
New()
..()
log = file("Bug.txt")
mob
var/v //So v isn't garbage collected
Login()
..()
v = new/VerbObj()
group += v
// src += v
// client.screen += v
VerbObj
// parent_type = /mob
verb
GROUP()
set src in usr.group
SCREEN()
set src in usr.client.screen
INVENTORY()
set src in usr
Does anyone know of any lists that can be used for accessability that allow datums? (Or any way to circumvent the datum problem, such as a list?) I really would prefer not to turn the datums into atoms, I'm expecting to use many of these, and I don't want the extra resource drag of atoms.
I suppose I could create a proc to transfer the verbs, but if a cleaner solution is possible, I'd take it.
Anyway, src settings are rather rooted in the concept of visibility, because of this. A datum, which is not part of the map, cannot be used with the src settings very well. An obj is your best choice here, really.