aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/objects.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-16 16:46:35 -0400
committerPaul Gilbert2015-05-16 16:46:35 -0400
commit2cfc6a0a0c3e5ab1e65c7544da395ed8c8379b6b (patch)
tree335e94abb138f505bd308a1733d11ba69afb4cea /engines/sherlock/objects.cpp
parent5f5051d7be5317153ae079c0c9c32ec2008c4a2c (diff)
downloadscummvm-rg350-2cfc6a0a0c3e5ab1e65c7544da395ed8c8379b6b.tar.gz
scummvm-rg350-2cfc6a0a0c3e5ab1e65c7544da395ed8c8379b6b.tar.bz2
scummvm-rg350-2cfc6a0a0c3e5ab1e65c7544da395ed8c8379b6b.zip
SHERLOCK: Fix broken Scalpel scene loading
Diffstat (limited to 'engines/sherlock/objects.cpp')
-rw-r--r--engines/sherlock/objects.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp
index 772f9d23d1..9620a01806 100644
--- a/engines/sherlock/objects.cpp
+++ b/engines/sherlock/objects.cpp
@@ -477,6 +477,7 @@ Object::Object() {
* Load the data for the object
*/
void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
+ uint32 p = s.pos(); warning("%.4x", p);
char buffer[41];
s.read(buffer, 12);
_name = Common::String(buffer);
@@ -508,11 +509,10 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
_goto.x = s.readSint16LE();
_goto.y = s.readSint16LE();
- _pickup = s.readByte();
- _defaultCommand = s.readByte();
- _lookFlag = s.readUint16LE();
- if (!isRoseTattoo)
- _pickupFlag = s.readUint16LE();
+ _pickup = isRoseTattoo ? 0 : s.readByte();
+ _defaultCommand = isRoseTattoo ? 0 : s.readByte();
+ _lookFlag = s.readSint16LE();
+ _pickupFlag = isRoseTattoo ? 0 : s.readSint16LE();
_requiredFlag = s.readSint16LE();
_noShapeSize.x = s.readUint16LE();
_noShapeSize.y = s.readUint16LE();
@@ -547,7 +547,7 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
_quickDraw = s.readByte();
_scaleVal = s.readUint16LE();
- _requiredFlag1 = s.readUint16LE();
+ _requiredFlag1 = s.readSint16LE();
_gotoSeq = s.readByte();
_talkSeq = s.readByte();
_restoreSlot = s.readByte();
@@ -559,6 +559,7 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
for (int idx = 0; idx < 4; ++idx)
_use[idx].load(s, false);
}
+ warning("%.4x", s.pos() - p);
}
/**