BurgerLib
Classes | Defines | Typedefs | Functions | Variables
rzresourcemanager.cpp File Reference
#include "rzrez.h"
#include "brendian.h"
#include "mmmemory.h"
#include "clstdlib.h"
#include "fmfile.h"
#include "grgraphics.h"
#include "brdebug.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "ststring.h"
Include dependency graph for rzresourcemanager.cpp:

Classes

struct  RezFileHeader_t
struct  RezEntry_t
struct  RezGroup_t
struct  RezName_t

Defines

#define REZFLAGEXTERNAL   1 /* TRUE if external files are allowed */
#define REZFLAGNOCACHE   2 /* TRUE if data caching is disabled */
#define MAXBUFFER   65536UL /* Size of decompression buffer */
#define REZOFFSETFIXED   0x80000000UL /* True if load in fixed memory */
#define REZOFFSETDECOMPMASK   0x60000000UL /* Mask for decompressors */
#define REZOFFSETMASK   0x1FFFFFFFUL /* Big enough for 1 Gig file (GD-ROM or CDRom) */
#define NAMEOFFSETMASK   0x0007FFFFUL /* Filename offset */
#define NAMEOFFSETDECOMPMASK   0x00180000UL /* Mask for decompressors */
#define NAMEOFFSETFIXED   0x00200000UL /* True if load in fixed memory */
#define NAMEOFFSETTESTED   0x00400000UL /* True if the filename was checked */
#define NAMEOFFSETFILE   0x00800000UL /* True if a file was found */
#define NAMEOFFSETREFCOUNT   0xFF000000UL /* Refcount mask */
#define NAMEOFFSETREFSHIFT   24U /* Bits to shift for the refcount */
#define NAMEOFFSETREFADD   (1UL<<NAMEOFFSETREFSHIFT) /* 1 in refcount format */
#define NAMEDECOMPSHIFT   19U

Typedefs

typedef struct RezFileHeader_t RezFileHeader_t
typedef struct RezEntry_t RezEntry_t
typedef struct RezGroup_t RezGroup_t
typedef struct RezName_t RezName_t

Functions

