Fixed entry loading.
This commit is contained in:
parent
e460c9ce9a
commit
083710dfc3
|
@ -334,7 +334,7 @@ static int grp_load_entries(const char *name, int forWriting, GRPinfo *info)
|
||||||
{
|
{
|
||||||
void *fh = NULL;
|
void *fh = NULL;
|
||||||
PHYSFS_uint32 fileCount;
|
PHYSFS_uint32 fileCount;
|
||||||
PHYSFS_uint32 location = 32; /* sizeof sig + sizeof 1st file header. */
|
PHYSFS_uint32 location = 16; /* sizeof sig. */
|
||||||
GRPentry *entry;
|
GRPentry *entry;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
|
||||||
|
@ -347,6 +347,8 @@ static int grp_load_entries(const char *name, int forWriting, GRPinfo *info)
|
||||||
BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
|
BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
|
||||||
} /* if */
|
} /* if */
|
||||||
|
|
||||||
|
location += (16 * fileCount);
|
||||||
|
|
||||||
for (entry = info->entries; fileCount > 0; fileCount--, entry++)
|
for (entry = info->entries; fileCount > 0; fileCount--, entry++)
|
||||||
{
|
{
|
||||||
if (__PHYSFS_platformRead(fh, &entry->name, 12, 1) != 1)
|
if (__PHYSFS_platformRead(fh, &entry->name, 12, 1) != 1)
|
||||||
|
@ -367,7 +369,7 @@ static int grp_load_entries(const char *name, int forWriting, GRPinfo *info)
|
||||||
|
|
||||||
entry->size = PHYSFS_swapULE32(entry->size);
|
entry->size = PHYSFS_swapULE32(entry->size);
|
||||||
entry->startPos = location;
|
entry->startPos = location;
|
||||||
location += entry->size + 16;
|
location += entry->size;
|
||||||
} /* for */
|
} /* for */
|
||||||
|
|
||||||
__PHYSFS_platformClose(fh);
|
__PHYSFS_platformClose(fh);
|
||||||
|
|
Loading…
Reference in New Issue