changeset 721:bb14d7907eb2

Rename many pack & resource handling functions.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 21 Apr 2013 16:40:45 +0300
parents 451fde45e116
children ad3965b93ef1
files dmengine.c dmengine.h dmpack.c dmpack.h dmpackutil.c dmpackutil.h dmres.c dmres.h dmsimple.c tools/packed.c
diffstat 10 files changed, 255 insertions(+), 337 deletions(-) [+]
line wrap: on
line diff
--- a/dmengine.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmengine.c	Sun Apr 21 16:40:45 2013 +0300
@@ -113,7 +113,7 @@
     SDL_Surface *img = dmLoadImage(res);
     if (res != NULL)
     {
-        res->rdata = img;
+        res->resData = img;
         return DMERR_OK;
     }
     else
@@ -123,7 +123,7 @@
 
 static void engineResImageFree(DMResource *res)
 {
-    SDL_FreeSurface((SDL_Surface *)res->rdata);
+    SDL_FreeSurface((SDL_Surface *)res->resData);
 }
 
 static BOOL engineResImageProbe(DMResource *res, const char *fext)
@@ -136,12 +136,12 @@
 #ifdef JSS_SUP_XM
 static int engineResModuleLoad(DMResource *res)
 {
-    return jssLoadXM(res, (JSSModule **) &(res->rdata));
+    return jssLoadXM(res, (JSSModule **) &(res->resData));
 }
 
 static void engineResModuleFree(DMResource *res)
 {
-    jssFreeModule((JSSModule *) res->rdata);
+    jssFreeModule((JSSModule *) res->resData);
 }
 
 static BOOL engineResModuleProbe(DMResource *res, const char *fext)
@@ -188,23 +188,23 @@
     OggVorbis_File vf;
 
     dmMsg(1, "vorbisfile '%s', %d bytes resource loading\n",
-        res->filename, res->dataSize);
+        res->filename, res->rawSize);
 
     if (ov_open_callbacks(res, &vf, NULL, 0, vorbisFileCBS) < 0)
         return DMERR_FOPEN;
 
-    res->rdataSize = ov_pcm_total(&vf, -1) * 2 * 2;
-    if ((res->rdata = dmMalloc(res->rdataSize + 16)) == NULL)
+    res->resSize = ov_pcm_total(&vf, -1) * 2 * 2;
+    if ((res->resData = dmMalloc(res->resSize + 16)) == NULL)
     {
         ov_clear(&vf);
         return DMERR_MALLOC;
     }
 
-    dmMsg(1, "rdataSize=%d bytes?\n", res->rdataSize);
+    dmMsg(1, "rdataSize=%d bytes?\n", res->resSize);
 
     BOOL eof = FALSE;
