|
|
|
@ -1994,7 +1994,7 @@ struct LZOLoadFilter : LoadFilter {
|
|
|
|
|
byte out[LZO_BUFFER_SIZE + LZO_BUFFER_SIZE / 16 + 64 + 3 + sizeof(uint32) * 2];
|
|
|
|
|
uint32 tmp[2];
|
|
|
|
|
uint32 size;
|
|
|
|
|
lzo_uint len;
|
|
|
|
|
lzo_uint len = ssize;
|
|
|
|
|
|
|
|
|
|
/* Read header*/
|
|
|
|
|
if (this->chain->Read((byte*)tmp, sizeof(tmp)) != sizeof(tmp)) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE, "File read failed");
|
|
|
|
@ -2016,7 +2016,8 @@ struct LZOLoadFilter : LoadFilter {
|
|
|
|
|
if (tmp[0] != lzo_adler32(0, out, size + sizeof(uint32))) SlErrorCorrupt("Bad checksum");
|
|
|
|
|
|
|
|
|
|
/* Decompress */
|
|
|
|
|
lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL);
|
|
|
|
|
int ret = lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL);
|
|
|
|
|
if (ret != LZO_E_OK) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE);
|
|
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|