TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
CascMndx.h
Go to the documentation of this file.
1 /*****************************************************************************/
2 /* CascMndxRoot.h Copyright (c) Ladislav Zezula 2014 */
3 /*---------------------------------------------------------------------------*/
4 /* Interface file for MNDX structures */
5 /*---------------------------------------------------------------------------*/
6 /* Date Ver Who Comment */
7 /* -------- ---- --- ------- */
8 /* 15.05.14 1.00 Lad Created */
9 /*****************************************************************************/
10 
11 #ifndef __CASC_MNDX_ROOT__
12 #define __CASC_MNDX_ROOT__
13 
14 class TFileNameDatabase;
15 
16 #define CASC_MAX_MAR_FILES 3 // Maximum of 3 MAR files are supported
17 #define CASC_MNDX_SIGNATURE 0x58444E4D // 'MNDX'
18 
19 #define CASC_MAX_ENTRIES(type) (0xFFFFFFFF / sizeof(type))
20 
21 #define CASC_SEARCH_INITIALIZING 0
22 #define CASC_SEARCH_SEARCHING 2
23 #define CASC_SEARCH_FINISHED 4
24 
25 typedef struct _TRIPLET
26 {
30 } TRIPLET, *PTRIPLET;
31 
32 typedef struct _NAME_FRAG
33 {
34  DWORD ItemIndex; // Back index to various tables
35  DWORD NextIndex; // The following item index
36  DWORD FragOffs; // Higher 24 bits are 0xFFFFFF00 --> A single matching character
37  // Otherwise --> Offset to the name fragment table
39 
40 typedef struct _PATH_STOP
41 {
48 
49 typedef union _ARRAY_POINTER
50 {
51  LPBYTE Bytes; // Pointer to an octet
52  char * Chars; // Pointer to a character
53  PDWORD Uint32s; // Pointer to a DWORD
54  PTRIPLET Triplets; // Pointer to TRIPLET
55  PNAME_FRAG NameFrags; // Pointer to name fragment entry
56  PPATH_STOP PathStopPtr; // Pointer to path checkpoint
57  PULONGLONG Int64Ptr; // Pointer to 64-bit integer
58 
60 
61 // Simple access to various tables within TGenericArray
62 #define ByteArray ArrayPointer.Bytes
63 #define CharArray ArrayPointer.Chars
64 #define Uint32Array ArrayPointer.Uint32s
65 #define TripletArray ArrayPointer.Triplets
66 #define NameFragArray ArrayPointer.NameFrags
67 
69 {
70  public:
71 
72  TByteStream();
73 
74  void ExchangeWith(TByteStream & Target);
75  int GetBytes(DWORD cbByteCount, PARRAY_POINTER PtrArray);
76  int SkipBytes(DWORD cbByteCount);
77  int SetByteBuffer(LPBYTE pbNewMarData, DWORD cbNewMarData);
78  int GetValue_DWORD(DWORD & Value);
79  int GetValue_ItemCount(DWORD & NumberOfBytes, DWORD & ItemCount, DWORD ItemSize);
80  int GetArray_DWORDs(PARRAY_POINTER PtrArray, DWORD ItemCount);
81  int GetArray_Triplets(PARRAY_POINTER PtrArray, DWORD ItemCount);
82  int GetArray_NameTable(PARRAY_POINTER PtrArray, DWORD ItemCount);
83  int GetArray_BYTES(PARRAY_POINTER PtrArray, DWORD ItemCount);
84 
86  void * pvMappedFile;
91 };
92 
94 {
95  public:
96 
97  TGenericArray();
99 
100  int SetArrayValid();
101 
102  void ExchangeWith(TGenericArray & Target);
103  void CopyFrom(TGenericArray & Source);
104 
105  void SetMaxItems_CHARS(DWORD NewMaxItemCount);
106  void SetMaxItems_PATH_STOP(DWORD NewMaxItemCount);
107 
108  void InsertOneItem_CHAR(char OneChar);
109  void InsertOneItem_PATH_STOP(PATH_STOP & NewItem);
110 
111  void sub_19583A0(DWORD NewItemCount);
112 
113  int LoadDwordsArray(TByteStream & InStream);
114  int LoadTripletsArray(TByteStream & InStream);
115  int LoadByteArray(TByteStream & InStream);
116  int LoadFragmentInfos(TByteStream & InStream);
117  int LoadStrings(TByteStream & InStream);
118 
119  int LoadDwordsArray_Copy(TByteStream & InStream);
120  int LoadTripletsArray_Copy(TByteStream & InStream);
121  int LoadBytes_Copy(TByteStream & InStream);
122  int LoadFragmentInfos_Copy(TByteStream & InStream);
123  int LoadStringsWithCopy(TByteStream & InStream);
124 
127 
129  DWORD ItemCount; // Number of items in the array
130  DWORD MaxItemCount; // Capacity of the array
132 };
133 
135 {
136  public:
137 
138  TBitEntryArray();
139  ~TBitEntryArray();
140 
141  DWORD GetBitEntry(DWORD EntryIndex)
142  {
143  DWORD dwItemIndex = (EntryIndex * BitsPerEntry) >> 0x05;
144  DWORD dwStartBit = (EntryIndex * BitsPerEntry) & 0x1F;
145  DWORD dwEndBit = dwStartBit + BitsPerEntry;
146  DWORD dwResult;
147 
148  // If the end bit index is greater than 32,
149  // we also need to load from the next 32-bit item
150  if(dwEndBit > 0x20)
151  {
152  dwResult = (Uint32Array[dwItemIndex + 1] << (0x20 - dwStartBit)) | (Uint32Array[dwItemIndex] >> dwStartBit);
153  }
154  else
155  {
156  dwResult = Uint32Array[dwItemIndex] >> dwStartBit;
157  }
158 
159  // Now we also need to mask the result by the bit mask
160  return dwResult & EntryBitMask;
161  }
162 
163  void ExchangeWith(TBitEntryArray & Target);
164  int LoadFromStream(TByteStream & InStream);
165  int LoadFromStream_Exchange(TByteStream & InStream);
166 
170 };
171 
173 {
174  public:
175 
176  TStruct40();
177 
178  void InitSearchBuffers();
179 
181  TGenericArray PathStops; // Array of path checkpoints
182  DWORD ItemIndex; // Current name fragment: Index to various tables
185  DWORD SearchPhase; // 0 = initializing, 2 = searching, 4 = finished
186 };
187 
189 {
190  public:
191 
192  TMndxFindResult();
194 
195  int CreateStruct40();
196  void FreeStruct40();
197 
198  int SetSearchPath(const char * szNewSearchPath, size_t cchNewSearchPath);
199 
200  const char * szSearchMask; // Search mask without wioldcards
201  size_t cchSearchMask; // Length of the search mask
203  const char * szFoundPath; // Found path name
204  size_t cchFoundPath; // Length of the found path name
205  DWORD FileNameIndex; // Index of the file name
207 };
208 
210 {
211  public:
212 
213  TSparseArray();
214 
215  void ExchangeWith(TSparseArray & TargetObject);
216  int LoadFromStream(TByteStream & InStream);
217  int LoadFromStream_Exchange(TByteStream & InStream);
218 
219  // Returns true if the item at n-th position is present
221  {
222  return (ItemBits.Uint32Array[ItemIndex >> 0x05] & (1 << (ItemIndex & 0x1F)));
223  }
224 
225  DWORD GetItemValue(DWORD ItemIndex);
226 
227  TGenericArray ItemBits; // Bit array for each item (1 = item is present)
228  DWORD TotalItemCount; // Total number of items in the array
229  DWORD ValidItemCount; // Number of present items in the array
230  TGenericArray BaseValues; // Array of base values for item indexes >= 0x200
233 };
234 
236 {
237  public:
238 
241 
242  bool CheckNameFragment(TMndxFindResult * pStruct1C, DWORD dwFragOffs);
243  bool CheckAndCopyNameFragment(TMndxFindResult * pStruct1C, DWORD dwFragOffs);
244  void CopyNameFragment(TMndxFindResult * pStruct1C, DWORD dwFragOffs);
245 
246  void ExchangeWith(TNameIndexStruct & Target);
247  int LoadFromStream(TByteStream & InStream);
248  int LoadFromStream_Exchange(TByteStream & InStream);
249 
252 };
253 
255 {
256  public:
257 
258  TStruct10();
259 
260  void CopyFrom(TStruct10 & Target);
261  int sub_1956FD0(DWORD dwBitMask);
262  int sub_1957050(DWORD dwBitMask);
263  int sub_19572E0(DWORD dwBitMask);
264  int sub_1957800(DWORD dwBitMask);
265 
270 };
271 
273 {
274  public:
275 
278 
279  int FindFileInDatabase(TMndxFindResult * pStruct1C);
280  int sub_1956CE0(TMndxFindResult * pStruct1C, bool * pbFindResult);
281 
282  int GetFileNameCount(PDWORD PtrFileNameCount);
283  int CreateDatabase(LPBYTE pbMarData, DWORD cbMarData);
284  int SetDatabase(TFileNameDatabase * pNewDB);
285 
287 };
288 
290 {
291  public:
292 
294 
295  void ExchangeWith(TFileNameDatabase & Target);
296  int LoadFromStream(TByteStream & InStream);
297  int LoadFromStream_Exchange(TByteStream & InStream);
298 
299  DWORD sub_1959CB0(DWORD dwHashValue);
300  DWORD sub_1959F50(DWORD arg_0);
301 
302  // Retrieves the name fragment distance
303  // HOTS: 19573D0/inlined
304  DWORD GetNameFragmentOffsetEx(DWORD LoBitsIndex, DWORD HiBitsIndex)
305  {
306  return (FrgmDist_HiBits.GetBitEntry(HiBitsIndex) << 0x08) | FrgmDist_LoBits.ByteArray[LoBitsIndex];
307  }
308 
309  // HOTS: 1957350, inlined
311  {
312  return GetNameFragmentOffsetEx(LoBitsIndex, Struct68_D0.GetItemValue(LoBitsIndex));
313  }
314 
315  bool sub_1957B80(TMndxFindResult * pStruct1C, DWORD dwKey);
316  bool CheckNextPathFragment(TMndxFindResult * pStruct1C);
317  bool FindFileInDatabase(TMndxFindResult * pStruct1C);
318 
319  void sub_1958D70(TMndxFindResult * pStruct1C, DWORD arg_4);
320  bool sub_1959010(TMndxFindResult * pStruct1C, DWORD arg_4);
321  bool sub_1958B00(TMndxFindResult * pStruct1C);
322  bool sub_1959460(TMndxFindResult * pStruct1C);
323 
325  TSparseArray FileNameIndexes; // Array of file name indexes
327 
328  // This pair of arrays serves for fast conversion from name hash to fragment offset
329  TGenericArray FrgmDist_LoBits; // Array of lower 8 bits of name fragment offset
330  TBitEntryArray FrgmDist_HiBits; // Array of upper x bits of name fragment offset
331 
334 
336 
341 };
342 
343 typedef struct _MAR_FILE
344 {
348 } MAR_FILE, *PMAR_FILE;
349 
350 //-----------------------------------------------------------------------------
351 // Macros
352 
353 // Returns nonzero if the name fragment match is a single-char match
354 inline bool IS_SINGLE_CHAR_MATCH(TGenericArray & Table, DWORD ItemIndex)
355 {
356  return ((Table.NameFragArray[ItemIndex].FragOffs & 0xFFFFFF00) == 0xFFFFFF00);
357 }
358 
359 #endif // __CASC_MNDX_ROOT__
DWORD GetItemValue(DWORD ItemIndex)
Definition: CascRootFile_Mndx.cpp:1034
DWORD sub_1959CB0(DWORD dwHashValue)
Definition: CascRootFile_Mndx.cpp:1485
int sub_1957800(DWORD dwBitMask)
Definition: CascRootFile_Mndx.cpp:1429
int GetArray_NameTable(PARRAY_POINTER PtrArray, DWORD ItemCount)
Definition: CascRootFile_Mndx.cpp:395
struct _PATH_STOP * PPATH_STOP
Definition: CascMndx.h:49
int FindFileInDatabase(TMndxFindResult *pStruct1C)
Definition: CascRootFile_Mndx.cpp:2665
void sub_19583A0(DWORD NewItemCount)
Definition: CascRootFile_Mndx.cpp:615
TStruct10()
Definition: CascRootFile_Mndx.cpp:1324
struct _NAME_FRAG NAME_FRAG
void * HANDLE
Definition: CascPort.h:146
DWORD field_8
Definition: CascMndx.h:44
const char * szSearchMask
Definition: CascMndx.h:200
ARRAY_POINTER FirstValid
Definition: CascMndx.h:126
int SetSearchPath(const char *szNewSearchPath, size_t cchNewSearchPath)
Definition: CascRootFile_Mndx.cpp:307
DWORD * PDWORD
Definition: CascPort.h:151
Definition: CascMndx.h:289
struct _MAR_FILE * PMAR_FILE
DWORD BitsPerEntry
Definition: CascMndx.h:167
DWORD sub_1959F50(DWORD arg_0)
Definition: CascRootFile_Mndx.cpp:1688
~TNameIndexStruct()
Definition: CascRootFile_Mndx.cpp:1122
TByteStream()
Definition: CascRootFile_Mndx.cpp:326
void CopyNameFragment(TMndxFindResult *pStruct1C, DWORD dwFragOffs)
Definition: CascRootFile_Mndx.cpp:1254
ARRAY_POINTER DataBuffer
Definition: CascMndx.h:125
DWORD ItemIndex
Definition: CascMndx.h:34
DWORD field_C
Definition: CascMndx.h:45
TNameIndexStruct()
Definition: CascRootFile_Mndx.cpp:1118
DWORD CharIndex
Definition: CascMndx.h:183
int CreateStruct40()
Definition: CascRootFile_Mndx.cpp:290
DWORD GetBitEntry(DWORD EntryIndex)
Definition: CascMndx.h:141
Definition: CascMndx.h:272
void ExchangeWith(TNameIndexStruct &Target)
Definition: CascRootFile_Mndx.cpp:1286
Definition: CascMndx.h:172
TByteStream MarStream
Definition: CascMndx.h:340
DWORD field_214
Definition: CascMndx.h:338
TStruct40 * pStruct40
Definition: CascMndx.h:206
struct _NAME_FRAG * PNAME_FRAG
bool sub_1959460(TMndxFindResult *pStruct1C)
Definition: CascRootFile_Mndx.cpp:2245
ARRAY_POINTER ArrayPointer
Definition: CascMndx.h:128
void ExchangeWith(TGenericArray &Target)
Definition: CascRootFile_Mndx.cpp:483
struct _TRIPLET * PTRIPLET
DWORD BaseValue
Definition: CascMndx.h:27
TStruct10 Struct10
Definition: CascMndx.h:339
int GetArray_DWORDs(PARRAY_POINTER PtrArray, DWORD ItemCount)
Definition: CascRootFile_Mndx.cpp:362
DWORD field_C
Definition: CascMndx.h:88
int SetDatabase(TFileNameDatabase *pNewDB)
Definition: CascRootFile_Mndx.cpp:2741
DWORD ItemCount
Definition: CascMndx.h:184
int sub_1956FD0(DWORD dwBitMask)
Definition: CascRootFile_Mndx.cpp:1342
~TFileNameDatabasePtr()
Definition: CascRootFile_Mndx.cpp:2659
int LoadStringsWithCopy(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:814
int CreateDatabase(LPBYTE pbMarData, DWORD cbMarData)
Definition: CascRootFile_Mndx.cpp:2714
int GetArray_BYTES(PARRAY_POINTER PtrArray, DWORD ItemCount)
Definition: CascRootFile_Mndx.cpp:384
int LoadFragmentInfos(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:714
Definition: CascMndx.h:235
void * pvMappedFile
Definition: CascMndx.h:86
int LoadDwordsArray_Copy(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:758
DWORD field_0
Definition: CascMndx.h:266
DWORD ItemIndex
Definition: CascMndx.h:182
int GetValue_DWORD(DWORD &Value)
Definition: CascRootFile_Mndx.cpp:428
TGenericArray ArrayDwords_50
Definition: CascMndx.h:232
Definition: CascMndx.h:209
void InsertOneItem_CHAR(char OneChar)
Definition: CascRootFile_Mndx.cpp:563
TSparseArray Struct68
Definition: CascMndx.h:251
DWORD TotalEntries
Definition: CascMndx.h:169
int LoadFromStream(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:982
int LoadByteArray(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:692
DWORD field_10
Definition: CascMndx.h:46
BYTE * LPBYTE
Definition: CascPort.h:152
bool CheckNameFragment(TMndxFindResult *pStruct1C, DWORD dwFragOffs)
Definition: CascRootFile_Mndx.cpp:1126
DWORD Value3
Definition: CascMndx.h:29
#define Uint32Array
Definition: CascMndx.h:64
struct _TRIPLET TRIPLET
int LoadFromStream(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:851
void ExchangeWith(TByteStream &Target)
Definition: CascRootFile_Mndx.cpp:337
PULONGLONG Int64Ptr
Definition: CascMndx.h:57
void CopyFrom(TStruct10 &Target)
Definition: CascRootFile_Mndx.cpp:1333
TGenericArray BaseValues
Definition: CascMndx.h:230
DWORD field_8
Definition: CascMndx.h:268
Definition: CascMndx.h:93
int LoadFromStream_Exchange(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:1020
int LoadTripletsArray(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:670
TFileNameDatabase()
Definition: CascRootFile_Mndx.cpp:1446
TStruct40()
Definition: CascRootFile_Mndx.cpp:902
Definition: CascMndx.h:134
void sub_1958D70(TMndxFindResult *pStruct1C, DWORD arg_4)
Definition: CascRootFile_Mndx.cpp:2084
TFileNameDatabasePtr * pDatabasePtr
Definition: CascMndx.h:345
TBitEntryArray()
Definition: CascRootFile_Mndx.cpp:830
unsigned long long * PULONGLONG
Definition: CascPort.h:145
PDWORD Uint32s
Definition: CascMndx.h:53
Definition: CascMndx.h:343
TGenericArray ArrayDwords_38
Definition: CascMndx.h:231
void SetMaxItems_CHARS(DWORD NewMaxItemCount)
Definition: CascRootFile_Mndx.cpp:515
Definition: CascMndx.h:188
HANDLE hMap
Definition: CascMndx.h:90
DWORD cbMarData
Definition: CascMndx.h:347
int LoadFromStream(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:2557
int GetFileNameCount(PDWORD PtrFileNameCount)
Definition: CascRootFile_Mndx.cpp:2704
DWORD FileNameIndex
Definition: CascMndx.h:205
bool CheckNextPathFragment(TMndxFindResult *pStruct1C)
Definition: CascRootFile_Mndx.cpp:1874
int LoadFragmentInfos_Copy(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:800
DWORD FragOffs
Definition: CascMndx.h:36
int LoadBytes_Copy(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:786
TGenericArray NameFragTable
Definition: CascMndx.h:335
bool bIsValidArray
Definition: CascMndx.h:131
TGenericArray FrgmDist_LoBits
Definition: CascMndx.h:329
TFileNameDatabasePtr()
Definition: CascRootFile_Mndx.cpp:2654
DWORD field_8
Definition: CascMndx.h:202
Definition: CascMndx.h:254
~TMndxFindResult()
Definition: CascRootFile_Mndx.cpp:284
int GetBytes(DWORD cbByteCount, PARRAY_POINTER PtrArray)
Definition: CascRootFile_Mndx.cpp:347
TBitEntryArray FrgmDist_HiBits
Definition: CascMndx.h:330
Definition: CascMndx.h:32
void SetMaxItems_PATH_STOP(DWORD NewMaxItemCount)
Definition: CascRootFile_Mndx.cpp:539
int sub_1957050(DWORD dwBitMask)
Definition: CascRootFile_Mndx.cpp:1375
DWORD Value2
Definition: CascMndx.h:28
int sub_19572E0(DWORD dwBitMask)
Definition: CascRootFile_Mndx.cpp:1396
~TGenericArray()
Definition: CascRootFile_Mndx.cpp:476
DWORD ItemCount
Definition: CascMndx.h:129
DWORD field_4
Definition: CascMndx.h:43
int sub_1956CE0(TMndxFindResult *pStruct1C, bool *pbFindResult)
Definition: CascRootFile_Mndx.cpp:2684
int LoadFromStream_Exchange(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:2624
PTRIPLET Triplets
Definition: CascMndx.h:54
TGenericArray NameFragments
Definition: CascMndx.h:250
TGenericArray array_00
Definition: CascMndx.h:180
TNameIndexStruct IndexStruct_174
Definition: CascMndx.h:332
unsigned int DWORD
Definition: CascPort.h:139
DWORD IsItemPresent(DWORD ItemIndex)
Definition: CascMndx.h:220
PPATH_STOP PathStopPtr
Definition: CascMndx.h:56
Definition: CascMndx.h:25
TFileNameDatabase * pDB
Definition: CascMndx.h:286
DWORD NameFragIndexMask
Definition: CascMndx.h:337
TFileNameDatabasePtr NextDB
Definition: CascMndx.h:333
int GetValue_ItemCount(DWORD &NumberOfBytes, DWORD &ItemCount, DWORD ItemSize)
Definition: CascRootFile_Mndx.cpp:441
LPBYTE Bytes
Definition: CascMndx.h:51
DWORD TotalItemCount
Definition: CascMndx.h:228
TSparseArray()
Definition: CascRootFile_Mndx.cpp:965
DWORD GetNameFragmentOffset(DWORD LoBitsIndex)
Definition: CascMndx.h:310
DWORD cbByteData
Definition: CascMndx.h:87
PNAME_FRAG NameFrags
Definition: CascMndx.h:55
void CopyFrom(TGenericArray &Source)
Definition: CascRootFile_Mndx.cpp:493
int LoadDwordsArray(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:648
DWORD field_4
Definition: CascMndx.h:267
Definition: CascMndx.h:68
Definition: CascMndx.h:40
TSparseArray FileNameIndexes
Definition: CascMndx.h:325
TMndxFindResult()
Definition: CascRootFile_Mndx.cpp:272
void ExchangeWith(TBitEntryArray &Target)
Definition: CascRootFile_Mndx.cpp:841
void ExchangeWith(TSparseArray &TargetObject)
Definition: CascRootFile_Mndx.cpp:972
void InsertOneItem_PATH_STOP(PATH_STOP &NewItem)
Definition: CascRootFile_Mndx.cpp:589
int LoadTripletsArray_Copy(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:772
DWORD GetNameFragmentOffsetEx(DWORD LoBitsIndex, DWORD HiBitsIndex)
Definition: CascMndx.h:304
void InitSearchBuffers()
Definition: CascRootFile_Mndx.cpp:911
DWORD field_C
Definition: CascMndx.h:269
DWORD ItemIndex
Definition: CascMndx.h:42
DWORD EntryBitMask
Definition: CascMndx.h:168
int SkipBytes(DWORD cbByteCount)
Definition: CascRootFile_Mndx.cpp:406
const char * szFoundPath
Definition: CascMndx.h:203
int SetByteBuffer(LPBYTE pbNewMarData, DWORD cbNewMarData)
Definition: CascRootFile_Mndx.cpp:414
char * Chars
Definition: CascMndx.h:52
int LoadFromStream_Exchange(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:1308
size_t cchFoundPath
Definition: CascMndx.h:204
int GetArray_Triplets(PARRAY_POINTER PtrArray, DWORD ItemCount)
Definition: CascRootFile_Mndx.cpp:373
void FreeStruct40()
Definition: CascRootFile_Mndx.cpp:299
DWORD MaxItemCount
Definition: CascMndx.h:130
int LoadFromStream_Exchange(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:886
LPBYTE pbMarData
Definition: CascMndx.h:346
TSparseArray Struct68_00
Definition: CascMndx.h:324
int SetArrayValid()
Definition: CascRootFile_Mndx.cpp:504
TGenericArray ItemBits
Definition: CascMndx.h:227
bool sub_1959010(TMndxFindResult *pStruct1C, DWORD arg_4)
Definition: CascRootFile_Mndx.cpp:2155
LPBYTE pbByteData
Definition: CascMndx.h:85
union _ARRAY_POINTER ARRAY_POINTER
void ExchangeWith(TFileNameDatabase &Target)
Definition: CascRootFile_Mndx.cpp:1453
DWORD SearchPhase
Definition: CascMndx.h:185
bool CheckAndCopyNameFragment(TMndxFindResult *pStruct1C, DWORD dwFragOffs)
Definition: CascRootFile_Mndx.cpp:1178
union _ARRAY_POINTER * PARRAY_POINTER
bool IS_SINGLE_CHAR_MATCH(TGenericArray &Table, DWORD ItemIndex)
Definition: CascMndx.h:354
TSparseArray Struct68_D0
Definition: CascMndx.h:326
struct _PATH_STOP PATH_STOP
struct _MAR_FILE MAR_FILE
int LoadStrings(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:736
TGenericArray()
Definition: CascRootFile_Mndx.cpp:466
bool FindFileInDatabase(TMndxFindResult *pStruct1C)
Definition: CascRootFile_Mndx.cpp:2528
TGenericArray PathStops
Definition: CascMndx.h:181
DWORD ValidItemCount
Definition: CascMndx.h:229
~TBitEntryArray()
Definition: CascRootFile_Mndx.cpp:837
HANDLE hFile
Definition: CascMndx.h:89
DWORD NextIndex
Definition: CascMndx.h:35
bool sub_1957B80(TMndxFindResult *pStruct1C, DWORD dwKey)
Definition: CascRootFile_Mndx.cpp:1992
bool sub_1958B00(TMndxFindResult *pStruct1C)
Definition: CascRootFile_Mndx.cpp:2416
size_t cchSearchMask
Definition: CascMndx.h:201
int LoadFromStream(TByteStream &InStream)
Definition: CascRootFile_Mndx.cpp:1296