Why not just take a shared_ptr and you don't have to think about objects that might be deleted by someone else or memoryleaks due to changed weapons?