From c4e0484271c8cbba97f552fe80905d0ea236dcda Mon Sep 17 00:00:00 2001 From: neuromancer Date: Fri, 15 Jul 2022 10:32:11 +0200 Subject: [PATCH] FREESCAPE: fixed parsing of global bytecode table --- engines/freescape/loaders/8bitBinaryLoader.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp index 713a218d90e..c2f106f8820 100644 --- a/engines/freescape/loaders/8bitBinaryLoader.cpp +++ b/engines/freescape/loaders/8bitBinaryLoader.cpp @@ -386,18 +386,12 @@ void FreescapeEngine::load8bitBinary(Common::SeekableReadStream *file, int offse uint8 startEntrance = file->readByte(); debug("Entrace area: %d", startEntrance); - file->seek(0x46, SEEK_CUR); + file->seek(offset + 0x46); // 0x46 uint16 globalSomething; globalSomething = file->readUint16LE(); debug("Pointer to something: %x\n", globalSomething); - if (_targetName.hasPrefix("driller")) { - file->seek(0x3b42); - for (int i = 0; i < 8; i++) - load8bitObject(file); - } - uint16 globalByteCodeTable; globalByteCodeTable = file->readUint16LE(); debug("GBCT: %d\n", globalByteCodeTable); @@ -419,6 +413,12 @@ void FreescapeEngine::load8bitBinary(Common::SeekableReadStream *file, int offse debug("%s", conditions->c_str()); } + if (_targetName.hasPrefix("driller")) { + file->seek(0x3b42); + for (int i = 0; i < 8; i++) + load8bitObject(file); + } + if (_targetName != "castlemaster") file->seek(offset + 0xc8); else