set up the new Entries array.
This commit is contained in:
parent
e9700e2771
commit
ae1bd3c890
17 changed files with 346 additions and 49 deletions
|
|
@ -84,24 +84,43 @@ bool FWHResFile::Open(LumpFilterInfo*)
|
|||
int nl =1024/3;
|
||||
Lumps.Resize(nl);
|
||||
|
||||
int k;
|
||||
for (k = 0; k < nl; k++)
|
||||
{
|
||||
uint32_t offset = LittleLong(directory[k * 3]) * 4096;
|
||||
uint32_t length = LittleLong(directory[k * 3 + 1]);
|
||||
if (length == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
AllocateEntries(k);
|
||||
NumLumps = k;
|
||||
|
||||
int i = 0;
|
||||
for(int k = 0; k < nl; k++)
|
||||
for(k = 0; k < NumLumps; k++)
|
||||
{
|
||||
uint32_t offset = LittleLong(directory[k*3]) * 4096;
|
||||
uint32_t length = LittleLong(directory[k*3+1]);
|
||||
if (length == 0) break;
|
||||
char num[6];
|
||||
snprintf(num, 6, "/%04d", k);
|
||||
std::string synthname = BaseName;
|
||||
synthname += num;
|
||||
|
||||
Entries[i].Position = offset;
|
||||
Entries[i].Length = length;
|
||||
Entries[i].Flags = RESFF_FULLPATH;
|
||||
Entries[i].Namespace = ns_global;
|
||||
Entries[i].ResourceID = -1;
|
||||
Entries[i].Method = METHOD_STORED;
|
||||
Entries[i].FileName = NormalizeFileName(synthname.c_str());
|
||||
|
||||
Lumps[i].LumpNameSetup(synthname.c_str(), stringpool);
|
||||
Lumps[i].Owner = this;
|
||||
Lumps[i].Position = offset;
|
||||
Lumps[i].LumpSize = length;
|
||||
i++;
|
||||
}
|
||||
NumLumps = i;
|
||||
Lumps.Clamp(NumLumps);
|
||||
Lumps.ShrinkToFit();
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue