mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Dep/CascLib: Update to ladislav-zezula/CascLib@fb94421553
This commit is contained in:
@@ -121,6 +121,29 @@ static bool IsIndexFileName_V2(const TCHAR * szFileName)
|
||||
_tcsicmp(szFileName + 0x0A, _T(".idx")) == 0);
|
||||
}
|
||||
|
||||
static bool IsRootFile_Starcraft1(LPBYTE pbFileData, DWORD cbFileData)
|
||||
{
|
||||
LPBYTE pbFileEnd = pbFileData + cbFileData;
|
||||
LPBYTE pbHashName;
|
||||
LPBYTE pbHashEnd;
|
||||
|
||||
// Skip the file name
|
||||
while(pbFileData < pbFileEnd && pbFileData[0] != '|')
|
||||
pbFileData++;
|
||||
if(pbFileData[0] != '|')
|
||||
return false;
|
||||
|
||||
// Then, a MD5 must follow
|
||||
pbHashName = pbHashEnd = pbFileData + 1;
|
||||
while(pbHashEnd < pbFileEnd && pbHashEnd[0] != 0x0A)
|
||||
pbHashEnd++;
|
||||
if(pbHashEnd[0] != 0x0A)
|
||||
return false;
|
||||
|
||||
// The length must be exactly 32 characters
|
||||
return ((pbHashEnd - pbHashName) == 32);
|
||||
}
|
||||
|
||||
static bool IsCascIndexHeader_V1(LPBYTE pbFileData, DWORD cbFileData)
|
||||
{
|
||||
PFILE_INDEX_HEADER_V1 pIndexHeader = (PFILE_INDEX_HEADER_V1)pbFileData;
|
||||
@@ -913,7 +936,10 @@ static int LoadRootFile(TCascStorage * hs, DWORD dwLocaleMask)
|
||||
break;
|
||||
|
||||
default:
|
||||
nError = RootHandler_CreateWoW6(hs, pbRootFile, cbRootFile, dwLocaleMask);
|
||||
if(IsRootFile_Starcraft1(pbRootFile, cbRootFile))
|
||||
nError = RootHandler_CreateSC1(hs, pbRootFile, cbRootFile);
|
||||
else
|
||||
nError = RootHandler_CreateWoW6(hs, pbRootFile, cbRootFile, dwLocaleMask);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1123,6 +1149,10 @@ bool WINAPI CascGetStorageInfo(
|
||||
dwInfoValue = hs->dwBuildNumber;
|
||||
break;
|
||||
|
||||
case CascStorageInstalledLocales:
|
||||
dwInfoValue = hs->dwDefaultLocale;
|
||||
break;
|
||||
|
||||
default:
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user