Mercurial > hg > dmlib
view dmpack.h @ 69:7b97df6f8a97
Add jssClose() in the shutdown.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 01 Oct 2012 13:42:20 +0300 |
parents | 32250b436bca |
children | bb14d7907eb2 |
line wrap: on
line source
/* * DMLib * -- PACK-file routines * Programmed and designed by Matti 'ccr' Hamalainen * (C) Copyright 2011 Tecnic Software productions (TNSP) */ #ifndef DMPACK_H #define DMPACK_H #include "dmlib.h" #define DPACK_IDENT "TNSPDPCK" // Magic ident #define DPACK_VERSION (0x0120) // Version #define DPACK_TMPSIZE (128 * 1024) typedef struct _DMPackEntry { char filename[DMRES_NAME_LEN]; Uint32 size; // Size (UNCOMPRESSED) Uint32 offset; // Offset in pack file Uint32 length; // (Compressed) data length Uint32 resFlags; // Resource flags (used by resource handler) Uint32 privFlags; // Private flags struct _DMPackEntry *next, *prev; } DMPackEntry; typedef struct { DMPackEntry *entries; char * filename; // Filename & path FILE * file; // File } DMPackFile; typedef struct { char ident[8]; // Magic identifier Uint16 version; // Version Uint32 dirEntries; // Number of entries Uint32 dirOffset; // Offset of the directory } DMPackFileHeader; DMPackEntry * dm_pack_entry_new(); void dm_pack_entry_free(DMPackEntry *); void dm_pack_entry_insert(DMPackEntry **, DMPackEntry *); void dm_pack_entry_delete(DMPackEntry **, DMPackEntry *); DMPackEntry * dm_pack_find(DMPackEntry *list, const char *filename); int dm_pack_open(const char *, DMPackFile **, BOOL); int dm_pack_close(DMPackFile *); int dm_pack_read(DMPackFile *, const char *, Uint8 **, size_t *); #endif // DMPACK_H