Mercurial > hg > dmlib
view src/dmpack.h @ 2377:d8889ff223b6
UPETSCII is actually old version of Marq's PETSCII editor.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 08 Jan 2020 13:00:00 +0200 |
parents | 0115b3dd9064 |
children | c1cae47cd410 |
line wrap: on
line source
/* * DMLib * -- PACK-file routines * Programmed and designed by Matti 'ccr' Hamalainen * (C) Copyright 2011-2015 Tecnic Software productions (TNSP) */ #ifndef DMPACK_H #define DMPACK_H #include "dmlib.h" #define DPACK_IDENT "TNSPDPCK" // Magic ident #define DPACK_VERSION (0x0200) // Version typedef struct _DMPackEntry { char filename[DMRES_NAME_LEN + 1]; // +1 for NUL byte Uint64 offset; // Offset in pack file Uint32 length; // Compressed data length Uint32 size; // Size of UNCOMPRESSED data Uint32 flags; // Stored flags, see DMF_* in dmres.h Uint32 privFlags; // PrivFlags are not stored 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 Uint64 dirOffset; // Offset of the directory } DMPackFileHeader; DMPackEntry * dmPackEntryNew(); void dmPackEntryFree(DMPackEntry *); void dmPackEntryInsert(DMPackEntry **, DMPackEntry *); void dmPackEntryDelete(DMPackEntry **, DMPackEntry *); DMPackEntry * dmPackFind(DMPackEntry *list, const char *filename); int dmPackOpen(const char *, DMPackFile **, BOOL); int dmPackClose(DMPackFile *); int dmPackRead(DMPackFile *, const char *, Uint8 **, size_t *); #endif // DMPACK_H