diff options
Diffstat (limited to 'engines/mads/screen.cpp')
-rw-r--r-- | engines/mads/screen.cpp | 92 |
1 files changed, 6 insertions, 86 deletions
diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp index 519dcabccd..9824a3e7cc 100644 --- a/engines/mads/screen.cpp +++ b/engines/mads/screen.cpp @@ -261,13 +261,10 @@ ScreenObjects::ScreenObjects(MADSEngine *vm) : _vm(vm) { _v7FED6 = 0; _v8332A = 0; _category = CAT_NONE; - _newDescId = 0; - _newDescId = 0; + _spotId = 0; _released = false; _uiCount = 0; _selectedObject = -1; - _scrollerY = -1; - _milliTime = 0; _eventFlag = false; _baseTime = 0; } @@ -292,14 +289,14 @@ void ScreenObjects::check(bool scanFlag) { if (!_vm->_events->_mouseButtons || _inputMode != kInputBuildingSentences) _vm->_events->_rightMousePressed = false; - if ((_vm->_events->_mouseMoved || _vm->_game->_scene._userInterface._scrollerY + if ((_vm->_events->_mouseMoved || userInterface._scrollbarActive || _v8332A || _forceRescan) && scanFlag) { _category = CAT_NONE; _selectedObject = scanBackwards(_vm->_events->currentPos(), LAYER_GUI); if (_selectedObject > 0) { ScreenObject &scrObject = (*this)[_selectedObject]; _category = (ScrCategory)(scrObject._category & 7); - _newDescId = scrObject._descId; + _spotId = scrObject._descId; } // Handling for easy mouse @@ -335,13 +332,13 @@ void ScreenObjects::check(bool scanFlag) { scene._userInterface._category = CAT_NONE; } - if (_vm->_events->_mouseButtons || _vm->_easyMouse || scene._userInterface._scrollerY) - checkScroller(); + if (_vm->_events->_mouseButtons || _vm->_easyMouse || userInterface._scrollbarActive) + scene._userInterface.updateInventoryScroller(); if (_vm->_events->_mouseButtons || _vm->_easyMouse) scene._action.set(); - _forceRescan = 0; + _forceRescan = false; } scene._action.refresh(); @@ -380,83 +377,6 @@ int ScreenObjects::scanBackwards(const Common::Point &pt, int layer) { return 0; } -void ScreenObjects::checkScroller() { - UserInterface &userInterface = _vm->_game->_scene._userInterface; - Common::Array<int> &inventoryList = _vm->_game->_objects._inventoryList; - - if (_inputMode != kInputBuildingSentences) - return; - - userInterface._scrollerY = 0; - - if ((_category == CAT_INV_SCROLLER || (_scrollerY == 3 && _vm->_events->_mouseStatusCopy)) - && (_vm->_events->_mouseStatusCopy || _vm->_easyMouse)) { - if ((_vm->_events->_vD2 || (_vm->_easyMouse && !_vm->_events->_mouseStatusCopy)) - && _category == CAT_INV_SCROLLER) { - _currentDescId = _newDescId; - } - } - - if (_newDescId == _currentDescId || _scrollerY == 3) { - _vm->_game->_scene._userInterface._scrollerY = _currentDescId; - uint32 currentMilli = g_system->getMillis(); - uint32 timeInc = _eventFlag ? 100 : 380; - - if (_vm->_events->_vD2 || (_milliTime + timeInc) <= currentMilli) { - _eventFlag = _vm->_events->_vD2 < 1; - _milliTime = currentMilli; - - switch (_currentDescId) { - case 1: - // Scroll up - if (userInterface._inventoryTopIndex > 0 && inventoryList.size() > 0) { - --userInterface._inventoryTopIndex; - userInterface._inventoryChanged = true; - } - break; - - case 2: - // Scroll down - if (userInterface._inventoryTopIndex < (int)inventoryList.size() && - inventoryList.size() > 0) { - ++userInterface._inventoryTopIndex; - userInterface._inventoryChanged = true; - } - break; - - case 3: { - // Inventory slider - int newIndex = CLIP((int)_vm->_events->currentPos().y - 170, 0, 17) - * inventoryList.size() / 10; - if (newIndex >= (int)inventoryList.size()) - newIndex = inventoryList.size() - 1; - - if (inventoryList.size() > 0) { - userInterface._inventoryChanged = newIndex != userInterface._inventoryTopIndex; - userInterface._inventoryTopIndex = newIndex; - } - break; - } - - default: - break; - } - - if (userInterface._inventoryChanged) { - int dummy; - userInterface.updateSelection(CAT_INV_LIST, 0, &dummy); - } - } - } - - if (userInterface._scrollerY != _scrollerY || - userInterface._objectY != _objectY) - userInterface.scrollerChanged(); - - _scrollerY = userInterface._scrollerY; - _objectY = userInterface._objectY; -} - void ScreenObjects::elementHighlighted() { Scene &scene = _vm->_game->_scene; UserInterface &userInterface = scene._userInterface; |