void Ship::SetParent(const shared_ptr<Ship> &ship) { shared_ptr<Ship> oldParent = parent.lock(); if(oldParent) oldParent->RemoveEscort(*this); parent = ship; if(ship) ship->AddEscort(*this); }