Ticket #2716: indy3towns.diff
File indy3towns.diff, 1.5 KB (added by , 18 years ago) |
---|
-
engines/scumm/resource_v4.cpp
47 47 if (_fileHandle->ioFailed()) 48 48 break; 49 49 50 printf("File pos %d ID %c%c\n", _fileHandle->pos(), blocktype & 0xFF, blocktype >> 8); 50 51 switch (blocktype) { 51 52 case 0x4E52: // 'NR' 52 53 _fileHandle->readUint16LE(); … … 65 66 break; 66 67 case 0x4F30: // 'O0' 67 68 _numGlobalObjects = _fileHandle->readUint16LE(); 69 70 if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformFMTowns) 71 itemsize += 32; 68 72 break; 69 73 } 70 74 _fileHandle->seek(itemsize - 8, SEEK_CUR); … … 121 125 break; 122 126 123 127 default: 124 // FIXME: this is a little hack because Indy3 FM-TOWNS has 125 // 32 extra bytes of unknown meaning appended to 00.LFL 126 if (!(_game.id == GID_INDY3 && _game.platform == Common::kPlatformFMTowns)) 127 error("Bad ID %c%c found in directory!", blocktype & 0xFF, blocktype >> 8); 128 return; 128 error("Bad ID %c%c found in directory!", blocktype & 0xFF, blocktype >> 8); 129 129 } 130 130 } 131 131 closeRoom(); … … 188 188 _objectOwnerTable[i] = tmp & OF_OWNER_MASK; 189 189 _objectStateTable[i] = tmp >> OF_STATE_SHL; 190 190 } 191 192 // FIXME: Indy3 FM-TOWNS has 32 extra bytes of unknown meaning 193 // appended to 00.LFL 194 if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformFMTowns) 195 _fileHandle->seek(32, SEEK_CUR); 191 196 } 192 197 193 198