diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-08-02 18:36:50 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-08-02 18:36:50 +0200 |
commit | a786dd45a4ebc6b91936b5e46d0ef0a9befc05af (patch) | |
tree | ced50966eaaf373f8733547046baf2bdc558662d /sdk/rwsdk/include/d3d8/rttoc.h | |
parent | Merge branch 'master' of https://github.com/GTAmodding/re3 into erorcun (diff) | |
download | re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar.gz re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar.bz2 re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar.lz re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar.xz re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.tar.zst re3-a786dd45a4ebc6b91936b5e46d0ef0a9befc05af.zip |
Diffstat (limited to 'sdk/rwsdk/include/d3d8/rttoc.h')
-rw-r--r-- | sdk/rwsdk/include/d3d8/rttoc.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/sdk/rwsdk/include/d3d8/rttoc.h b/sdk/rwsdk/include/d3d8/rttoc.h new file mode 100644 index 00000000..02893aa8 --- /dev/null +++ b/sdk/rwsdk/include/d3d8/rttoc.h @@ -0,0 +1,99 @@ +/*************************************************************************** + * * + * Module : rttoc.h * + * * + * Purpose : Table Of Contents (TOC) * + * * + **************************************************************************/ + +#ifndef RTTOC_H +#define RTTOC_H + +/** + * \defgroup rttoc RtTOC + * \ingroup rttool + * + * Table Of Contents (TOC) - e.g. creating a TOC for a RwStream. + */ + +/**************************************************************************** + Includes + */ +#include "rwcore.h" + +#include "rpcriter.h" + +/**************************************************************************** + Defines + */ + +/**************************************************************************** + Global Types + */ + +typedef struct _rtTOCGUID _rtTOCGUID; +struct _rtTOCGUID +{ + RwUInt32 data1; + RwUInt16 data2; + RwUInt16 data3; + RwUInt8 data4[8]; +}; + +typedef struct RtTOCEntry RtTOCEntry; +/** + * \ingroup rttoc + * \struct RtTOCEntry + * + * BLAH + */ +struct RtTOCEntry +{ + RwCorePluginID id; /**< Chunk ID */ + RwUInt32 offset;/**< Offset of chunk from the start of the file + * including TOC */ + _rtTOCGUID guid; /**< GUID */ +}; + +typedef struct RtTOC RtTOC; + +/** + * \ingroup rttoc + * \struct RtTOC + * + * BLAH + */ +struct RtTOC +{ + RwInt32 numEntries; /**< Number of entries*/ + RtTOCEntry entry[1]; /**< Entry*/ +}; + +/**************************************************************************** + Function prototypes + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* Create/Destroy */ +extern RtTOC *RtTOCCreate(RwStream *stream); +extern void RtTOCDestroy(RtTOC *toc); + +/* Access */ +extern RwInt32 RtTOCGetNumEntries(const RtTOC *toc); +extern RtTOCEntry *RtTOCGetEntry(RtTOC *toc, RwInt32 entry); + +/* Serialization */ +extern RwUInt32 RtTOCStreamGetSize(const RtTOC *toc); +extern const RtTOC *RtTOCStreamWrite(RtTOC *toc, RwStream *stream); +extern RtTOC *RtTOCStreamRead(RwStream *stream); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* RTTOC_H */ |