aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/screen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/screen.cpp')
-rw-r--r--engines/mads/screen.cpp92
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;