Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}