diff options
-rw-r--r-- | engines/sherlock/objects.cpp | 4 | ||||
-rw-r--r-- | engines/sherlock/objects.h | 4 | ||||
-rw-r--r-- | engines/sherlock/user_interface.cpp | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp index e66f2a68bd..8c8d90579c 100644 --- a/engines/sherlock/objects.cpp +++ b/engines/sherlock/objects.cpp @@ -366,6 +366,8 @@ void ActionType::synchronize(Common::SeekableReadStream &s) { _cAnimNum = s.readByte(); _cAnimSpeed = s.readByte(); + if (_cAnimSpeed & 0x80) + _cAnimSpeed = -(_cAnimSpeed & 0x7f); for (int idx = 0; idx < 4; ++idx) { s.read(buffer, 12); @@ -380,6 +382,8 @@ void UseType::synchronize(Common::SeekableReadStream &s) { _cAnimNum = s.readByte(); _cAnimSpeed = s.readByte(); + if (_cAnimSpeed & 0x80) + _cAnimSpeed = -(_cAnimSpeed & 0x7f); for (int idx = 0; idx < 4; ++idx) { s.read(buffer, 12); diff --git a/engines/sherlock/objects.h b/engines/sherlock/objects.h index 2b2472fbbf..80b0b9d9f3 100644 --- a/engines/sherlock/objects.h +++ b/engines/sherlock/objects.h @@ -125,8 +125,8 @@ public: enum { REVERSE_DIRECTION = 0x80 }; struct ActionType { - int8 _cAnimNum; - uint8 _cAnimSpeed; // if high bit set, play in reverse + int _cAnimNum; + int _cAnimSpeed; // if high bit set, play in reverse Common::String _names[4]; void synchronize(Common::SeekableReadStream &s); diff --git a/engines/sherlock/user_interface.cpp b/engines/sherlock/user_interface.cpp index 53151ece55..c623896c85 100644 --- a/engines/sherlock/user_interface.cpp +++ b/engines/sherlock/user_interface.cpp @@ -2678,7 +2678,7 @@ void UserInterface::checkAction(ActionType &action, const char *const messages[] if (scene._goToScene != 1 && !printed && !talk._talkToAbort) { _infoFlag = true; clearInfo(); - screen.print(Common::Point(0, INFO_LINE + 1), INFO_FOREGROUND, messages[action._cAnimNum]); + screen.print(Common::Point(0, INFO_LINE + 1), INFO_FOREGROUND, "Done..."); // Set how long to show the message _menuCounter = 30; |