-    int left = res->rdataSize;
-    char *ptr = res->rdata;
+    int left = res->resSize;
+    char *ptr = res->resData;
     int current_section;
     while (!eof && left > 0)
     {
@@ -230,7 +230,7 @@
 
 static void engineResVorbisFree(DMResource *res)
 {
-    dmFree(res->rdata);
+    dmFree(res->resData);
 }
 
 static BOOL engineResVorbisProbe(DMResource *res, const char *fext)
@@ -296,9 +296,9 @@
 {
     DMResource *res;
     if (eng != NULL &&
-        (res = dmres_find(eng->resources, name)) != NULL &&
-        res->rdata != NULL)
-        return res->rdata;
+        (res = dmResourceFind(eng->resources, name)) != NULL &&
+        res->resData != NULL)
+        return res->resData;
     else
     {
         dmError("Could not find resource '%s'.\n", name);
--- a/dmengine.h	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmengine.h	Sun Apr 21 16:40:45 2013 +0300
@@ -339,7 +339,7 @@
             return DMERR_INIT_FAIL; \
     } while (0)
 
-#define engineFindResource(eng, name) dmres_find((eng)->resources, name)
+#define engineFindResource(eng, name) dmResourceFind((eng)->resources, name)
 
 
 int    engineClassifier(DMResource *res);
--- a/dmpack.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmpack.c	Sun Apr 21 16:40:45 2013 +0300
@@ -9,19 +9,19 @@
 #include <zlib.h>
 
 
-DMPackEntry *dm_pack_entry_new()
+DMPackEntry *dmPackEntryNew()
 {
     return (DMPackEntry *) dmMalloc0(sizeof(DMPackEntry));
 }
 
 
-void dm_pack_entry_free(DMPackEntry * node)
+void dmPackEntryFree(DMPackEntry * node)
 {
     dmFree(node);
 }
 
 
-void dm_pack_entry_insert(DMPackEntry ** packDir, DMPackEntry * node)
+void dmPackEntryInsert(DMPackEntry ** packDir, DMPackEntry * node)
 {
     if (*packDir != NULL)
     {
@@ -38,7 +38,7 @@
 }
 
 
-void dm_pack_entry_delete(DMPackEntry ** packDir, DMPackEntry * node)
+void dmPackEntryDelete(DMPackEntry ** packDir, DMPackEntry * node)
 {
     if (node->prev)
         node->prev->next = node->next;
@@ -52,7 +52,7 @@
 }
 
 
-DMPackEntry *dm_pack_find(DMPackEntry *list, const char *filename)
+DMPackEntry *dmPackFind(DMPackEntry *list, const char *filename)
 {
     DMPackEntry *node;
 
@@ -69,7 +69,7 @@
 /*
  * OPEN a packfile
  */
-int dm_pack_open(const char *filename, DMPackFile ** ppPack, BOOL readOnly)
+int dmPackOpen(const char *filename, DMPackFile ** ppPack, BOOL readOnly)
 {
     unsigned int i;
     DMPackFile *pack;
@@ -83,7 +83,7 @@
         return DMERR_MALLOC;
 
     // Open the file
-    pack->file = fopen(filename, (readOnly) ? "rb" : "r+b");
+    pack->file = fopen(filename, readOnly ? "rb" : "r+b");
     if (pack->file == NULL)
     {
         dmFree(pack);
@@ -99,38 +99,38 @@
         !dm_fread_le32(pack->file, &hdr.dirEntries) ||
         !dm_fread_le32(pack->file, &hdr.dirOffset))
     {
-        dm_pack_close(pack);
+        dmPackClose(pack);
         return DMERR_FREAD;
     }
 
     // Check information
     if (memcmp(&hdr.ident, DPACK_IDENT, sizeof(hdr.ident)) != 0)
     {
-        dm_pack_close(pack);
+        dmPackClose(pack);
         return DMERR_NOTPACK;
     }
 
     if (hdr.version != DPACK_VERSION)
     {
-        dm_pack_close(pack);
+        dmPackClose(pack);
         return DMERR_VERSION;
     }
 
     // Read directory
     if (fseek(pack->file, hdr.dirOffset, SEEK_SET) != 0)
     {
-        dm_pack_close(pack);
+        dmPackClose(pack);
         return DMERR_INVALID;
     }
 
     for (i = 0; i < hdr.dirEntries; i++)
     {
         // Allocate and read directory entry
-        DMPackEntry *entry = dm_pack_entry_new();
+        DMPackEntry *entry = dmPackEntryNew();
 
         if (entry == NULL)
         {
-            dm_pack_close(pack);
+            dmPackClose(pack);
             return DMERR_MALLOC;
         }
 
@@ -138,14 +138,14 @@
             !dm_fread_le32(pack->file, &entry->size) ||
             !dm_fread_le32(pack->file, &entry->offset) ||
             !dm_fread_le32(pack->file, &entry->length) ||
-            !dm_fread_le32(pack->file, &entry->resFlags))
+            !dm_fread_le32(pack->file, &entry->flags))
         {
             *ppPack = pack;
             return DMERR_FREAD;
         }
 
         // Insert into list
-        dm_pack_entry_insert(&pack->entries, entry);
+        dmPackEntryInsert(&pack->entries, entry);
     }
 
     // Set the result
@@ -157,9 +157,9 @@
 /*
  * CLOSE the packfile
  */
-int dm_pack_close(DMPackFile * pack)
+int dmPackClose(DMPackFile * pack)
 {
-    DMPackEntry *node, *next;
+    DMPackEntry *node;
 
     if (pack == NULL)
         return DMERR_OK;
@@ -168,8 +168,8 @@
     node = pack->entries;
     while (node != NULL)
     {
-        next = node->next;
-        dm_pack_entry_free(node);
+        DMPackEntry *next = node->next;
+        dmPackEntryFree(node);
         node = next;
     }
 
--- a/dmpack.h	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmpack.h	Sun Apr 21 16:40:45 2013 +0300
@@ -20,11 +20,9 @@
     Uint32  size;              // Size (UNCOMPRESSED)
     Uint32  offset;            // Offset in pack file
     Uint32  length;            // (Compressed) data length
+
+    Uint32  flags, privFlags;
     
-    Uint32  resFlags;          // Resource flags (used by resource handler)
-
-    Uint32  privFlags;         // Private flags
-
     struct _DMPackEntry *next, *prev;
 } DMPackEntry;
 
@@ -46,16 +44,16 @@
 } 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 *  dmPackEntryNew();
+void           dmPackEntryFree(DMPackEntry *);
+void           dmPackEntryInsert(DMPackEntry **, DMPackEntry *);
+void           dmPackEntryDelete(DMPackEntry **, DMPackEntry *);
 
-DMPackEntry *  dm_pack_find(DMPackEntry *list, const char *filename);
+DMPackEntry *  dmPackFind(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 *);
+int            dmPackOpen(const char *, DMPackFile **, BOOL);
+int            dmPackClose(DMPackFile *);
+int            dmPackRead(DMPackFile *, const char *, Uint8 **, size_t *);
 
 
 #endif // DMPACK_H
--- a/dmpackutil.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmpackutil.c	Sun Apr 21 16:40:45 2013 +0300
@@ -9,9 +9,9 @@
 #include "dmfile.h"
 
 
-DMPackEntry *dm_pack_entry_copy(const DMPackEntry *src)
+DMPackEntry *dmPackEntryCopy(const DMPackEntry *src)
 {
-    DMPackEntry *node = dm_pack_entry_new();
+    DMPackEntry *node = dmPackEntryNew();
     if (node == NULL)
         return NULL;
 
@@ -21,7 +21,7 @@
     node->size     = src->size;
     node->offset   = src->offset;
     node->length   = src->length;
-    node->resFlags = src->resFlags;
+    node->flags    = src->flags;
 
     return node;
 }
@@ -30,7 +30,7 @@
 /*
  * CLOSE/WRITE the packfile
  */
-int dm_pack_write(DMPackFile * pack)
+int dmPackWrite(DMPackFile * pack)
 {
     DMPackEntry *node;
     DMPackFileHeader hdr;
@@ -78,7 +78,6 @@
         dm_fwrite_le32(pack->file, node->size);
         dm_fwrite_le32(pack->file, node->offset);
         dm_fwrite_le32(pack->file, node->length);
-        dm_fwrite_le32(pack->file, node->resFlags);
 
         node = node->next;
     }
@@ -90,7 +89,7 @@
 /*
  * CREATE a packfile, for writing
  */
-int dm_pack_create(const char *filename, DMPackFile ** pack)
+int dmPackCreate(const char *filename, DMPackFile ** pack)
 {
     // Allocate packfile-structure
     *pack = (DMPackFile *) dmCalloc(1, sizeof(DMPackFile));
@@ -115,12 +114,12 @@
 /*
  * ADD a file into the PACK
  */
-int dm_pack_add_file(DMPackFile * pack, const char *filename, BOOL doCompress, int resFlags,
-                    DMPackEntry ** ppEntry)
+int dmPackAddFile(DMPackFile * pack, const char *filename,
+    BOOL doCompress, const Uint32 flags, DMPackEntry ** ppEntry)
 {
-    z_stream compStream;
+    z_stream zstr;
     off_t startOffs;
-    unsigned int compSize;
+    unsigned int zstrSize;
     FILE *inFile;
     Uint8 *inBuffer, *outBuffer;
     DMPackEntry entry, *node;
@@ -168,11 +167,11 @@
     }
 
     // Read (and possibly compress) the data
-    compSize = 0;
-    compStream.zalloc = (alloc_func) Z_NULL;
-    compStream.zfree = (free_func) Z_NULL;
-    compStream.opaque = (voidpf) Z_NULL;
-    result = deflateInit(&compStream, (doCompress) ? Z_DEFAULT_COMPRESSION : 0);
+    zstrSize = 0;
+    zstr.zalloc = (alloc_func) Z_NULL;
+    zstr.zfree = (free_func) Z_NULL;
+    zstr.opaque = (voidpf) Z_NULL;
+    result = deflateInit(&zstr, (doCompress) ? Z_DEFAULT_COMPRESSION : 0);
     if (result != Z_OK)
     {
         dmFree(inBuffer);
@@ -185,40 +184,39 @@
     result = Z_OK;
     while (!feof(inFile) && result == Z_OK)
     {
-        compStream.avail_in = fread(inBuffer, sizeof(Uint8), DPACK_TMPSIZE, inFile);
-        compStream.next_in = inBuffer;
-        compStream.next_out = outBuffer;
-        compStream.avail_out = DPACK_TMPSIZE;
-        compStream.total_out = 0;
-        result = deflate(&compStream, Z_FULL_FLUSH);
+        zstr.avail_in = fread(inBuffer, sizeof(Uint8), DPACK_TMPSIZE, inFile);
+        zstr.next_in = inBuffer;
+        zstr.next_out = outBuffer;
+        zstr.avail_out = DPACK_TMPSIZE;
+        zstr.total_out = 0;
+        result = deflate(&zstr, Z_FULL_FLUSH);
 
-        if (result == Z_OK && compStream.total_out > 0)
+        if (result == Z_OK && zstr.total_out > 0)
         {
-            compSize += compStream.total_out;
-            fwrite(outBuffer, sizeof(Uint8), compStream.total_out, pack->file);
+            zstrSize += zstr.total_out;
+            fwrite(outBuffer, sizeof(Uint8), zstr.total_out, pack->file);
         }
     }
 
     // Create directory entry
     strncpy(entry.filename, filename, sizeof(entry.filename));
     entry.filename[sizeof(entry.filename) - 1] = 0;
-    entry.size = compStream.total_in;
+    entry.size   = zstr.total_in;
     entry.offset = startOffs;
-    entry.length = compSize;
-    entry.resFlags = resFlags;
+    entry.length = zstrSize;
+    entry.flags  = flags;
 
     // Cleanup
-    deflateEnd(&compStream);
+    deflateEnd(&zstr);
     dmFree(inBuffer);
     dmFree(outBuffer);
     fclose(inFile);
 
     // Add directory entry
-    *ppEntry = dm_pack_entry_copy(&entry);
-    if (*ppEntry == NULL)
+    if ((*ppEntry = dmPackEntryCopy(&entry)) == NULL)
         return DMERR_MALLOC;
 
-    dm_pack_entry_insert(&pack->entries, *ppEntry);
+    dmPackEntryInsert(&pack->entries, *ppEntry);
 
     return DMERR_OK;
 }
@@ -227,9 +225,9 @@
 /*
  * EXTRACT a file from the PACK
  */
-int dm_pack_extract_file(DMPackFile *pack, DMPackEntry * entry)
+int dmPackExtractFile(DMPackFile *pack, DMPackEntry * entry)
 {
-    z_stream compStream;
+    z_stream zstr;
     FILE *outFile;
     Uint8 *inBuffer, *outBuffer;
     size_t inDataLeft;
@@ -264,10 +262,10 @@
     }
 
     // Read and uncompress the data
-    compStream.zalloc = (alloc_func) Z_NULL;
-    compStream.zfree = (free_func) Z_NULL;
-    compStream.opaque = (voidpf) Z_NULL;
-    ret = inflateInit(&compStream);
+    zstr.zalloc = (alloc_func) Z_NULL;
+    zstr.zfree = (free_func) Z_NULL;
+    zstr.opaque = (voidpf) Z_NULL;
+    ret = inflateInit(&zstr);
     if (ret != Z_OK)
     {
         dmFree(inBuffer);
@@ -282,28 +280,28 @@
     while (inDataLeft > 0 && ret == Z_OK)
     {
         if (inDataLeft >= DPACK_TMPSIZE)
-            compStream.avail_in = fread(inBuffer, sizeof(Uint8), DPACK_TMPSIZE, pack->file);
+            zstr.avail_in = fread(inBuffer, sizeof(Uint8), DPACK_TMPSIZE, pack->file);
         else
-            compStream.avail_in = fread(inBuffer, sizeof(Uint8), inDataLeft, pack->file);
+            zstr.avail_in = fread(inBuffer, sizeof(Uint8), inDataLeft, pack->file);
 
-        inDataLeft -= compStream.avail_in;
-        compStream.next_in = inBuffer;
+        inDataLeft -= zstr.avail_in;
+        zstr.next_in = inBuffer;
 
-        while (compStream.avail_in > 0 && ret == Z_OK)
+        while (zstr.avail_in > 0 && ret == Z_OK)
         {
-            compStream.next_out = outBuffer;
-            compStream.avail_out = DPACK_TMPSIZE;
-            compStream.total_out = 0;
-            ret = inflate(&compStream, Z_FULL_FLUSH);
-            if (compStream.total_out > 0)
+            zstr.next_out = outBuffer;
+            zstr.avail_out = DPACK_TMPSIZE;
+            zstr.total_out = 0;
+            ret = inflate(&zstr, Z_FULL_FLUSH);
+            if (zstr.total_out > 0)
             {
-                fwrite(outBuffer, sizeof(Uint8), compStream.total_out, outFile);
+                fwrite(outBuffer, sizeof(Uint8), zstr.total_out, outFile);
             }
         }
     }
 
     // Cleanup
-    inflateEnd(&compStream);
+    inflateEnd(&zstr);
     dmFree(inBuffer);
     dmFree(outBuffer);
     fclose(outFile);
--- a/dmpackutil.h	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmpackutil.h	Sun Apr 21 16:40:45 2013 +0300
@@ -8,10 +8,10 @@
 #define DMPACKUTIL_H
 #include "dmpack.h"
 
-DMPackEntry *  dm_pack_entry_copy(const DMPackEntry *);
-int            dm_pack_write(DMPackFile *);
-int            dm_pack_create(const char *, DMPackFile **);
-int            dm_pack_add_file(DMPackFile *, const char *, BOOL, int resFlags, DMPackEntry **);
-int            dm_pack_extract_file(DMPackFile *, DMPackEntry *);
+DMPackEntry *  dmPackEntryCopy(const DMPackEntry *);
+int            dmPackWrite(DMPackFile *);
+int            dmPackCreate(const char *, DMPackFile **);
+int            dmPackAddFile(DMPackFile *, const char *, BOOL, const Uint32 flags, DMPackEntry **);
+int            dmPackExtractFile(DMPackFile *, DMPackEntry *);
 
 #endif // DMPACKUTIL_H
--- a/dmres.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmres.c	Sun Apr 21 16:40:45 2013 +0300
@@ -2,7 +2,7 @@
  * dmlib
  * -- Resource management
  * Programmed and designed by Matti 'ccr' Hamalainen
- * (C) Copyright 2003-2012 Tecnic Software productions (TNSP)
+ * (C) Copyright 2003-2013 Tecnic Software productions (TNSP)
  */
 #include "dmres.h"
 #include <time.h>
@@ -15,7 +15,7 @@
 #endif
 
 
-DMResource *dmres_new(DMResourceLib *lib, const char *filename, int flags, size_t size)
+DMResource *dmResourceNew(DMResourceLib *lib, const char *filename, const size_t size)
 {
     DMResource *node = dmMalloc0(sizeof(DMResource));
     if (node == NULL)
@@ -23,57 +23,55 @@
     
     node->lib = lib;
     node->filename = dm_strdup(filename);
-    node->flags = flags;
-    node->dataSize = size;
+    node->rawSize = size;
     
     return node;
 }
 
 
-void dmres_free_res_data(DMResource *node)
+void dmResourceFreeResData(DMResource *node)
 {
-    if (node->rdata != NULL &&
+    if (node->resData != NULL &&
         node->rops != NULL &&
         node->rops->free != NULL)
     {
         node->rops->free(node);
     }
 
-    node->rdata = NULL;
+    node->resData = NULL;
     node->flags &= !DMF_LOADED_RES;
 }
 
 
-void dmres_free_raw_data(DMResource *node)
+void dmResourceFreeRawData(DMResource *node)
 {
-    dmFree(node->data);
-    node->data = NULL;
+    dmFree(node->rawData);
+    node->rawData = NULL;
     node->flags &= !DMF_LOADED_RAW;
 }
 
 
-void dmres_purge_raw_data(DMResource *node)
+void dmResourcePurge_raw_data(DMResource *node)
 {
-    if ((node->flags & DMF_PRELOAD_RAW) == 0 &&
-        (node->flags & DMF_LOADED_RAW) &&
-        node->data != NULL)
-        dmres_free_raw_data(node);
+    if ((node->flags & DMF_LOADED_RAW) &&
+        node->rawData != NULL)
+        dmResourceFreeRawData(node);
 }
 
 
-void dmres_free(DMResource *node)
+void dmResourceFree(DMResource *node)
 {
     if (node != NULL)
     {
-        dmres_free_res_data(node);
-        dmres_free_raw_data(node);
+        dmResourceFreeResData(node);
+        dmResourceFreeRawData(node);
         dmFree(node->filename);
         dmFree(node);
     }
 }
 
 
-void dmres_insert(DMResourceLib *lib, DMResource * node)
+void dmResourceInsert(DMResourceLib *lib, DMResource * node)
 {
     if (lib == NULL || node == NULL)
         return;
@@ -95,7 +93,7 @@
 }
 
 
-void dmres_delete(DMResourceLib *lib, DMResource * node)
+void dmResourceDelete(DMResourceLib *lib, DMResource * node)
 {
     if (lib == NULL)
         return;
@@ -112,7 +110,7 @@
 }
 
 
-DMResource * dmres_find(DMResourceLib *lib, const char *filename)
+DMResource * dmResourceFind(DMResourceLib *lib, const char *filename)
 {
     DMResource *node, *found = NULL;
 
@@ -182,8 +180,8 @@
     off_t savePos, fileSize;
 
     // Check if the size is cached
-    if (f->dataSize != 0)
-        return f->dataSize;
+    if (f->rawSize != 0)
+        return f->rawSize;
 
     // Get file size
     savePos = ftello(f->fh);
@@ -200,7 +198,7 @@
         return -1;
     }
 
-    f->dataSize = fileSize;
+    f->rawSize = fileSize;
     return fileSize;
 }
 
@@ -257,11 +255,11 @@
     
     dm_stdio_fsize(handle);
     
-    handle->data = dmMalloc(handle->dataSize);
-    if (handle->data == NULL)
+    handle->rawData = dmMalloc(handle->rawSize);
+    if (handle->rawData == NULL)
         return DMERR_MALLOC;
     
-    if (dm_stdio_fread(handle->data, sizeof(Uint8), handle->dataSize, handle) != handle->dataSize)
+    if (dm_stdio_fread(handle->rawData, sizeof(Uint8), handle->rawSize, handle) != handle->rawSize)
         return DMERR_FREAD;
     
     return DMERR_OK;
@@ -326,7 +324,7 @@
         return DMERR_NULLPTR;
 
     // Search PACK nodelist for file
-    if ((node = dm_pack_find(handle->lib->packFile->entries, handle->filename)) == NULL)
+    if ((node = dmPackFind(handle->lib->packFile->entries, handle->filename)) == NULL)
     {
         dmError("Entry '%s' not found in PACK file.\n", handle->filename);
         res = DMERR_NOT_FOUND;
@@ -350,10 +348,10 @@
     }
 
     // Initialize fields
-    handle->dataOffset = 0;
-    handle->dataSize = node->size;
-    handle->data = (Uint8 *) dmMalloc(node->size);
-    if (handle->data == NULL)
+    handle->rawOffset = 0;
+    handle->rawSize = node->size;
+    handle->rawData = (Uint8 *) dmMalloc(node->size);
+    if (handle->rawData == NULL)
     {
         res = DMERR_MALLOC;
         goto error;
@@ -363,8 +361,8 @@
     cstream.zalloc = (alloc_func) Z_NULL;
     cstream.zfree = (free_func) Z_NULL;
     cstream.opaque = (voidpf) Z_NULL;
-    cstream.next_out = handle->data;
-    cstream.avail_out = handle->dataSize;
+    cstream.next_out = handle->rawData;
+    cstream.avail_out = handle->rawSize;
     cdataLeft = node->length;
     cres = inflateInit(&(cstream));
     if (cres != Z_OK)
@@ -399,10 +397,10 @@
 
 static void dm_pack_fclose(DMResource * f)
 {
-    f->dataSize = 0;
-    f->dataOffset = 0;
-    dmFree(f->data);
-    f->data = NULL;
+    f->rawSize = 0;
+    f->rawOffset = 0;
+    dmFree(f->rawData);
+    f->rawData = NULL;
 }
 #endif
 
@@ -425,11 +423,11 @@
             break;
 
         case SEEK_CUR:
-            newPos = f->dataOffset + offset;
+            newPos = f->rawOffset + offset;
             break;
 
         case SEEK_END:
-            newPos = f->dataSize + offset;
+            newPos = f->rawSize + offset;
             break;
 
         default:
@@ -437,10 +435,10 @@
     }
 
     // Set the new position
-    f->dataOffset = newPos;
+    f->rawOffset = newPos;
 
     // Check the new position
-    if (newPos < 0 && (size_t) newPos >= f->dataSize)
+    if (newPos < 0 && (size_t) newPos >= f->rawSize)
         return -1;
 
     return 0;
@@ -449,20 +447,20 @@
 
 static off_t dm_mem_fsize(DMResource * f)
 {
-    return f->dataSize;
+    return f->rawSize;
 }
 
 
 static off_t dm_mem_ftell(DMResource * f)
 {
-    return f->dataOffset;
+    return f->rawOffset;
 }
 
 
 static BOOL dm_mem_feof(DMResource * f)
 {
     // Check for EOF
-    if ((size_t) f->dataOffset <= f->dataSize)
+    if ((size_t) f->rawOffset <= f->rawSize)
         return FALSE;
     else
         return TRUE;
@@ -472,8 +470,8 @@
 static int dm_mem_fgetc(DMResource * f)
 {
     // Check for EOF
-    if ((size_t) f->dataOffset < f->dataSize)
-        return f->data[f->dataOffset++];
+    if ((size_t) f->rawOffset < f->rawSize)
+        return f->rawData[f->rawOffset++];
     else
         return EOF;
 }
@@ -484,14 +482,14 @@
     size_t length = (size * nmemb);
 
     // Check if we can read the whole chunk
-    if (((size_t) f->dataOffset + length) >= f->dataSize)
+    if (((size_t) f->rawOffset + length) >= f->rawSize)
     {
-        nmemb = (f->dataSize - f->dataOffset) / size;
+        nmemb = (f->rawSize - f->rawOffset) / size;
         length = size * nmemb;
     }
 
-    memcpy(buf, f->data + f->dataOffset, length);
-    f->dataOffset += length;
+    memcpy(buf, f->rawData + f->rawOffset, length);
+    f->rawOffset += length;
     return nmemb;
 }
 
@@ -499,9 +497,9 @@
 static int dm_mem_fputc(int ch, DMResource * f)
 {
     // Check for EOF
-    if ((size_t) f->dataOffset < f->dataSize)
+    if ((size_t) f->rawOffset < f->rawSize)
     {
-        f->data[f->dataOffset++] = ch;
+        f->rawData[f->rawOffset++] = ch;
         return ch;
     }
     else
@@ -514,16 +512,16 @@
     size_t length = (size * nmemb);
 
     // Check if we can write the whole chunk
-    if (((size_t) f->dataOffset + length) >= f->dataSize)
+    if (((size_t) f->rawOffset + length) >= f->rawSize)
     {
-        nmemb = (f->dataSize - f->dataOffset) / size;
+        nmemb = (f->rawSize - f->rawOffset) / size;
         length = size * nmemb;
     }
 
     if (length > 0)
     {
-        memcpy(f->data + f->dataOffset, buf, length);
-        f->dataOffset += length;
+        memcpy(f->rawData + f->rawOffset, buf, length);
+        f->rawOffset += length;
     }
     return nmemb;
 }
@@ -606,8 +604,7 @@
     int ret = DMERR_INIT_FAIL;
 
     // Check if we want to preload raw data?
-    if ((handle->flags & DMF_PRELOAD_RAW) ||
-        (handle->lib->flags & DRF_PRELOAD_ALL))
+    if (handle->lib->flags & DRF_PRELOAD_RAW)
     {
         if (handle->flags & DMF_LOADED_RAW)
             ret = DMERR_OK;
@@ -632,7 +629,7 @@
 
 
     // Check if resource data is to be preloaded
-    if ((handle->flags & DMF_PRELOAD_RES) || (handle->lib->flags & DRF_PRELOAD_RES))
+    if (handle->lib->flags & DRF_PRELOAD_RES)
     {
         if (handle->flags & DMF_LOADED_RES)
             ret = DMERR_OK;
@@ -648,7 +645,7 @@
 
                 // Check if we can purge the raw data now
                 if ((handle->flags & DMF_PERSIST) == 0)
-                    dmres_purge_raw_data(handle);
+                    dmResourcePurge_raw_data(handle);
             }
 
             dmf_reset(handle);
@@ -665,13 +662,13 @@
     DMResource *handle;
 
     // Check master directory for resource
-    if ((handle = dmres_find(lib, filename)) == NULL)
+    if ((handle = dmResourceFind(lib, filename)) == NULL)
     {
 #ifdef DM_USE_STDIO
         if (lib->flags & DRF_USE_STDIO)
         {
             // Hmm.. does not exist? Fall back to a stdio file
-            handle = dmres_new(lib, filename, 0, 0);
+            handle = dmResourceNew(lib, filename, 0);
             if (handle == NULL)
                 return NULL;
 
@@ -691,7 +688,7 @@
     // Check if the data is preloaded
     if (handle->flags & DMF_LOADED_RAW)
     {
-        dmres_ref(handle);
+        dmResourceRef(handle);
         return handle;
     }
 
@@ -700,7 +697,7 @@
     
     if (ret == DMERR_OK)
     {
-        dmres_ref(handle);
+        dmResourceRef(handle);
         return handle;
     }
 
@@ -708,25 +705,25 @@
 }
 
 
-DMResource * dmf_create_memio(DMResourceLib *lib, const char *filename, Uint8 *buf, size_t len)
+DMResource * dmf_create_memio(DMResourceLib *lib, const char *filename, Uint8 *buf, const size_t size)
 {
     DMResource *handle;
 
     // Check master directory for resource
-    if ((handle = dmres_find(lib, filename)) == NULL)
+    if ((handle = dmResourceFind(lib, filename)) == NULL)
     {
-        // Hmm.. does not exist? Fall back to a stdio file
-        handle = dmres_new(lib, filename, DMF_LOADED_RAW, len);
+        handle = dmResourceNew(lib, filename, size);
         if (handle == NULL)
             return NULL;
 
-        handle->fops = &dfMemIOFileOps;
-        handle->data = buf;
-        dmres_insert(lib, handle);
+        handle->flags   = DMF_LOADED_RAW;
+        handle->fops    = &dfMemIOFileOps;
+        handle->rawData = buf;
+        dmResourceInsert(lib, handle);
     }
 
     // Increase refcount
-    dmres_ref(handle);
+    dmResourceRef(handle);
 
     dmf_reset(handle);
     return handle;
@@ -736,23 +733,22 @@
 #ifdef DM_USE_STDIO
 DMResource * dmf_create_stdio(const char *filename, const char *mode)
 {
-    DMResource *handle = dmres_new(NULL, filename, 0, 0);
+    DMResource *handle = dmResourceNew(NULL, filename, 0);
     if (handle == NULL)
         return NULL;
 
-    handle->fops = &dfStdioFileOps;
-
-    handle->fh = fopen(filename, mode);
+    handle->fops  = &dfStdioFileOps;
+    handle->fh    = fopen(filename, mode);
     handle->error = dmGetErrno();
     
     if (handle->fh != NULL)
     {
-        dmres_ref(handle);
+        dmResourceRef(handle);
         return handle;
     }
     else
     {
-        dmres_free(handle);
+        dmResourceFree(handle);
         return NULL;
     }
 }
@@ -760,13 +756,13 @@
 
 DMResource * dmf_create_stdio_stream(FILE *fh)
 {
-    DMResource *handle = dmres_new(NULL, "", 0, 0);
+    DMResource *handle = dmResourceNew(NULL, "", 0);
     if (handle == NULL)
         return NULL;
 
     handle->fops = &dfStdioFHOps;
-    handle->fh = fh;
-    dmres_ref(handle);
+    handle->fh   = fh;
+    dmResourceRef(handle);
     return handle;
 }
 #endif
@@ -780,7 +776,7 @@
     if (f->fops->fclose != NULL)
         f->fops->fclose(f);
 
-    dmres_unref(f);
+    dmResourceUnref(f);
 }
 
 
@@ -858,7 +854,7 @@
 }
 
 
-int dmres_ref(DMResource *node)
+int dmResourceRef(DMResource *node)
 {
     if (node->lib != NULL) dmMutexLock(node->lib->mutex);
     node->atime = time(NULL);
@@ -869,7 +865,7 @@
 }
 
 
-int dmres_unref(DMResource *node)
+int dmResourceUnref(DMResource *node)
 {
     if (node->lib != NULL) dmMutexLock(node->lib->mutex);
     node->refcount--;
@@ -879,44 +875,8 @@
 }
 
 
-#define NADDFLAG(flg, ch) \
-    do { \
-        if ((flags & (flg)) && offs < size - 1) \
-            str[offs++] = ch; \
-    } while (0)
-
-void dmres_flags_to_symbolic(char *str, size_t size, int flags)
-{
-    size_t offs = 0;
-    NADDFLAG(DMF_PRELOAD_RAW, 'r');
-    NADDFLAG(DMF_PRELOAD_RES, 'e');
-    NADDFLAG(DMF_PERSIST,     'p');
-    NADDFLAG(DMF_STREAM,      's');
-    if (offs < size)
-        str[offs] = 0;
-}
-
-#undef NADDFLAG
-
-
-int dmres_symbolic_to_flags(const char *str)
-{
-    int offs, flags;
-
-    for (flags = offs = 0; str[offs]; offs++)
-    switch (tolower(str[offs]))
-    {
-        case 'r': flags |= DMF_PRELOAD_RAW; break;
-        case 'e': flags |= DMF_PRELOAD_RES; break;
-        case 'p': flags |= DMF_PERSIST; break;
-        case 's': flags |= DMF_STREAM; break;
-    }
-    return flags;
-}
-
-
 #ifdef DM_USE_STDIO
-static int dmres_load_directory(DMResourceLib *lib, const char *path)
+static int dmResourceLoad_directory(DMResourceLib *lib, const char *path)
 {
     int res = DMERR_OK;
     struct dirent *dh;
@@ -944,13 +904,13 @@
             }
 
             if (S_ISREG(sbuf.st_mode))
-                node = dmres_new(lib, dh->d_name, 0, sbuf.st_size);
+                node = dmResourceNew(lib, dh->d_name, sbuf.st_size);
         }
 
         if (node != NULL)
         {
             node->fops = &dfStdioFileOps;
-            dmres_insert(lib, node);
+            dmResourceInsert(lib, node);
         }
     } while (dh != NULL);
 
@@ -969,7 +929,7 @@
 
 /* Resources subsystem initialization and shutdown routines
  */
-int dmres_init(DMResourceLib **plib, const char *filename, const char *path, const int flags, int (*classifier)(DMResource *))
+int dmResourcesInit(DMResourceLib **plib, const char *filename, const char *path, const int flags, int (*classifier)(DMResource *))
 {
     DMResourceLib *lib;
     BOOL initialized = FALSE;
@@ -993,7 +953,7 @@
         lib->packFilename = dm_strdup((filename != NULL) ? filename : DMRES_DATA_PACK);
 
         // Initialize PACK, open as read-only
-        ret = dm_pack_open(lib->packFilename, &lib->packFile, TRUE);
+        ret = dmPackOpen(lib->packFilename, &lib->packFile, TRUE);
         if (ret != DMERR_OK)
         {
             if ((flags & DRF_USE_STDIO) == 0)
@@ -1009,15 +969,15 @@
             // Initialize resources from a PACK file
             for (node = lib->packFile->entries; node != NULL; node = node->next)
             {
-                DMResource *res = dmres_new(lib, node->filename, node->resFlags & DMF_MASK, node->size);
+                DMResource *res = dmResourceNew(lib, node->filename, node->size);
                 if (res == NULL)
                 {
                     dmError("Could not allocate memory for resource node '%s' [0x%08x], %d.\n",
-                        node->filename, node->resFlags, node->size);
+                        node->filename, node->flags, node->size);
                     return DMERR_INIT_FAIL;
                 }
 
-                dmres_insert(lib, res);
+                dmResourceInsert(lib, res);
             }
             
             initialized = TRUE;
@@ -1029,7 +989,7 @@
     if (!initialized && (flags & DRF_USE_STDIO))
     {
         // Initialize resources from a resource directory
-        int ret = dmres_load_directory(lib, lib->resPath);
+        int ret = dmResourceLoad_directory(lib, lib->resPath);
         if (ret != DMERR_OK)
             return ret;
         initialized = TRUE;
@@ -1056,7 +1016,7 @@
 }
 
 
-int dmres_close(DMResourceLib *lib)
+int dmResourcesClose(DMResourceLib *lib)
 {
     DMResource *node;
     
@@ -1069,11 +1029,11 @@
 #ifdef DM_USE_PACKFS
     if (lib->flags & DRF_USE_PACK)
     {
-        int res = dm_pack_close(lib->packFile);
+        int res = dmPackClose(lib->packFile);
         if (res != DMERR_OK)
         {
             dmError("Error closing PACK, #%i: %s\n",
-                        res, dmErrorStr(res));
+                res, dmErrorStr(res));
         }
 
         dmFree(lib->packFilename);
@@ -1085,7 +1045,7 @@
     while (node != NULL)
     {
         DMResource *next = node->next;
-        dmres_free(node);
+        dmResourceFree(node);
         node = next;
     }
 
@@ -1097,7 +1057,7 @@
 }
 
 
-int dmres_preload(DMResourceLib *lib, BOOL start, int *loaded, int *total)
+int dmResourcesPreload(DMResourceLib *lib, BOOL start, int *loaded, int *total)
 {
     int ret = DMERR_OK;
 
@@ -1113,10 +1073,9 @@
         *total = 0;
 
         // Calculate total number of resources to be preloaded
-        for (node = lib->resources; node != NULL; node = node->next)
+        if (lib->flags & (DRF_PRELOAD_RAW | DRF_PRELOAD_RES))
         {
-            if ((lib->flags & (DRF_PRELOAD_ALL | DRF_PRELOAD_RES)) ||
-                (node->flags & (DMF_PRELOAD_RAW | DMF_PRELOAD_RES)))
+            for (node = lib->resources; node != NULL; node = node->next)
                 (*total)++;
         }
     }
@@ -1145,10 +1104,10 @@
 }
 
 
-void dmres_prune(DMResourceLib *lib, int agems, int flags)
+void dmResourcePrune(DMResourceLib *lib, const int agems, int const flags)
 {
     DMResource *node;
-    int currtime = time(NULL);
+    const int stamp = time(NULL);
     dmMutexLock(lib->mutex);
 
     for (node = lib->resources; node != NULL; node = node->next)
@@ -1159,14 +1118,11 @@
             (node->flags & DMF_PERSIST) == 0 &&
             (node->flags & (DMF_LOADED_RES | DMF_LOADED_RAW)))
         {
-            // Check if we match either one of atime or mtime
-            if (((flags & DMPRUNE_ATIME) &&
-                currtime - node->atime >= agems) ||
-                ((flags & DMPRUNE_MTIME) &&
-                currtime - node->mtime >= agems))
+            if (((flags & DMPRUNE_ATIME) && stamp - node->atime >= agems) ||
+                ((flags & DMPRUNE_MTIME) && stamp - node->mtime >= agems))
             {
-                dmres_free_res_data(node);
-                dmres_free_raw_data(node);
+                dmResourceFreeResData(node);
+                dmResourceFreeRawData(node);
             }
         }
     }
--- a/dmres.h	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmres.h	Sun Apr 21 16:40:45 2013 +0300
@@ -31,18 +31,13 @@
 {
     DRF_USE_PACK    = 0x0001,
     DRF_USE_STDIO   = 0x0002,
-    DRF_PRELOAD_ALL = 0x0004,
+    DRF_PRELOAD_RAW = 0x0004,
     DRF_PRELOAD_RES = 0x0008,
 };
 
 enum
 {
-    DMF_PRELOAD_RAW = 0x0001, // Preload raw data
-    DMF_PRELOAD_RES = 0x0002, // Perform resource preloading (not 
-    DMF_PERSIST     = 0x0004, // Persist loaded resource (only freed at shutdown/explicit prune)
-    DMF_STREAM      = 0x0008, // This resource is streamed (UNSUPPORTED FOR NOW)
-    DMF_MASK        = 0x0fff,
-
+    DMF_PERSIST     = 0x0001, // Persist loaded RAW resource
     DMF_LOADED_RAW  = 0x1000, // Raw data has been loaded
     DMF_LOADED_RES  = 0x2000, // Resource has been loaded
 };
@@ -59,27 +54,31 @@
 {
     // Timestamps (in seconds from time())
     int    mtime,              // When resource was loaded
-           atime;              // Last accessed (dmres_ref()/unref)
+           atime;              // Last accessed (dmResourceRef()/unref)
     int    refcount;           // Reference count
 
     int    flags;              // Resource flags (DMF_*)
     char   *filename;
 
-    size_t dataSize;           // Size of data
-    off_t  dataOffset;         // Current offset in data
-    Uint8 *data;               // Pointer to data
+    // Raw data (or mem data)
+    size_t rawSize;            // Size of data
+    off_t  rawOffset;          // Current offset in data
+    Uint8 *rawData;            // Pointer to data
+
+    // Decoded resource data
+    void   *resData;
+    size_t resSize;
+    struct DMResourceDataOps *rops;
 
     int    error;              // Error code
 
-    struct DMResourceOps *fops;    // Pointer to file handling functions struct
-    struct DMResourceLib *lib;
-    struct DMResource *next, *prev;
+#ifdef DM_USE_STDIO
+    FILE * fh;                 // File handle for stdio
+#endif
 
-    void   *rdata;
-    size_t rdataSize;
-    struct DMResourceDataOps *rops;
-
-    FILE * fh;
+    struct DMResourceOps *fops;    // Pointer to file handling functions struct
+    struct DMResourceLib *lib;     // Pointer to the resource library
+    struct DMResource *next, *prev;
 } DMResource;
 
 
@@ -126,22 +125,19 @@
 
 /* Functions
  */
-int          dmres_init(DMResourceLib **lib, const char *filename, const char *path, const int flags, int (*classifier)(DMResource *));
-int          dmres_close(DMResourceLib *lib);
+int          dmResourcesInit(DMResourceLib **lib, const char *filename, const char *path, const int flags, int (*classifier)(DMResource *));
+int          dmResourcesClose(DMResourceLib *lib);
 
-void         dmres_prune(DMResourceLib *lib, int agems, int flags);
-int          dmres_preload(DMResourceLib *lib, BOOL start, int *loaded, int *total);
+void         dmResourcesPrune(DMResourceLib *lib, const int agems, int const flags);
+int          dmResourcesPreload(DMResourceLib *lib, BOOL start, int *loaded, int *total);
 
-void         dmres_flags_to_symbolic(char *str, size_t size, int flags);
-int          dmres_symbolic_to_flags(const char *str);
-
-DMResource * dmres_new(DMResourceLib *lib, const char *filename, int flags, size_t size);
-void         dmres_free(DMResource *node);
-void         dmres_insert(DMResourceLib *lib, DMResource * node);
-void         dmres_delete(DMResourceLib *lib, DMResource * node);
-DMResource * dmres_find(DMResourceLib *lib, const char *filename);
-int          dmres_ref(DMResource *);
-int          dmres_unref(DMResource *);
+DMResource * dmResourceNew(DMResourceLib *lib, const char *filename, const size_t size);
+void         dmResourceFree(DMResource *node);
+void         dmResourceInsert(DMResourceLib *lib, DMResource * node);
+void         dmResourceDelete(DMResourceLib *lib, DMResource * node);
+DMResource * dmResourceFind(DMResourceLib *lib, const char *filename);
+int          dmResourceRef(DMResource *);
+int          dmResourceUnref(DMResource *);
 
 
 // Opening and closing resources
--- a/dmsimple.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/dmsimple.c	Sun Apr 21 16:40:45 2013 +0300
@@ -80,11 +80,11 @@
 #endif
 #ifdef DM_USE_TREMOR
         case DM_ASETUP_TREMOR:
-            if (engine.audioPos + len >= engine.audioRes->rdataSize)
+            if (engine.audioPos + len >= engine.audioRes->resSize)
                 engine.exitFlag = TRUE;
             else
             {
-                memcpy(stream, engine.audioRes->rdata + engine.audioPos, len);
+                memcpy(stream, engine.audioRes->resData + engine.audioPos, len);
                 engine.audioPos += len;
             }
             break;
@@ -140,7 +140,7 @@
         if ((err = engineShowProgress(loaded, total)) != DMERR_OK)
             return err;
 
-        err = dmres_preload(engine.resources, first, &loaded, &total);
+        err = dmResourcesPreload(engine.resources, first, &loaded, &total);
         first = FALSE;
     }
     while (err == DMERR_PROGRESS);
