diff options
Diffstat (limited to 'engines/tsage/core.cpp')
-rw-r--r-- | engines/tsage/core.cpp | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 99ea4ab88b..a41362e46d 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2987,22 +2987,28 @@ void Player::enableControl() { _canWalk = true; _uiEnabled = true; _enabled = true; - _globals->_events.setCursor(CURSOR_WALK); - switch (_globals->_events.getCursor()) { - case CURSOR_WALK: - case CURSOR_LOOK: - case CURSOR_USE: - case CURSOR_TALK: - _globals->_events.setCursor(_globals->_events.getCursor()); - break; - default: + if (_vm->getGameID() == GType_Ringworld) { _globals->_events.setCursor(CURSOR_WALK); - break; - } - if ((_vm->getGameID() == GType_BlueForce) && BF_GLOBALS._uiElements._active) - BF_GLOBALS._uiElements.show(); + switch (_globals->_events.getCursor()) { + case CURSOR_WALK: + case CURSOR_LOOK: + case CURSOR_USE: + case CURSOR_TALK: + _globals->_events.setCursor(_globals->_events.getCursor()); + break; + default: + _globals->_events.setCursor(CURSOR_WALK); + break; + } + } else { + CursorType cursor = _globals->_events.getCursor(); + _globals->_events.setCursor(cursor); + + if (BF_GLOBALS._uiElements._active) + BF_GLOBALS._uiElements.show(); + } } void Player::process(Event &event) { @@ -3845,17 +3851,19 @@ void SceneHandler::process(Event &event) { event.handled = _globals->_events.getCursor() != CURSOR_WALK; - if (_globals->_player._uiEnabled && _globals->_player._canWalk && - (_globals->_events.getCursor() != CURSOR_LOOK)) { - _globals->_events.setCursor(CURSOR_WALK); - } else if (_globals->_player._canWalk && (_globals->_events.getCursor() != CURSOR_LOOK)) { - _globals->_events.setCursor(CURSOR_WALK); - } else if (_globals->_player._uiEnabled && (_globals->_events.getCursor() != CURSOR_LOOK)) { - _globals->_events.setCursor(CURSOR_USE); - } + if ((_vm->getGameID() == GType_Ringworld) || (_globals->_events.getCursor() == CURSOR_9999)) { + if (_globals->_player._uiEnabled && _globals->_player._canWalk && + (_globals->_events.getCursor() != CURSOR_LOOK)) { + _globals->_events.setCursor(CURSOR_WALK); + } else if (_globals->_player._canWalk && (_globals->_events.getCursor() != CURSOR_LOOK)) { + _globals->_events.setCursor(CURSOR_WALK); + } else if (_globals->_player._uiEnabled && (_globals->_events.getCursor() != CURSOR_LOOK)) { + _globals->_events.setCursor(CURSOR_USE); + } - if (_vm->getGameID() == GType_BlueForce) - event.handled = true; + if (_vm->getGameID() == GType_BlueForce) + event.handled = true; + } break; } } |