Fixes extremely mysterious and incomprehensible pooling bug
Created by: clusterfack
Debugmin wins Fixes #3251 (closed) Fixes #3898 (closed)
Probe helped me figure out this one because I saw the wires teleporting around after a singularity ripped him a new one. It had to be a double pooling issue, and since I couldn't replicate it normally I started testing around the singularity specifically.
I added
ASSERT(!(AM in masterPool["[AM.type]"]))
to experimental.dm line#87, which confirmed my suspicions when I loosed a singulo.
Turns out someone added extra sanity to singularity act to make sure it destroys objects, however both ex_act(1) and qdel(src) use returntopool, thus double pooling. I'm sure this is the cause of anytime someone has objects mysteriously disappear on them (if they are the type that are pooled).