Added
Link Here
|
1 |
--- HLLib/SGAFile.cpp.orig 2021-05-29 21:01:07 UTC |
2 |
+++ HLLib/SGAFile.cpp |
3 |
@@ -301,37 +301,37 @@ CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeade |
4 |
template<typename TSGAHeader, typename TSGADirectoryHeader, typename TSGASection, typename TSGAFolder, typename TSGAFile> |
5 |
hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::MapDataStructures() |
6 |
{ |
7 |
- if(!this->File.pMapping->Map(this->pHeaderDirectoryView, sizeof(SGAHeader), static_cast<const SGAHeader *>(this->File.pHeader)->uiHeaderLength)) |
8 |
+ if(!this->File.pMapping->Map(this->pHeaderDirectoryView, sizeof(TSGAHeader), static_cast<const TSGAHeader *>(this->File.pHeader)->uiHeaderLength)) |
9 |
{ |
10 |
return hlFalse; |
11 |
} |
12 |
|
13 |
- this->pDirectoryHeader = static_cast<const SGADirectoryHeader *>(this->pHeaderDirectoryView->GetView()); |
14 |
+ this->pDirectoryHeader = static_cast<const TSGADirectoryHeader *>(this->pHeaderDirectoryView->GetView()); |
15 |
|
16 |
- if(this->pDirectoryHeader->uiSectionCount > 0 && this->pDirectoryHeader->uiSectionOffset + sizeof(SGASection) * this->pDirectoryHeader->uiSectionCount > static_cast<const SGAHeader *>(this->File.pHeader)->uiHeaderLength) |
17 |
+ if(this->pDirectoryHeader->uiSectionCount > 0 && this->pDirectoryHeader->uiSectionOffset + sizeof(TSGASection) * this->pDirectoryHeader->uiSectionCount > static_cast<const TSGAHeader *>(this->File.pHeader)->uiHeaderLength) |
18 |
{ |
19 |
LastError.SetErrorMessage("Invalid file: the file map is too small for section data."); |
20 |
return hlFalse; |
21 |
} |
22 |
- if(this->pDirectoryHeader->uiFolderCount > 0 && this->pDirectoryHeader->uiFolderOffset + sizeof(SGAFolder) * this->pDirectoryHeader->uiFolderCount > static_cast<const SGAHeader *>(this->File.pHeader)->uiHeaderLength) |
23 |
+ if(this->pDirectoryHeader->uiFolderCount > 0 && this->pDirectoryHeader->uiFolderOffset + sizeof(TSGAFolder) * this->pDirectoryHeader->uiFolderCount > static_cast<const TSGAHeader *>(this->File.pHeader)->uiHeaderLength) |
24 |
{ |
25 |
LastError.SetErrorMessage("Invalid file: the file map is too small for folder data."); |
26 |
return hlFalse; |
27 |
} |
28 |
- if(this->pDirectoryHeader->uiFileCount > 0 && this->pDirectoryHeader->uiFileOffset + sizeof(SGAFile) * this->pDirectoryHeader->uiFileCount > static_cast<const SGAHeader *>(this->File.pHeader)->uiHeaderLength) |
29 |
+ if(this->pDirectoryHeader->uiFileCount > 0 && this->pDirectoryHeader->uiFileOffset + sizeof(TSGAFile) * this->pDirectoryHeader->uiFileCount > static_cast<const TSGAHeader *>(this->File.pHeader)->uiHeaderLength) |
30 |
{ |
31 |
LastError.SetErrorMessage("Invalid file: the file map is too small for file data."); |
32 |
return hlFalse; |
33 |
} |
34 |
- if(this->pDirectoryHeader->uiStringTableOffset > static_cast<const SGAHeader *>(this->File.pHeader)->uiHeaderLength) |
35 |
+ if(this->pDirectoryHeader->uiStringTableOffset > static_cast<const TSGAHeader *>(this->File.pHeader)->uiHeaderLength) |
36 |
{ |
37 |
LastError.SetErrorMessage("Invalid file: the file map is too small for string table data."); |
38 |
return hlFalse; |
39 |
} |
40 |
|
41 |
- this->lpSections = reinterpret_cast<const SGASection *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiSectionOffset); |
42 |
- this->lpFolders = reinterpret_cast<const SGAFolder *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiFolderOffset); |
43 |
- this->lpFiles = reinterpret_cast<const SGAFile *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiFileOffset); |
44 |
+ this->lpSections = reinterpret_cast<const TSGASection *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiSectionOffset); |
45 |
+ this->lpFolders = reinterpret_cast<const TSGAFolder *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiFolderOffset); |
46 |
+ this->lpFiles = reinterpret_cast<const TSGAFile *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiFileOffset); |
47 |
this->lpStringTable = reinterpret_cast<const hlChar *>(reinterpret_cast<const hlByte *>(this->pDirectoryHeader) + this->pDirectoryHeader->uiStringTableOffset); |
48 |
|
49 |
return hlTrue; |
50 |
@@ -352,7 +352,7 @@ hlVoid CSGAFile::CSGADirectory<TSGAHeader, TSGADirecto |
51 |
template<typename TSGAHeader, typename TSGADirectoryHeader, typename TSGASection, typename TSGAFolder, typename TSGAFile> |
52 |
CDirectoryFolder *CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::CreateRoot() |
53 |
{ |
54 |
- CDirectoryFolder *pRoot = new CDirectoryFolder(&File); |
55 |
+ CDirectoryFolder *pRoot = new CDirectoryFolder(&this->File); |
56 |
|
57 |
for(hlUInt i = 0; i < this->pDirectoryHeader->uiSectionCount; i++) |
58 |
{ |
59 |
@@ -558,7 +558,7 @@ hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirecto |
60 |
case HL_ITEM_FILE: |
61 |
{ |
62 |
const CDirectoryFile *pFile = static_cast<const CDirectoryFile *>(pItem); |
63 |
- const SGAFile &File = this->lpFiles[pFile->GetID()]; |
64 |
+ const TSGAFile &File = this->lpFiles[pFile->GetID()]; |
65 |
switch(eAttribute) |
66 |
{ |
67 |
case HL_SGA_ITEM_SECTION_ALIAS: |
68 |
@@ -613,7 +613,7 @@ template<typename TSGAHeader, typename TSGADirectoryHe |
69 |
hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::GetFileExtractableInternal(const CDirectoryFile *pFile, hlBool &bExtractable) const |
70 |
{ |
71 |
#if !USE_ZLIB |
72 |
- const SGAFile &File = this->lpFiles[pFile->GetID()]; |
73 |
+ const TSGAFile &File = this->lpFiles[pFile->GetID()]; |
74 |
|
75 |
bExtractable = File.uiType == 0; |
76 |
#else |
77 |
@@ -831,7 +831,7 @@ hlBool CSGAFile::CSGASpecializedDirectory<TSGAHeader, |
78 |
template<typename TSGAHeader, typename TSGADirectoryHeader, typename TSGASection, typename TSGAFolder, typename TSGAFile> |
79 |
hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::GetFileSizeInternal(const CDirectoryFile *pFile, hlUInt &uiSize) const |
80 |
{ |
81 |
- const SGAFile &File = this->lpFiles[pFile->GetID()]; |
82 |
+ const TSGAFile &File = this->lpFiles[pFile->GetID()]; |
83 |
|
84 |
uiSize = File.uiSize; |
85 |
|
86 |
@@ -841,7 +841,7 @@ hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirecto |
87 |
template<typename TSGAHeader, typename TSGADirectoryHeader, typename TSGASection, typename TSGAFolder, typename TSGAFile> |
88 |
hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::GetFileSizeOnDiskInternal(const CDirectoryFile *pFile, hlUInt &uiSize) const |
89 |
{ |
90 |
- const SGAFile &File = this->lpFiles[pFile->GetID()]; |
91 |
+ const TSGAFile &File = this->lpFiles[pFile->GetID()]; |
92 |
|
93 |
uiSize = File.uiSizeOnDisk; |
94 |
|
95 |
@@ -851,18 +851,18 @@ hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirecto |
96 |
template<typename TSGAHeader, typename TSGADirectoryHeader, typename TSGASection, typename TSGAFolder, typename TSGAFile> |
97 |
hlBool CSGAFile::CSGADirectory<TSGAHeader, TSGADirectoryHeader, TSGASection, TSGAFolder, TSGAFile>::CreateStreamInternal(const CDirectoryFile *pFile, Streams::IStream *&pStream) const |
98 |
{ |
99 |
- const SGAFile &File = this->lpFiles[pFile->GetID()]; |
100 |
+ const TSGAFile &File = this->lpFiles[pFile->GetID()]; |
101 |
|
102 |
if(File.uiType == 0) |
103 |
{ |
104 |
- pStream = new Streams::CMappingStream(*this->File.pMapping, static_cast<const SGAHeader *>(this->File.pHeader)->uiFileDataOffset + File.uiOffset, File.uiSizeOnDisk); |
105 |
+ pStream = new Streams::CMappingStream(*this->File.pMapping, static_cast<const TSGAHeader *>(this->File.pHeader)->uiFileDataOffset + File.uiOffset, File.uiSizeOnDisk); |
106 |
return hlTrue; |
107 |
} |
108 |
else |
109 |
{ |
110 |
#if USE_ZLIB |
111 |
Mapping::CView *pFileDataView = 0; |
112 |
- if(this->File.pMapping->Map(pFileDataView, static_cast<const SGAHeader *>(this->File.pHeader)->uiFileDataOffset + File.uiOffset, File.uiSizeOnDisk)) |
113 |
+ if(this->File.pMapping->Map(pFileDataView, static_cast<const TSGAHeader *>(this->File.pHeader)->uiFileDataOffset + File.uiOffset, File.uiSizeOnDisk)) |
114 |
{ |
115 |
hlBool bResult = hlFalse; |
116 |
hlByte *lpInflateBuffer = new hlByte[File.uiSize]; |
117 |
@@ -905,4 +905,4 @@ hlVoid CSGAFile::CSGADirectory<TSGAHeader, TSGADirecto |
118 |
{ |
119 |
delete []static_cast<const hlByte *>(static_cast<Streams::CMemoryStream &>(Stream).GetBuffer()); |
120 |
} |
121 |
-} |
122 |
\ No newline at end of file |
123 |
+} |