aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2015-04-26 03:45:28 -0500
committerPaul Gilbert2015-04-26 03:45:28 -0500
commit9044dd49dc2debd1c7d1fa4ea991320a1072235e (patch)
treec5fd6941a483515129650af5b46d325e66bb5a8e
parentd7a8d701641600b896622f8b7abb728c4b4cc266 (diff)
downloadscummvm-rg350-9044dd49dc2debd1c7d1fa4ea991320a1072235e.tar.gz
scummvm-rg350-9044dd49dc2debd1c7d1fa4ea991320a1072235e.tar.bz2
scummvm-rg350-9044dd49dc2debd1c7d1fa4ea991320a1072235e.zip
SHERLOCK: Fix closing closet in Backstage scene
-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;