From 06dac475502cf145e7d5c611bba148a0a31ee047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 4 Oct 2021 20:03:39 +0200 Subject: [PATCH] Code cleanup --- src/map/IMG/trefile.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/map/IMG/trefile.cpp b/src/map/IMG/trefile.cpp index 31aec96d..d66dd1af 100644 --- a/src/map/IMG/trefile.cpp +++ b/src/map/IMG/trefile.cpp @@ -72,13 +72,12 @@ bool TREFile::init() // Levels & subdivs info quint32 levelsOffset, levelsSize, subdivSize; - if (!(seek(hdl, _gmpOffset + 0x21) && readUInt32(hdl, levelsOffset) - && readUInt32(hdl, levelsSize) && readUInt32(hdl, _subdivOffset) - && readUInt32(hdl, subdivSize))) + if (!(readUInt32(hdl, levelsOffset) && readUInt32(hdl, levelsSize) + && readUInt32(hdl, _subdivOffset) && readUInt32(hdl, subdivSize))) return false; if (hdrLen > 0x9A) { - // TRE7 info + flags + // Extended objects (TRE7) info if (!(seek(hdl, _gmpOffset + 0x7C) && readUInt32(hdl, _extended.offset) && readUInt32(hdl, _extended.size) && readUInt16(hdl, _extended.itemSize) && readUInt32(hdl, _flags))) @@ -91,15 +90,15 @@ bool TREFile::init() } // Tile levels - if (levelsSize > 64 || !seek(hdl, levelsOffset)) - return false; quint8 levels[64]; - for (quint32 i = 0; i < levelsSize; i++) - if (!readByte(hdl, &levels[i])) - return false; + if (levelsSize > 64 || !(seek(hdl, levelsOffset) + && read(hdl, (char*)levels, levelsSize))) + return false; + if (locked) { quint32 key; - if (!seek(hdl, _gmpOffset + 0xAA) || !readUInt32(hdl, key)) + if (hdrLen < 0xAE || !(seek(hdl, _gmpOffset + 0xAA) + && readUInt32(hdl, key))) return false; demangle(levels, levelsSize, key); }