@@ -2016,16 +2016,16 @@ qboolean Huff_ReadData(huffman_t *huffman, const char *filename) {
20162016 FS_SV_FOpenFileRead (filename, &fp);
20172017
20182018 if (!fp) {
2019- Com_DPrintf (" Failed to open huffman data from %s\n " , filename);
2019+ Com_DPrintf (" Failed to open huffman data from %s - recalculating Huffman code... \n " , filename);
20202020 return qfalse;
20212021 }
20222022
20232023 if (FS_Read (&version, sizeof (version), fp) != (int )sizeof (version))
20242024 goto corrupted;
20252025
20262026 if (version != HUFF_DATA_VERSION) {
2027- Com_DPrintf (" Huffman data in %s has incompatible version\n " , filename);
2028- return qfalse ;
2027+ Com_DPrintf (" Huffman data in %s has incompatible version - recalculating Huffman code... \n " , filename);
2028+ goto close ;
20292029 }
20302030
20312031 memset (&huffman->compressor , 0 , sizeof (huff_t ));
@@ -2038,7 +2038,7 @@ qboolean Huff_ReadData(huffman_t *huffman, const char *filename) {
20382038 checksum = LittleLong (checksum);
20392039 if (checksum != Com_BlockChecksum (&huffdata, sizeof (huffdata))) {
20402040 Com_Printf (S_COLOR_YELLOW " WARNING: %s checksum mismatch - recalculating Huffman code..." , filename);
2041- return qfalse ;
2041+ goto close ;
20422042 }
20432043 Huff_Deserialize (&huffdata, &huffman->compressor );
20442044
@@ -2049,13 +2049,18 @@ qboolean Huff_ReadData(huffman_t *huffman, const char *filename) {
20492049 checksum = LittleLong (checksum);
20502050 if (checksum != Com_BlockChecksum (&huffdata, sizeof (huffdata))) {
20512051 Com_Printf (S_COLOR_YELLOW " WARNING: %s checksum mismatch - recalculating Huffman code..." , filename);
2052- return qfalse ;
2052+ goto close ;
20532053 }
20542054 Huff_Deserialize (&huffdata, &huffman->decompressor );
20552055
2056+ FS_FCloseFile (fp);
2057+
20562058 return qtrue;
20572059corrupted:
20582060 Com_Printf (S_COLOR_YELLOW " WARNING: %s corrupted - recalculating Huffman code...\n " , filename);
2061+ close:
2062+ FS_FCloseFile (fp);
2063+
20592064 return qfalse;
20602065}
20612066
0 commit comments