base: DestinyCore upstream @2d631f4e (fork SylvaniaCore ; sql/old retire)
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
/*****************************************************************************/
|
||||
/* RootHandler.h Copyright (c) Ladislav Zezula 2015 */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Interface for root handlers */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Date Ver Who Comment */
|
||||
/* -------- ---- --- ------- */
|
||||
/* 09.03.15 1.00 Lad Created */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef __ROOT_HANDLER_H__
|
||||
#define __ROOT_HANDLER_H__
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Defines
|
||||
|
||||
#define CASC_MNDX_ROOT_SIGNATURE 0x58444E4D // 'MNDX'
|
||||
#define CASC_TVFS_ROOT_SIGNATURE 0x53465654 // 'TVFS'
|
||||
#define CASC_DIABLO3_ROOT_SIGNATURE 0x8007D0C4
|
||||
#define CASC_WOW82_ROOT_SIGNATURE 0x4D465354 // 'TSFM', WoW since 8.2
|
||||
|
||||
#define DUMP_LEVEL_ROOT_FILE 1 // Dump root file
|
||||
#define DUMP_LEVEL_ENCODING_FILE 2 // Dump root file + encoding file
|
||||
#define DUMP_LEVEL_INDEX_ENTRIES 3 // Dump root file + encoding file + index entries
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Class for generic root handler
|
||||
|
||||
struct TRootHandler
|
||||
{
|
||||
public:
|
||||
|
||||
TRootHandler()
|
||||
{
|
||||
dwFeatures = 0;
|
||||
}
|
||||
|
||||
virtual ~TRootHandler()
|
||||
{}
|
||||
|
||||
// Inserts new file name to the root handler
|
||||
// szFileName - Pointer to the file name
|
||||
// pCKeyEntry - Pointer to the CASC_CKEY_ENTRY for the file
|
||||
virtual int Insert(const char * /* szFileName */, PCASC_CKEY_ENTRY /* pCKeyEntry */)
|
||||
{
|
||||
return ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
// Searches the file by file name
|
||||
// hs - Pointer to the storage structure
|
||||
// szFileName - Pointer to the file name
|
||||
virtual PCASC_CKEY_ENTRY GetFile(struct TCascStorage * /* hs */, const char * /* szFileName */)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Searches the file by file data id
|
||||
// hs - Pointer to the storage structure
|
||||
// FileDataId - File data id
|
||||
virtual PCASC_CKEY_ENTRY GetFile(struct TCascStorage * /* hs */, DWORD /* FileDataId */)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Performs find-next-file operation
|
||||
// pSearch - Pointer to the initialized search structure
|
||||
// pFindData - Pointer to output structure that will contain the information
|
||||
virtual PCASC_CKEY_ENTRY Search(struct TCascSearch * /* pSearch */, struct _CASC_FIND_DATA * /* pFindData */)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Returns advanced info from the root file entry.
|
||||
// pCKeyEntry - CKey/EKey, depending on which type the root handler provides
|
||||
// pFileInfo - Pointer to CASC_FILE_FULL_INFO structure
|
||||
virtual bool GetInfo(PCASC_CKEY_ENTRY /* pCKeyEntry */, struct _CASC_FILE_FULL_INFO * /* pFileInfo */)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DWORD GetFeatures()
|
||||
{
|
||||
return dwFeatures;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
DWORD dwFeatures; // CASC features. See CASC_FEATURE_XXX
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Class for root handler that has basic mapping of FileName -> CASC_FILE_NODE
|
||||
|
||||
struct TFileTreeRoot : public TRootHandler
|
||||
{
|
||||
TFileTreeRoot(DWORD FileTreeFlags);
|
||||
virtual ~TFileTreeRoot();
|
||||
|
||||
int Insert(const char * szFileName, PCASC_CKEY_ENTRY pCKeyEntry);
|
||||
|
||||
PCASC_CKEY_ENTRY GetFile(struct TCascStorage * hs, const char * szFileName);
|
||||
PCASC_CKEY_ENTRY GetFile(struct TCascStorage * hs, DWORD FileDataId);
|
||||
PCASC_CKEY_ENTRY Search(struct TCascSearch * pSearch, struct _CASC_FIND_DATA * pFindData);
|
||||
bool GetInfo(PCASC_CKEY_ENTRY pCKeyEntry, struct _CASC_FILE_FULL_INFO * pFileInfo);
|
||||
|
||||
protected:
|
||||
|
||||
CASC_FILE_TREE FileTree;
|
||||
};
|
||||
|
||||
#endif // __ROOT_HANDLER_H__
|
||||
Reference in New Issue
Block a user