X-Git-Url: https://sfsrealm.hopto.org/projects/gitweb.cgi?p=SFmpqapi.git;a=blobdiff_plain;f=SFmpqapi.cpp;fp=SFmpqapi.cpp;h=5ca8bed47f42dc2ef0cff9033fea056a5f9b7da0;hp=4e87aef5bd19b0413f6f453721b31f27e7480a5e;hb=89eb0ac4c4ed931e796ceecd6287b57170cf9f98;hpb=cd187faac818f58fdfa7553ee966e9201cd7768f diff --git a/SFmpqapi.cpp b/SFmpqapi.cpp index 4e87aef..5ca8bed 100644 --- a/SFmpqapi.cpp +++ b/SFmpqapi.cpp @@ -3115,16 +3115,19 @@ MPQHANDLE GetFreeHashTableEntry(MPQHANDLE hMPQ, LPCSTR lpFileName, LCID FileLoca DWORD i=dwTablePos, nFirstFree = 0xFFFFFFFF; do { - if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)==0xFFFFFFFE && (nFirstFree == 0xFFFFFFFF || mpqOpenArc->lpHashTable[i].dwBlockTableIndex == 0xFFFFFFFF)) + if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)==0xFFFFFFFE) { - if (mpqOpenArc->lpHashTable[i].dwBlockTableIndex == 0xFFFFFFFF) + if (nFirstFree == 0xFFFFFFFF || mpqOpenArc->lpHashTable[i].dwBlockTableIndex == 0xFFFFFFFF) { - if (nFirstFree == 0xFFFFFFFF) - return (MPQHANDLE)&mpqOpenArc->lpHashTable[i]; - else - return (MPQHANDLE)&mpqOpenArc->lpHashTable[nFirstFree]; + if (mpqOpenArc->lpHashTable[i].dwBlockTableIndex == 0xFFFFFFFF) + { + if (nFirstFree == 0xFFFFFFFF) + return (MPQHANDLE)&mpqOpenArc->lpHashTable[i]; + else + return (MPQHANDLE)&mpqOpenArc->lpHashTable[nFirstFree]; + } + else nFirstFree = i; } - else nFirstFree = i; } else if (mpqOpenArc->lpHashTable[i].dwNameHashA==dwNameHashA && mpqOpenArc->lpHashTable[i].dwNameHashB==dwNameHashB && mpqOpenArc->lpHashTable[i].lcLocale==FileLocale) {