you see dat swirl? you see two z^3*i^|z|?
added some kind of reference system (see list.h) to ensure particles/projectiles/enemies storing pointers to each other that they will not access a borked address.