[Scummvm-git-logs] scummvm master -> 9e54089fe74940cf52bceefddb7e92928a4dcf28

sev- sev at scummvm.org
Sat Oct 29 17:07:29 CEST 2016


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f2251c0d71 DIRECTOR: Fixing Score reading in RIFX format
53fd38f56d DIRECTOR: Fix crash when there is no shared casts present
9f35d6fdc6 DIRECTOR: Added more debug output to cast reading
703178e033 DIRECTOR: Rework Channel data parsing
85dd217cc0 DIRECTOR: Fix D4+ score reading
9e54089fe7 DIRECTOR: Mark current cast loading method as D2


Commit: f2251c0d71cec801af6ec1019dcf21ac25b76462
    https://github.com/scummvm/scummvm/commit/f2251c0d71cec801af6ec1019dcf21ac25b76462
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Fixing Score reading in RIFX format

Changed paths:
    engines/director/score.cpp



diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 7b03ca1..0c0527c 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -263,6 +263,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 
 	if (_vm->getVersion() > 3) {
 		stream.skip(16);
+		size -= 16;
 
 		warning("STUB: Score::loadFrames. Skipping initial bytes");
 		//Unknown, some bytes - constant (refer to contuinity).
@@ -286,8 +287,8 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 				channelOffset = stream.readByte() * 2;
 				frameSize -= channelSize + 2;
 			} else {
-				channelSize = stream.readByte();
-				channelOffset = stream.readByte();
+				channelSize = stream.readUint16();
+				channelOffset = stream.readUint16();
 				frameSize -= channelSize + 4;
 			}
 			frame->readChannel(stream, channelOffset, channelSize);


Commit: 53fd38f56dae3e14605b098eaece16f7c4ff73f4
    https://github.com/scummvm/scummvm/commit/53fd38f56dae3e14605b098eaece16f7c4ff73f4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Fix crash when there is no shared casts present

Changed paths:
    engines/director/resource.cpp



diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index a704918..61e46e9 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -197,6 +197,8 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
 	if (!shardcst->openFile(filename)) {
 		warning("No shared cast %s", filename.c_str());
 
+		_sharedCasts = new Common::HashMap<int, Cast *>;
+
 		return;
 	}
 


Commit: 9f35d6fdc6cc4462f1cb3a9916aba298d0a3e1be
    https://github.com/scummvm/scummvm/commit/9f35d6fdc6cc4462f1cb3a9916aba298d0a3e1be
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Added more debug output to cast reading

Changed paths:
    engines/director/frame.cpp
    engines/director/score.cpp



diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index c00d8bd..5720888 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -179,6 +179,8 @@ void Frame::readMainChannels(Common::SeekableSubReadStreamEndian &stream, uint16
 			break;
 		}
 	}
