aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sherlock/objects.cpp4
-rw-r--r--engines/sherlock/objects.h4
-rw-r--r--engines/sherlock/user_interface.cpp2
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;