bool SlotControl::onMouseUp(const Common::Point &screenSpacePos, const Common::Point &backgroundImageSpacePos) { if (_engine->getScriptManager()->getStateFlag(_key) & Puzzle::DISABLED) return false; if (_hotspot.contains(backgroundImageSpacePos)) { setVenus(); int item = _engine->getScriptManager()->getStateValue(_key); int mouseItem = _engine->getScriptManager()->getStateValue(StateKey_InventoryItem); if (item != 0) { if (mouseItem != 0) { if (eligeblity(mouseItem)) { _engine->getScriptManager()->inventoryDrop(mouseItem); _engine->getScriptManager()->inventoryAdd(item); _engine->getScriptManager()->setStateValue(_key, mouseItem); } } else { _engine->getScriptManager()->inventoryAdd(item); _engine->getScriptManager()->setStateValue(_key, 0); } } else if (mouseItem == 0) { if (eligeblity(0)) { _engine->getScriptManager()->inventoryDrop(0); _engine->getScriptManager()->setStateValue(_key, 0); } } else if (eligeblity(mouseItem)) { _engine->getScriptManager()->setStateValue(_key, mouseItem); _engine->getScriptManager()->inventoryDrop(mouseItem); } } return false; }
bool PaintControl::onMouseMove(const Common::Point &screenSpacePos, const Common::Point &backgroundImageSpacePos) { if (_engine->getScriptManager()->getStateFlag(_key) & Puzzle::DISABLED) return false; if (_rectangle.contains(backgroundImageSpacePos)) { int mouseItem = _engine->getScriptManager()->getStateValue(StateKey_InventoryItem); if (eligeblity(mouseItem)) { _engine->getCursorManager()->changeCursor(_cursor); if (_mouseDown) { Common::Rect bkgRect = paint(backgroundImageSpacePos); if (!bkgRect.isEmpty()) { Common::Rect imgRect = bkgRect; imgRect.translate(-_rectangle.left, -_rectangle.top); Graphics::Surface imgUpdate = _bkg->getSubArea(imgRect); _engine->getRenderManager()->blitSurfaceToBkg(imgUpdate, bkgRect.left, bkgRect.top, _colorKey); } } return true; } } return false; }
bool PaintControl::onMouseDown(const Common::Point &screenSpacePos, const Common::Point &backgroundImageSpacePos) { if (_engine->getScriptManager()->getStateFlag(_key) & Puzzle::DISABLED) return false; if (_rectangle.contains(backgroundImageSpacePos)) { int mouseItem = _engine->getScriptManager()->getStateValue(StateKey_InventoryItem); if (eligeblity(mouseItem)) { setVenus(); _mouseDown = true; } } return false; }