@@ -607,7 +607,7 @@
 
     // Initialize resource subsystem
     dmPrint(1, "Initializing resources subsystem.\n");
-    if ((err = dmres_init(&engine.resources, engine.optPackFilename,
+    if ((err = dmResourcesInit(&engine.resources, engine.optPackFilename,
         engine.optDataPath, engine.optResFlags, engineClassifier)) != DMERR_OK)
     {
         dmError("Could not initialize resource manager, #%d: %s.\n", err, dmErrorStr(err));
@@ -890,7 +890,7 @@
 #endif
 
     engineShutdownEffects(&engine);
-    dmres_close(engine.resources);
+    dmResourcesClose(engine.resources);
 
     if (engine.demoShutdown != NULL)
         engine.demoShutdown(&engine);
--- a/tools/packed.c	Thu Apr 18 00:01:50 2013 +0300
+++ b/tools/packed.c	Sun Apr 21 16:40:45 2013 +0300
@@ -250,30 +250,6 @@
 }
 
 
-int dmAddFileToPack(DMPackFile *pack, const char *filename, int compression, int resFlags)
-{
-    DMPackEntry *node;
-    int res = dm_pack_add_file(pack, filename, compression, resFlags, &node);
-
-    if (res != DMERR_OK)
-    {
-        dmPrint(1, "%-32s [ERROR:%d]\n",
-            filename, res);
-    }
-    else
-    {
-        char tmp[16];
-        dmres_flags_to_symbolic(tmp, sizeof(tmp), node->resFlags);
-        dmPrint(1, "%-32s ['%s', s=%d, c=%d, o=%ld, f=%s]\n",
-            filename, node->filename,
-            node->size, node->length, node->offset,
-            tmp);
-    }
-
-    return res;
-}
-
-
 int main(int argc, char *argv[])
 {
     int i, res = 0;
@@ -314,12 +290,12 @@
         {
         case CMD_CREATE:
             dmMsg(1, "Creating new PACK\n");
-            res = dm_pack_create(optPackFilename, &pack);
+            res = dmPackCreate(optPackFilename, &pack);
             break;
 
         case CMD_ADD:
             dmMsg(1, "Opening existing PACK\n");
-            res = dm_pack_open(optPackFilename, &pack, FALSE);
+            res = dmPackOpen(optPackFilename, &pack, FALSE);
             break;
         }
 
@@ -330,18 +306,24 @@
 
             for (i = 0; i < nsrcFilenames; i++)
             {
-                // Handle resource definition files
-                if (srcFilenames[i][0] == '@')
+                DMPackEntry *node = NULL;
+                int res = dmPackAddFile(pack, srcFilenames[i], optCompress, optDefResFlags, &node);
+
+                if (res != DMERR_OK)
                 {
+                    dmPrint(1, "%-32s [ERROR:%d]\n",
+                        srcFilenames[i], res);
                 }
                 else
                 {
-                    dmAddFileToPack(pack, srcFilenames[i], optCompress, optDefResFlags);
+                    dmPrint(1, "%-32s ['%s', s=%d, c=%d, o=%ld, f=0x%04x]\n",
+                        srcFilenames[i], node->filename,
+                        node->size, node->length, node->offset, node->flags);
                 }
             }
 
-            dmMsg(1, "w=%d\n", dm_pack_write(pack));
-            dmMsg(1, "c=%d\n", dm_pack_close(pack));
+            dmMsg(1, "w=%d\n", dmPackWrite(pack));
+            dmMsg(1, "c=%d\n", dmPackClose(pack));
         }
         else
         {
@@ -352,7 +334,7 @@
 
     case CMD_LIST:
         // List files in PACK
-        res = dm_pack_open(optPackFilename, &pack, TRUE);
+        res = dmPackOpen(optPackFilename, &pack, TRUE);
         if (res == DMERR_OK)
         {
             DMPackEntry *node;
@@ -381,16 +363,13 @@
 
                 if (match)
                 {
-                    char flags[16];
-                    dmres_flags_to_symbolic(flags, sizeof(flags), node->resFlags);
-
-                    dmPrint(0, "%-32s | %8d | %8d | %08x | %s\n",
+                    dmPrint(0, "%-32s | %8d | %8d | %08x | %04x\n",
                         node->filename, node->size, node->length,
-                        node->offset, flags);
+                        node->offset, node->flags);
                 }
             }
 
-            dmMsg(1, "c=%d\n", dm_pack_close(pack));
+            dmMsg(1, "c=%d\n", dmPackClose(pack));
         }
         else
             dmError("Could not open packfile, error #%d: %s\n", res,
@@ -399,7 +378,7 @@
 
     case CMD_EXTRACT:
         // Extract files from PACK
-        res = dm_pack_open(optPackFilename, &pack, TRUE);
+        res = dmPackOpen(optPackFilename, &pack, TRUE);
         if (res == DMERR_OK)
         {
             DMPackEntry *node;
@@ -428,28 +407,19 @@
 
                 if (match && (node->privFlags & PACK_EXTRACTED) == 0)
                 {
-                    char tmp[16];
-
                     // Mark as done
                     node->privFlags |= PACK_EXTRACTED;
 
                     // Print one entry
-                    dmres_flags_to_symbolic(tmp, sizeof(tmp), node->resFlags);
-                    dmPrint(0, "Extracting: %-32s [siz=%d, cmp=%d, offs=0x%08x, flags=%s]\n",
+                    dmPrint(0, "Extracting: %-32s [siz=%d, cmp=%d, offs=0x%08x, flags=0x%04x]\n",
                             node->filename, node->size, node->length,
-                            node->offset, tmp);
+                            node->offset, node->flags);
 
-                    dm_pack_extract_file(pack, node);
-                    
-                    if (resFile != NULL)
-                    {
-                        fprintf(resFile,
-                        "%s|%s\n", node->filename, tmp);
-                    }
+                    dmPackExtractFile(pack, node);
                 }
             }
 
-            dmMsg(1, "c=%d\n", dm_pack_close(pack));
+            dmMsg(1, "c=%d\n", dmPackClose(pack));
             
             if (resFile != NULL)
                 fclose(resFile);