diff options
Diffstat (limited to 'engines/titanic/core/drop_target.cpp')
-rw-r--r-- | engines/titanic/core/drop_target.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/titanic/core/drop_target.cpp b/engines/titanic/core/drop_target.cpp index 13a31c3f8a..ffeab03545 100644 --- a/engines/titanic/core/drop_target.cpp +++ b/engines/titanic/core/drop_target.cpp @@ -34,7 +34,7 @@ BEGIN_MESSAGE_MAP(CDropTarget, CGameObject) END_MESSAGE_MAP() CDropTarget::CDropTarget() : CGameObject(), _itemFrame(0), - _itemMatchSize(0), _showItem(false), _fieldF4(0), _dropFrame(0), + _itemMatchSize(0), _showItem(false), _dropEnabled(false), _dropFrame(0), _dragFrame(0), _dragCursorId(CURSOR_ARROW), _dropCursorId(CURSOR_HAND), _clipFlags(20) { } @@ -48,7 +48,7 @@ void CDropTarget::save(SimpleFile *file, int indent) { file->writeQuotedLine(_soundName, indent); file->writeNumberLine(_showItem, indent); file->writeQuotedLine(_itemName, indent); - file->writeNumberLine(_fieldF4, indent); + file->writeNumberLine(_dropEnabled, indent); file->writeNumberLine(_dropFrame, indent); file->writeNumberLine(_dragFrame, indent); file->writeQuotedLine(_clipName, indent); @@ -68,7 +68,7 @@ void CDropTarget::load(SimpleFile *file) { _soundName = file->readString(); _showItem = file->readNumber(); _itemName = file->readString(); - _fieldF4 = file->readNumber(); + _dropEnabled = file->readNumber(); _dropFrame = file->readNumber(); _dragFrame = file->readNumber(); _clipName = file->readString(); @@ -113,12 +113,13 @@ bool CDropTarget::DropObjectMsg(CDropObjectMsg *msg) { } bool CDropTarget::MouseDragStartMsg(CMouseDragStartMsg *msg) { + CTreeItem *dragItem = msg->_dragItem; if (!checkStartDragging(msg)) return false; - //msg->_dragItem = msg->_dragItem; + msg->_dragItem = dragItem; CGameObject *obj = dynamic_cast<CGameObject *>(findByName(_itemName)); - if (_itemName.empty() || _fieldF4 || !obj) + if (_itemName.empty() || _dropEnabled || !obj) return false; CDropZoneLostObjectMsg lostMsg; @@ -134,7 +135,7 @@ bool CDropTarget::MouseDragStartMsg(CMouseDragStartMsg *msg) { msg->_dragItem = obj; CPassOnDragStartMsg passMsg(msg->_mousePos, 1); passMsg.execute(obj); - setVisible(true); + obj->setVisible(true); } return true; @@ -160,7 +161,7 @@ bool CDropTarget::EnterViewMsg(CEnterViewMsg *msg) { bool CDropTarget::VisibleMsg(CVisibleMsg *msg) { setVisible(msg->_visible); - _fieldF4 = !msg->_visible; + _dropEnabled = !msg->_visible; return true; } |