diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-02-28 17:41:28 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-02-28 17:41:28 +0100 |
commit | 464d8e39e083a2f3a73f2c33a7b20036406541c8 (patch) | |
tree | 56fc8960ebf3fa92d1029f1a80bdda3ff766d6d5 /dep/CascLib/src/CascCommon.h | |
parent | 438d0c3089aaf48352e493ab0a007ef6ef15a276 (diff) |
Dep/CascLib: Update to ladislav-zezula/CascLib@07ab5f37ad282cc101d5c17793c550a0a6d4637f
Diffstat (limited to 'dep/CascLib/src/CascCommon.h')
-rw-r--r-- | dep/CascLib/src/CascCommon.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/dep/CascLib/src/CascCommon.h b/dep/CascLib/src/CascCommon.h index 97d69c97791..8e9f2ceae6c 100644 --- a/dep/CascLib/src/CascCommon.h +++ b/dep/CascLib/src/CascCommon.h @@ -23,6 +23,7 @@ #if defined(_DEBUG) && !defined(CASCLIB_NODEBUG) #define CASCLIB_DEBUG +//#define CASCLIB_WRITE_VERIFIED_FILENAMES // If defined, TRootHandler_WoW will save all files whose hashes are confirmed #endif #include "CascPort.h" @@ -109,14 +110,13 @@ typedef struct _CASC_BUILD_FILE } CASC_BUILD_FILE, *PCASC_BUILD_FILE; // Information about index file -struct CASC_INDEX +typedef struct _CASC_INDEX { CASC_BLOB FileData; LPTSTR szFileName; // Full name of the index file DWORD NewSubIndex; // New subindex DWORD OldSubIndex; // Old subindex -}; -typedef CASC_INDEX * PCASC_INDEX; +} CASC_INDEX, *PCASC_INDEX; // Normalized header of the index files. // Both version 1 and version 2 are converted to this structure @@ -277,6 +277,22 @@ struct TCascStorage hs->ClassName == CASC_MAGIC_STORAGE) ? hs : NULL; } + DWORD SetProductCodeName(LPCSTR szNewCodeName, size_t nLength = 0) + { + if(szCodeName == NULL && szNewCodeName != NULL) + { + // Make sure we have the length + if(nLength == 0) + nLength = strlen(szNewCodeName); + + // Allocate the code name buffer and copy from ANSI string + if((szCodeName = CASC_ALLOC<TCHAR>(nLength + 1)) == NULL) + return ERROR_NOT_ENOUGH_MEMORY; + CascStrCopy(szCodeName, nLength + 1, szNewCodeName, nLength); + } + return ERROR_SUCCESS; + } + // Class recognizer. Has constant value of 'CASCSTOR' (CASC_MAGIC_STORAGE) ULONGLONG ClassName; @@ -456,7 +472,7 @@ inline void FreeCascBlob(PCASC_BLOB pBlob) //----------------------------------------------------------------------------- // Text file parsing (CascFiles.cpp) -bool InvokeProgressCallback(TCascStorage * hs, LPCSTR szMessage, LPCSTR szObject, DWORD CurrentValue, DWORD TotalValue); +bool InvokeProgressCallback(TCascStorage * hs, CASC_PROGRESS_MSG Message, LPCSTR szObject, DWORD CurrentValue, DWORD TotalValue); DWORD GetFileSpanInfo(PCASC_CKEY_ENTRY pCKeyEntry, PULONGLONG PtrContentSize, PULONGLONG PtrEncodedSize = NULL); DWORD FetchCascFile(TCascStorage * hs, CPATH_TYPE PathType, LPBYTE pbEKey, LPCTSTR szExtension, CASC_PATH<TCHAR> & LocalPath, PCASC_ARCHIVE_INFO pArchiveInfo = NULL); DWORD CheckCascBuildFileExact(CASC_BUILD_FILE & BuildFile, LPCTSTR szLocalPath); |