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