+
+	warning("%d %d %d %d %d %d %d %d %d %d %d", _actionId, _soundType1, _transDuration, _transChunkSize, _tempo, _transType, _sound1, _skipFrameFlag, _blend, _sound2, _soundType2);
 }
 
 void Frame::readPaletteInfo(Common::SeekableSubReadStreamEndian &stream) {
@@ -198,11 +200,13 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
 	uint16 finishPosition = fieldPosition + size;
 
 	Sprite &sprite = *_sprites[spritePosition];
+	int x1 = 0;
+	int x2 = 0;
 
 	while (fieldPosition < finishPosition) {
 		switch (fieldPosition) {
 		case kSpritePositionUnk1:
-			/*byte x1 = */ stream.readByte();
+			x1 = stream.readByte();
 			fieldPosition++;
 			break;
 		case kSpritePositionEnabled:
@@ -210,7 +214,7 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
 			fieldPosition++;
 			break;
 		case kSpritePositionUnk2:
-			/*byte x2 = */ stream.readUint16();
+			x2 = stream.readUint16();
 			fieldPosition += 2;
 			break;
 		case kSpritePositionFlags:
@@ -251,6 +255,8 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
 			break;
 		}
 	}
+	warning("%03d(%d)[%x,%x,%04x,%d/%d/%d/%d]", sprite._castId, sprite._enabled, x1, x2, sprite._flags, sprite._startPoint.x, sprite._startPoint.y, sprite._width, sprite._height);
+
 }
 
 void Frame::prepareFrame(Score *score) {
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 0c0527c..b2b7654 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -277,6 +277,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 
 	while (size != 0) {
 		uint16 frameSize = stream.readUint16();
+		warning("++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size);
 		size -= frameSize;
 		frameSize -= 2;
 		Frame *frame = new Frame(*_frames.back());


Commit: 703178e033934b7aa09ab5e995480d967ef7113a
    https://github.com/scummvm/scummvm/commit/703178e033934b7aa09ab5e995480d967ef7113a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Rework Channel data parsing

Changed paths:
    engines/director/archive.cpp
    engines/director/frame.cpp
    engines/director/frame.h
    engines/director/score.cpp
    engines/director/sprite.h



diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index 9122572..53c5243 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -347,6 +347,8 @@ bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
 	subStream.readUint32(); // imap length
 	subStream.readUint32(); // unknown
 	uint32 mmapOffset = subStream.readUint32() - startOffset - 4;
+	uint32 version = subStream.readUint32(); // 0 for 4.0, 0x4c1 for 5.0, 0x4c7 for 6.0, 0x708 for 8.5, 0x742 for 10.0
+	warning("RIFX: version: %x", version);
 
 	subStream.seek(mmapOffset);
 
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 5720888..9adbf00 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -54,7 +54,7 @@ Frame::Frame(DirectorEngine *vm) {
 
 	_palette = NULL;
 
-	_sprites.resize(CHANNEL_COUNT);
+	_sprites.resize(CHANNEL_COUNT + 1);
 
 	for (uint16 i = 0; i < _sprites.size(); i++) {
 		Sprite *sp = new Sprite();
@@ -80,9 +80,9 @@ Frame::Frame(const Frame &frame) {
 
 	debugC(1, kDebugLoading, "Frame. action: %d transType: %d transDuration: %d", _actionId, _transType, _transDuration);
 
-	_sprites.resize(CHANNEL_COUNT);
+	_sprites.resize(CHANNEL_COUNT + 1);
 
-	for (uint16 i = 0; i < CHANNEL_COUNT; i++) {
+	for (uint16 i = 0; i < CHANNEL_COUNT + 1; i++) {
 		_sprites[i] = new Sprite(*frame._sprites[i]);
 	}
 }
@@ -112,6 +112,104 @@ void Frame::readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offs
 	}
 }
 
+void Frame::readChannels(Common::ReadStreamEndian *stream) {
+	_actionId = stream->readByte();
+	_soundType1 = stream->readByte(); // type: 0x17 for sounds (sound is cast id), 0x16 for MIDI (sound is cmd id)
+	uint8 transFlags = stream->readByte(); // 0x80 is whole stage (vs changed area), rest is duration in 1/4ths of a second
+
+	if (transFlags & 0x80)
+		_transArea = 1;
+	else
+		_transArea = 0;
+	_transDuration = transFlags & 0x7f;
+
+	_transChunkSize = stream->readByte();
+	_tempo = stream->readByte();
+	_transType = static_cast<TransitionType>(stream->readByte());
+	_sound1 = stream->readUint16();
+	if (_vm->getPlatform() == Common::kPlatformMacintosh) {
+		_sound2 = stream->readUint16();
+		_soundType2 = stream->readByte();
+	} else {
+		byte unk[3];
+		stream->read(unk, 3);
+		warning("unk1: %x unk2: %x unk3: %x", unk[0], unk[1], unk[2]);
+	}
+	_skipFrameFlag = stream->readByte();
+	_blend = stream->readByte();
+
+	if (_vm->getPlatform() != Common::kPlatformMacintosh) {
+		_sound2 = stream->readUint16();
+		_soundType2 = stream->readByte();
+	}
+
+	uint16 palette = stream->readUint16();
+
+	if (palette) {
+		warning("STUB: Palette info");
+	}
+
+	debugC(kDebugLoading, 8, "%d %d %d %d %d %d %d %d %d %d %d", _actionId, _soundType1, _transDuration, _transChunkSize, _tempo, _transType, _sound1, _skipFrameFlag, _blend, _sound2, _soundType2);
+
+	_palette = new PaletteInfo();
+	_palette->firstColor = stream->readByte(); // for cycles. note: these start at 0x80 (for pal entry 0)!
+	_palette->lastColor = stream->readByte();
+	_palette->flags = stream->readByte();
+	_palette->speed = stream->readByte();
+	_palette->frameCount = stream->readUint16();
+
+	_palette->cycleCount = stream->readUint16();
+
+	byte unk[11];
+	stream->read(unk, 9);
+	//Common::hexdump(unk, 6);
+
+	#if 0
+	if (_vm->getPlatform() == Common::kPlatformMacintosh) {
+		stream->read(unk, 11);
+		//Common::hexdump(unk, 11);
+
+		if (_vm->getVersion() >= 5) {
+			stream->read(unk, 7);
+			//Common::hexdump(unk, 7);
+		}
+	}
+	#endif
+
+	for (int i = 0; i < CHANNEL_COUNT; i++) {
+		Sprite &sprite = *_sprites[i + 1];
+
+		sprite._x1 = stream->readByte();
+		sprite._enabled = (stream->readByte() != 0);
+		sprite._x2 = stream->readUint16();
+
+		sprite._flags = stream->readUint16();
+		sprite._ink = static_cast<InkType>(sprite._flags & 0x3f);
+
+		if (sprite._flags & 0x40)
+			sprite._trails = 1;
+		else
+			sprite._trails = 0;
+
+		sprite._castId = stream->readUint16();
+		sprite._startPoint.y = stream->readUint16();
+		sprite._startPoint.x = stream->readUint16();
+		sprite._height = stream->readUint16();
+		sprite._width = stream->readUint16();
+
+		debugC(kDebugLoading, 8, "%03d(%d)[%x,%x,%04x,%d/%d/%d/%d]", sprite._castId, sprite._enabled, sprite._x1, sprite._x2, sprite._flags, sprite._startPoint.x, sprite._startPoint.y, sprite._width, sprite._height);
+
+		if (_vm->getPlatform() == Common::kPlatformMacintosh && _vm->getVersion() >= 4) {
+			sprite._scriptId = stream->readUint16();
+			sprite._flags2 = stream->readByte(); // 0x40 editable, 0x80 moveable
+			sprite._unk2 = stream->readByte();
+
+			if (_vm->getVersion() >= 5)
+				sprite._unk3 = stream->readUint32();
+		}
+	}
+}
+
 void Frame::readMainChannels(Common::SeekableSubReadStreamEndian &stream, uint16 offset, uint16 size) {
 	uint16 finishPosition = offset + size;
 
diff --git a/engines/director/frame.h b/engines/director/frame.h
index 68eb1e3..694d3a7 100644
--- a/engines/director/frame.h
+++ b/engines/director/frame.h
@@ -35,6 +35,10 @@ class Sprite;
 
 #define CHANNEL_COUNT 24
 
+enum {
+	kChannelDataSize = (25 * 50)
+};
+
 enum TransitionType {
 	kTransNone,
 	kTransWipeRight,
@@ -97,6 +101,7 @@ struct PaletteInfo {
 	uint8 flags;
 	uint8 speed;
 	uint16 frameCount;
+	uint16 cycleCount;
 };
 
 
@@ -105,6 +110,7 @@ public:
 	Frame(DirectorEngine *vm);
 	Frame(const Frame &frame);
 	~Frame();
+	void readChannels(Common::ReadStreamEndian *stream);
 	void readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offset, uint16 size);
 	void prepareFrame(Score *score);
 	uint16 getSpriteIDFromPos(Common::Point pos);
@@ -123,7 +129,9 @@ private:
 	void drawMatteSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
 	void drawGhostSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
 	void drawReverseSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
+
 public:
+	byte _channelData[kChannelDataSize];
 	uint8 _actionId;
 	uint8 _transDuration;
 	uint8 _transArea; //1 - Whole Stage, 0 - Changing Area
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index b2b7654..2bb538a 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -23,6 +23,7 @@
 #include "common/system.h"
 #include "common/config-manager.h"
 #include "common/events.h"
+#include "common/memstream.h"
 
 #include "engines/util.h"
 #include "graphics/font.h"
@@ -262,10 +263,15 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 	size -= 4;
 
 	if (_vm->getVersion() > 3) {
-		stream.skip(16);
+		uint32 unk1 = stream.readUint32();
+		uint32 unk2 = stream.readUint32();
+		uint16 unk3 = stream.readUint16();
+		uint16 unk4 = stream.readUint16();
+		uint16 unk5 = stream.readUint16();
+		uint16 unk6 = stream.readUint16();
 		size -= 16;
 
-		warning("STUB: Score::loadFrames. Skipping initial bytes");
+		warning("STUB: Score::loadFrames. unk1: %x unk2: %x unk3: %x unk4: %x unk5: %x unk6: %x", unk1, unk2, unk3, unk4, unk5, unk6);
 		//Unknown, some bytes - constant (refer to contuinity).
 	}
 
@@ -275,12 +281,20 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 	Frame *initial = new Frame(_vm);
 	_frames.push_back(initial);
 
+	// This is a representation of the channelData. It gets overridden
+	// partically by channels, hence we keep it and read the score from left to right
+	//
+	// TODO Merge it with shared cast
+	byte channelData[kChannelDataSize];
+	memset(channelData, 0, kChannelDataSize);
+
 	while (size != 0) {
 		uint16 frameSize = stream.readUint16();
-		warning("++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size);
+		debugC(kDebugLoading, 8, "++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size);
 		size -= frameSize;
 		frameSize -= 2;
-		Frame *frame = new Frame(*_frames.back());
+
+		Frame *frame = new Frame(_vm);
 
 		while (frameSize != 0) {
 			if (_vm->getVersion() < 4) {
@@ -292,9 +306,17 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
 				channelOffset = stream.readUint16();
 				frameSize -= channelSize + 4;
 			}
-			frame->readChannel(stream, channelOffset, channelSize);
+
+			assert(channelOffset + channelSize < kChannelDataSize);
+
+			stream.read(&channelData[channelOffset], channelSize);
 		}
 
+		Common::MemoryReadStreamEndian *str = new Common::MemoryReadStreamEndian(channelData, ARRAYSIZE(channelData), stream.isBE());
+		frame->readChannels(str);
+
+		delete str;
+
 		_frames.push_back(frame);
 	}
 
diff --git a/engines/director/sprite.h b/engines/director/sprite.h
index e879f83..7cf7a8a 100644
--- a/engines/director/sprite.h
+++ b/engines/director/sprite.h
@@ -97,6 +97,14 @@ public:
 	Sprite();
 	Sprite(const Sprite &sprite);
 	~Sprite();
+
+	byte _x1;
+	uint16 _x2;
+	uint16 _scriptId;
+	byte _flags2;  // x40 editable, 0x80 moveable
+	byte _unk2;
+	uint32 _unk3;
+
 	bool _enabled;
 	byte _castId;
 	InkType _ink;


Commit: 85dd217cc0e031f75a1534da9f000b74ac7df143
    https://github.com/scummvm/scummvm/commit/85dd217cc0e031f75a1534da9f000b74ac7df143
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Fix D4+ score reading

Changed paths:
    engines/director/frame.cpp



diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 9adbf00..b840239 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -161,20 +161,21 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
 	_palette->cycleCount = stream->readUint16();
 
 	byte unk[11];
-	stream->read(unk, 9);
-	//Common::hexdump(unk, 6);
+	stream->read(unk, 6);
 
-	#if 0
 	if (_vm->getPlatform() == Common::kPlatformMacintosh) {
-		stream->read(unk, 11);
-		//Common::hexdump(unk, 11);
+		if (_vm->getVersion() < 4) {
+			stream->read(unk, 3);
+		} else {
+			stream->read(unk, 11);
+			//Common::hexdump(unk, 11);
 
-		if (_vm->getVersion() >= 5) {
-			stream->read(unk, 7);
-			//Common::hexdump(unk, 7);
+			if (_vm->getVersion() >= 5) {
+				stream->read(unk, 7);
+				//Common::hexdump(unk, 7);
+			}
 		}
 	}
-	#endif
 
 	for (int i = 0; i < CHANNEL_COUNT; i++) {
 		Sprite &sprite = *_sprites[i + 1];


Commit: 9e54089fe74940cf52bceefddb7e92928a4dcf28
    https://github.com/scummvm/scummvm/commit/9e54089fe74940cf52bceefddb7e92928a4dcf28
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-29T08:07:19-07:00

Commit Message:
DIRECTOR: Mark current cast loading method as D2

Changed paths:
    engines/director/resource.cpp
    engines/director/score.cpp
    engines/director/score.h



diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 61e46e9..bcf5db6 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -210,7 +210,15 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
 	Score *castScore = new Score(this, shardcst);
 
 	castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
-	castScore->loadCastData(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
+
+	if (getVersion() < 4)
+		castScore->loadCastDataD2(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
+
+	Common::Array<uint16> cast = shardcst->getResourceIDList(MKTAG('C','A','S','t'));
+	if (cast.size() > 0) {
+		for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
+			castScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator);
+	}
 
 	_sharedCasts = &castScore->_casts;
 
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 2bb538a..4519bfd 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -192,7 +192,7 @@ void Score::loadArchive() {
 
 	if (_vm->getVersion() < 4) {
 		assert(_movieArchive->hasResource(MKTAG('V','W','C','R'), 1024));
-		loadCastData(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024));
+		loadCastDataD2(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024));
 	}
 
 	if (_movieArchive->hasResource(MKTAG('V','W','A','C'), 1024)) {
@@ -209,12 +209,16 @@ void Score::loadArchive() {
 
 	Common::Array<uint16> vwci = _movieArchive->getResourceIDList(MKTAG('V','W','C','I'));
 	if (vwci.size() > 0) {
-		Common::Array<uint16>::iterator iterator;
-
-		for (iterator = vwci.begin(); iterator != vwci.end(); ++iterator)
+		for (Common::Array<uint16>::iterator iterator = vwci.begin(); iterator != vwci.end(); ++iterator)
 			loadCastInfo(*_movieArchive->getResource(MKTAG('V','W','C','I'), *iterator), *iterator);
 	}
 
+	Common::Array<uint16> cast = _movieArchive->getResourceIDList(MKTAG('C','A','S','t'));
+	if (cast.size() > 0) {
+		for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
+			loadCastData(*_movieArchive->getResource(MKTAG('C','A','S','t'), *iterator), *iterator);
+	}
+
 	Common::Array<uint16> stxt = _movieArchive->getResourceIDList(MKTAG('S','T','X','T'));
 	if (stxt.size() > 0) {
 		loadScriptText(*_movieArchive->getResource(MKTAG('S','T','X','T'), *stxt.begin()));
@@ -343,7 +347,7 @@ void Score::readVersion(uint32 rid) {
 	debug("Version: %d.%d", _versionMajor, _versionMinor);
 }
 
-void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
+void Score::loadCastDataD2(Common::SeekableSubReadStreamEndian &stream) {
 	debugC(1, kDebugLoading, "Score::loadCastData(). start: %d, end: %d", _castArrayStart, _castArrayEnd);
 
 	for (uint16 id = _castArrayStart; id <= _castArrayEnd; id++) {
@@ -388,6 +392,9 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
 	}
 }
 
+void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id) {
+}
+
 void Score::loadLabels(Common::SeekableSubReadStreamEndian &stream) {
 	_labels = new Common::SortedArray<Label *>(compareLabels);
 	uint16 count = stream.readUint16() + 1;
diff --git a/engines/director/score.h b/engines/director/score.h
index 83f2528..62c41cb 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -186,7 +186,8 @@ public:
 	void processEvents();
 	Archive *getArchive() const { return _movieArchive; };
 	void loadConfig(Common::SeekableSubReadStreamEndian &stream);
-	void loadCastData(Common::SeekableSubReadStreamEndian &stream);
+	void loadCastDataD2(Common::SeekableSubReadStreamEndian &stream);
+	void loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id);
 	void setCurrentFrame(uint16 frameId) { _currentFrame = frameId; }
 	int getCurrentFrame() { return _currentFrame; }
 	Common::String getMacName() const { return _macName; }





More information about the Scummvm-git-logs mailing list