[Scummvm-git-logs] scummvm master -> 2b8a41b980950df8ff9f481c61d964c93236c746
sev-
sev at scummvm.org
Tue Nov 8 17:32:14 CET 2016
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0dc532e878 DIRECTOR: Fix CASt resource parsing
2b8a41b980 DIRECTOR: Fix string lists loading
Commit: 0dc532e8781cb7009fdf13298425bf6538d55480
https://github.com/scummvm/scummvm/commit/0dc532e8781cb7009fdf13298425bf6538d55480
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-11-08T17:20:06+01:00
Commit Message:
DIRECTOR: Fix CASt resource parsing
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 181ed9a..a6de557 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -462,6 +462,10 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 cas
//member.regX = 0 // FIXME: HACK
//member.regY = 0 // FIXME: HACK
+ byte *data = (byte *)malloc(size1);
+ stream.read(data, size1);
+ free(data);
+
if (size2) {
uint32 entryType = 0;
Common::Array<Common::String> castStrings = loadStrings(stream, entryType, false);
Commit: 2b8a41b980950df8ff9f481c61d964c93236c746
https://github.com/scummvm/scummvm/commit/2b8a41b980950df8ff9f481c61d964c93236c746
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-11-08T17:20:19+01:00
Commit Message:
DIRECTOR: Fix string lists loading
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index a6de557..98d25cf 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -779,28 +779,28 @@ Common::Array<Common::String> Score::loadStrings(Common::SeekableSubReadStreamEn
stream.seek(offset);
}
- uint16 count = stream.readUint16();
- offset += (count + 1) * 4 + 2; // positions info + uint16 count
- uint32 startPos = stream.readUint32() + offset;
+ uint16 count = stream.readUint16() + 1;
- for (uint16 i = 0; i < count; i++) {
- Common::String entryString;
- uint32 nextPos = stream.readUint32() + offset;
- uint32 streamPos = stream.pos();
+ uint32 *entries = (uint32 *)calloc(count, sizeof(uint32));
- stream.seek(startPos);
+ for (uint i = 0; i < count; i++)
+ entries[i] = stream.readUint32();
- while (startPos != nextPos) {
- entryString += stream.readByte();
- ++startPos;
- }
+ byte *data = (byte *)malloc(entries[count - 1]);
+ stream.read(data, entries[count - 1]);
- strings.push_back(entryString);
+ for (uint i = 0; i < count - 1; i++) {
+ Common::String entryString;
- stream.seek(streamPos);
- startPos = nextPos;
+ for (uint j = entries[i]; j < entries[i + 1]; j++)
+ entryString += data[j];
+
+ strings.push_back(entryString);
}
+ free(data);
+ free(entries);
+
return strings;
}
More information about the Scummvm-git-logs
mailing list