static void BURGER_ANSIAPI ResourceExit (void)
static int BURGER_ANSIAPI RezSortNames (const void *One, const void *Two)
static RezEntry_t *BURGER_API ResourceScan (RezHeader_t *Input, Word RezNum)
static Word BURGER_API ResourceFindName (RezHeader_t *Input, const char *RezName, RezName_t **Result)
static RezGroup_t ** RezGroupNew (const Word8 *RezData, const RezFileHeader_t *MyHeader, Word SwapFlag, Word32 StartOffset)
static void ResourceHashNames (RezHeader_t *Input)
RezHeader_t *BURGER_API ResourceNew (const char *FileName, Word32 StartOffset)
Word BURGER_API ResourceInit (RezHeader_t *Input, const char *FileName, Word32 StartOffset)
void BURGER_API ResourceDestroy (RezHeader_t *Input)
void BURGER_API ResourceDelete (RezHeader_t *Input)
Word BURGER_API ResourceInitMasterRezHeader (const char *FileName)
void BURGER_API ResourcePurgeCache (RezHeader_t *Input)
Word BURGER_API ResourceExternalFlag (RezHeader_t *Input, Word Flag)
Word BURGER_API ResourceDontCacheFlag (RezHeader_t *Input, Word Flag)
Word BURGER_API ResourceAddName (RezHeader_t *Input, const char *RezName)
void BURGER_API ResourceRemove (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourceRemoveName (RezHeader_t *Input, const char *RezName)
Word BURGER_API ResourceRead (RezHeader_t *Input, Word RezNum, void *DestPtr, Word32 BufSize)
void *BURGER_API ResourceLoad (RezHeader_t *Input, Word RezNum)
void *BURGER_API ResourceLoadByName (RezHeader_t *Input, const char *RezName)
void **BURGER_API ResourceLoadHandle (RezHeader_t *Input, Word RezNum)
void **BURGER_API ResourceLoadHandleByName (RezHeader_t *Input, const char *RezName)
void BURGER_API ResourceRelease (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourceReleaseByName (RezHeader_t *Input, const char *RezName)
void BURGER_API ResourceKill (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourceKillByName (RezHeader_t *Input, const char *RezName)
void BURGER_API ResourceDetach (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourceDetachByName (RezHeader_t *Input, const char *RezName)
void BURGER_API ResourcePreload (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadByName (RezHeader_t *Input, const char *RezName)
Word BURGER_API ResourceGetRezNum (RezHeader_t *Input, const char *RezName)
Word BURGER_API ResourceGetName (RezHeader_t *Input, Word RezNum, char *Buffer, Word BufferSize)
Word BURGER_API ResourceGetIDFromHandle (RezHeader_t *Input, const void **RezHand, Word *IDFound, char *NameBuffer, Word NameBufferSize)
Word BURGER_API ResourceGetIDFromPointer (RezHeader_t *Input, const void *RezPtr, Word *IDFound, char *NameBuffer, Word NameBufferSize)
RezNameReturn_t *BURGER_API ResourceGetNameArray (RezHeader_t *Input, Word *EntryCountPtr)
void BURGER_API ResourceLogDecompressor (RezHeader_t *Input, Word CompressID, ResourceDecompressorProcPtr Proc)
LWShape_t *BURGER_API ResourceLoadShape (RezHeader_t *Input, Word RezNum)
LWXShape_t *BURGER_API ResourceLoadXShape (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadShape (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadXShape (RezHeader_t *Input, Word RezNum)
void *BURGER_API ResourceLoadShapeArray (RezHeader_t *Input, Word RezNum)
void *BURGER_API ResourceLoadXShapeArray (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadShapeArray (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadXShapeArray (RezHeader_t *Input, Word RezNum)
LWShape_t **BURGER_API ResourceLoadShapeHandle (RezHeader_t *Input, Word RezNum)
LWXShape_t **BURGER_API ResourceLoadXShapeHandle (RezHeader_t *Input, Word RezNum)
void **BURGER_API ResourceLoadShapeArrayHandle (RezHeader_t *Input, Word RezNum)
void **BURGER_API ResourceLoadXShapeArrayHandle (RezHeader_t *Input, Word RezNum)
GfxShape_t *BURGER_API ResourceLoadGfxShape (RezHeader_t *Input, Word RezNum)
void BURGER_API ResourcePreloadGfxShape (RezHeader_t *Input, Word RezNum)
void **BURGER_API ResourceLoadGfxShapeHandle (RezHeader_t *Input, Word RezNum)

Variables

static Word8 OnceHit
RezHeader_t MasterRezHeader
Bool ResourceJustLoaded = FALSE

Define Documentation

#define MAXBUFFER   65536UL /* Size of decompression buffer */
#define NAMEDECOMPSHIFT   19U
#define NAMEOFFSETDECOMPMASK   0x00180000UL /* Mask for decompressors */
#define NAMEOFFSETFILE   0x00800000UL /* True if a file was found */
#define NAMEOFFSETFIXED   0x00200000UL /* True if load in fixed memory */
#define NAMEOFFSETMASK   0x0007FFFFUL /* Filename offset */
#define NAMEOFFSETREFADD   (1UL<<NAMEOFFSETREFSHIFT) /* 1 in refcount format */
#define NAMEOFFSETREFCOUNT   0xFF000000UL /* Refcount mask */
#define NAMEOFFSETREFSHIFT   24U /* Bits to shift for the refcount */
#define NAMEOFFSETTESTED   0x00400000UL /* True if the filename was checked */
#define REZFLAGEXTERNAL   1 /* TRUE if external files are allowed */
#define REZFLAGNOCACHE   2 /* TRUE if data caching is disabled */
#define REZOFFSETDECOMPMASK   0x60000000UL /* Mask for decompressors */
#define REZOFFSETFIXED   0x80000000UL /* True if load in fixed memory */
#define REZOFFSETMASK   0x1FFFFFFFUL /* Big enough for 1 Gig file (GD-ROM or CDRom) */

Typedef Documentation

typedef struct RezEntry_t RezEntry_t
typedef struct RezGroup_t RezGroup_t
typedef struct RezName_t RezName_t

Function Documentation

Word BURGER_API ResourceAddName ( RezHeader_t Input,
const char *  RezName 
)
void BURGER_API ResourceDetach ( RezHeader_t Input,
Word  RezNum 
)
void BURGER_API ResourceDetachByName ( RezHeader_t Input,
const char *  RezName 
)
static void BURGER_ANSIAPI ResourceExit ( void  ) [static]
static Word BURGER_API ResourceFindName ( RezHeader_t Input,
const char *  RezName,
RezName_t **  Result 
) [static]
Word BURGER_API ResourceGetIDFromHandle ( RezHeader_t Input,
const void **  RezHand,
Word IDFound,
char *  NameBuffer,
Word  NameBufferSize 
)
Word BURGER_API ResourceGetIDFromPointer ( RezHeader_t Input,
const void RezPtr,
Word IDFound,
char *  NameBuffer,
Word  NameBufferSize 
)
Word BURGER_API ResourceGetName ( RezHeader_t Input,
Word  RezNum,
char *  Buffer,
Word  BufferSize 
)
RezNameReturn_t* BURGER_API ResourceGetNameArray ( RezHeader_t Input,
Word EntryCountPtr 
)
Word BURGER_API ResourceGetRezNum ( RezHeader_t Input,
const char *  RezName 
)
static void ResourceHashNames ( RezHeader_t Input) [static]
Word BURGER_API ResourceInit ( RezHeader_t Input,
const char *  FileName,
Word32  StartOffset 
)
Word BURGER_API ResourceInitMasterRezHeader ( const char *  FileName)
void BURGER_API ResourceKill ( RezHeader_t Input,
Word  RezNum 
)
void BURGER_API ResourceKillByName ( RezHeader_t Input,
const char *  RezName 
)
void* BURGER_API ResourceLoad ( RezHeader_t Input,
Word  RezNum 
)
void* BURGER_API ResourceLoadByName ( RezHeader_t Input,
const char *  RezName 
)
GfxShape_t* BURGER_API ResourceLoadGfxShape ( RezHeader_t Input,
Word  RezNum 
) [read]
void** BURGER_API ResourceLoadHandle ( RezHeader_t Input,
Word  RezNum 
)
void** BURGER_API ResourceLoadHandleByName ( RezHeader_t Input,
const char *  RezName 
)
LWShape_t* BURGER_API ResourceLoadShape ( RezHeader_t Input,
Word  RezNum 
) [read]
LWShape_t** BURGER_API ResourceLoadShapeHandle ( RezHeader_t Input,
Word  RezNum 
) [read]
LWXShape_t* BURGER_API ResourceLoadXShape ( RezHeader_t Input,
Word  RezNum 
) [read]
LWXShape_t** BURGER_API ResourceLoadXShapeHandle ( RezHeader_t Input,
Word  RezNum 
) [read]
RezHeader_t* BURGER_API ResourceNew ( const char *  FileName,
Word32  StartOffset 
)
void BURGER_API ResourcePreload ( RezHeader_t Input,
Word  RezNum 
)
void BURGER_API ResourcePreloadByName ( RezHeader_t Input,
const char *  RezName 
)
Word BURGER_API ResourceRead ( RezHeader_t Input,
Word  RezNum,
void DestPtr,
Word32  BufSize 
)
void BURGER_API ResourceRelease ( RezHeader_t Input,
Word  RezNum 
)
void BURGER_API ResourceReleaseByName ( RezHeader_t Input,
const char *  RezName 
)
void BURGER_API ResourceRemove ( RezHeader_t Input,
Word  RezNum 
)
void BURGER_API ResourceRemoveName ( RezHeader_t Input,
const char *  RezName 
)
static RezEntry_t* BURGER_API ResourceScan ( RezHeader_t Input,
Word  RezNum 
) [static]
static RezGroup_t** RezGroupNew ( const Word8 RezData,
const RezFileHeader_t MyHeader,
Word  SwapFlag,
Word32  StartOffset 
) [static]
static int BURGER_ANSIAPI RezSortNames ( const void One,
const void Two 
) [static]

Variable Documentation

Word8 OnceHit [static]