bool CDropTarget::DropZoneLostObjectMsg(CDropZoneLostObjectMsg *msg) { if (!_itemName.empty()) { CGameObject *obj = dynamic_cast<CGameObject *>(findByName(_itemName)); if (obj) { if (msg->_object) { obj->detach(); obj->addUnder(msg->_object); } else if (dynamic_cast<CCarry *>(obj)) { obj->petAddToInventory(); } setVisible(true); CDropZoneLostObjectMsg lostMsg(this); lostMsg.execute(obj); } loadFrame(_dragFrame); _cursorId = _dragCursorId; } return true; }