aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/engine/scene_eob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/engine/scene_eob.cpp')
-rw-r--r--engines/kyra/engine/scene_eob.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/engines/kyra/engine/scene_eob.cpp b/engines/kyra/engine/scene_eob.cpp
index cbe6055b79..fea8da5806 100644
--- a/engines/kyra/engine/scene_eob.cpp
+++ b/engines/kyra/engine/scene_eob.cpp
@@ -324,19 +324,19 @@ void EoBCoreEngine::loadVcnData(const char *file, const uint8 *cgaMapping) {
delete[] _vcnBlocks;
uint32 vcnSize = 0;
- if (_flags.platform == Common::kPlatformFMTowns) {
- _vcnBlocks = _res->fileData(Common::String::format(_vcnFilePattern.c_str(), _lastBlockDataFile).c_str(), &vcnSize);
- return;
- }
-
Common::String fn = Common::String::format(_vcnFilePattern.c_str(), _lastBlockDataFile);
- if (_flags.gameID == GI_EOB1 && _flags.platform == Common::kPlatformAmiga) {
+ if (_flags.platform == Common::kPlatformFMTowns) {
+ _vcnBlocks = _res->fileData(fn.c_str(), &vcnSize);
+ return;
+ } else if (_flags.gameID == GI_EOB1 && (_flags.platform == Common::kPlatformAmiga || _flags.platform == Common::kPlatformPC98)) {
Common::SeekableReadStream *in = _res->createReadStream(fn);
- vcnSize = in->readUint16LE() * (_vcnSrcBitsPerPixel << 3);
- _vcnBlocks = new uint8[vcnSize];
- _screen->getPalette(1).loadAmigaPalette(*in, 1, 5);
- in->seek(22, SEEK_CUR);
+ vcnSize = _flags.platform == Common::kPlatformPC98 ? in->size() : in->readUint16LE() * (_vcnSrcBitsPerPixel << 3);
+ _vcnBlocks = new uint8[vcnSize];
+ if (_flags.platform == Common::kPlatformAmiga) {
+ _screen->getPalette(1).loadAmigaPalette(*in, 1, 5);
+ in->seek(22, SEEK_CUR);
+ }
in->read(_vcnBlocks, vcnSize);
delete in;
return;