Browse Source

Clean up mpqapi_get_hash_index

pull/114/head
Anders Jenbo 7 years ago
parent
commit
87713db9ab
  1. 31
      Source/mpqapi.cpp

31
Source/mpqapi.cpp

@ -234,30 +234,17 @@ int mpqapi_get_hash_index_of_path(const char *pszName) // FetchHandle
int mpqapi_get_hash_index(short index, int hash_a, int hash_b, int locale)
{
int v4; // ecx
signed int v5; // eax
signed int v6; // edx
_HASHENTRY *v7; // ecx
int v8; // edi
int v10; // [esp+Ch] [ebp-8h]
int i; // [esp+10h] [ebp-4h]
v4 = index & 0x7FF;
v10 = hash_a;
v5 = 2048;
for (i = v4;; i = (i + 1) & 0x7FF) {
v7 = &sgpHashTbl[v4];
v8 = v7->block;
if (v8 == -1)
return -1;
v6 = v5--;
if (!v6)
return -1;
if (v7->hashcheck[0] == v10 && v7->hashcheck[1] == hash_b && v7->lcid == locale && v8 != -2)
int idx, i;
i = 2048;
for (idx = index & 0x7FF; sgpHashTbl[idx].block != -1; idx = (idx + 1) & 0x7FF) {
if (!i--)
break;
v4 = (i + 1) & 0x7FF;
if (sgpHashTbl[idx].hashcheck[0] == hash_a && sgpHashTbl[idx].hashcheck[1] == hash_b && sgpHashTbl[idx].lcid == locale && sgpHashTbl[idx].block != -2)
return idx;
}
return i;
return -1;
}
void mpqapi_remove_hash_entries(BOOL(__stdcall *fnGetName)(DWORD, char *))

Loading…
Cancel
Save