#include "cmdlib.h" #include #include typedef struct { char name[56]; int filepos, filelen; } packfile_t; typedef struct { char id[4]; int dirofs; int dirlen; } packheader_t; int packhandle; packfile_t *packfiles; char packfilename[256]; int numpackfiles; /* ================= LoadPackFile ================= */ void LoadPackFile (char *packfile) { packheader_t header; int i; packhandle = SafeOpenRead (packfile); SafeRead (packhandle, (void *)&header, sizeof(header)); if (header.id[0] != 'P' || header.id[1] != 'A' || header.id[2] != 'C' || header.id[3] != 'K') Error ("%s is not a packfile", packfile); header.dirofs = LittleLong (header.dirofs); header.dirlen = LittleLong (header.dirlen); lseek (packhandle, header.dirofs, SEEK_SET); packfiles = malloc (header.dirlen); SafeRead (packhandle, (void *)packfiles, header.dirlen); numpackfiles = header.dirlen / sizeof(packfile_t); for (i=0 ; i \nexample: unpack id1.pak /raid/quake/id1\n"); LoadPackFile (argv[1]); for (i=0 ; i