Ticket #4298: sci_res_endian_fix.diff

File sci_res_endian_fix.diff, 603 bytes (added by SF/mthreepwood, 12 years ago)

Patch against latest trunk

  • resource.cpp

     
    996996                file.seek(resMap[type].wOffset);
    997997                for (int i = 0; i < resMap[type].wSize; i++) {
    998998                        uint16 number = file.readUint16LE();
    999                         file.read(&off, nEntrySize - 2);
     999                        if (nEntrySize == SCI11_RESMAP_ENTRIES_SIZE)
     1000                                off = file.readUint16LE() + (file.readByte() << 16);
     1001                        else
     1002                                off = file.readUint32LE();
     1003
    10001004                        if (file.ioFailed()) {
    10011005                                warning("Error while reading %s: ", map->location_name.c_str());
    10021006                                perror("");