I don't believe you understand my message correctly. The
ZIP_EndOfCentralDirRecord
is essentially at the end of the file. One would parse the file by fseek'ing
to (EOF-sizeof(ZIP_EndOfCentralDirRecord)) and fread'ing in the struct.
However, since the comment is of variable length, there is no way to
correctly read in the ZIP_EndOfCentralDirRecord. Thus, there is no way to
access commentLength.

On Wed, May 14, 2008 at 9:53 PM, Mark Chandler <[EMAIL PROTECTED]> wrote:

> You can work out the size of the comment by commentLength
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of theY4Kman
> Sent: Thursday, May 15, 2008 8:18 AM
> To: Discussion of Half-Life Programming
> Subject: [hlcoders] Pakfile Lump Reading
>
> I'm developing a C++ extension for SourceMod which will extract the files
> stored in the Pakfile lump of a BSP. I read over the page, "The Source
> Engine BSP File Format <http://www.geocities.com/cofrdrbob/bspformat.html
> >,"
> by Rof and it has helped me a lot. I've been trying to retrieve the list of
> ZIP_FileHeaders, but I've had some trouble: I don't know how it's possible
> to get the ZIP_EndOfCentralDirRecord. Rof's page states that this struct is
> at the end of the Pakfile lump. However, the struct has a variable length
> comment at the end of it. The only way I can know the size of that comment
> is to have the ZIP_EndOfCentralDirRecord at hand...You can see my dilemma.
>
> struct ZIP_EndOfCentralDirRecord
> {
>    DECLARE_BYTESWAP_DATADESC();
>    unsigned int    signature; // 4 bytes PK56
>    unsigned short    numberOfThisDisk;  // 2 bytes
>    unsigned short    numberOfTheDiskWithStartOfCentralDirectory; // 2 bytes
>    unsigned short    nCentralDirectoryEntries_ThisDisk;    // 2 bytes
>    unsigned short    nCentralDirectoryEntries_Total;    // 2 bytes
>    unsigned int    centralDirectorySize; // 4 bytes
>    unsigned int    startOfCentralDirOffset; // 4 bytes
>    unsigned short    commentLength; // 2 bytes
>    // zip file comment follows
> };
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to