RwBinaryStream

From GTAMods Wiki
Revision as of 01:27, 29 May 2007 by Shrew (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Reading Binary Streams

RwStreams are heirarchical streams of sections. Every section consists of:

  • (gauranteed) RwHeader
  • (gauranteed) RwData child section
  • (optional) Children sections

RwType

enum
{
    rwDATA = 1,
    rwSTRING = 2,
    rwEXTENSION = 3,
    rwTEXTURE = 6,
    rwMATERIAL = 7,
    rwMATERIALLIST = 8,
    rwFRAMELIST = 14,
    rwGEOMETRY = 15,
    rwCLUMP = 16,
    rwLIGHT = 18,
    rwATOMIC = 20,
    rwTEXTURENATIVE = 21,
    rwTEXDICT = 22,
    rwGEOMETRYLIST = 26,
    rwMATERIALSPLIT = 124,
    rwFRAME = 39056126,
    rwPLUGIN_PARTICLES = 0x118,
    rwPLUGIN_MATERIALEFFECTS = 0x120,
    rwPLUGIN_BINMESH = 0x50e,
};

RwHeader

struct RwHeader
{
    s32 sectionType; // RwType
    s32 sectionSize;
    u8 unknown[2];
    s16 versionNumber;
};

Dff Files

Top level section is always a single RwClump.

RwClump section

VersionNumber(s) 0, 2048
  • Gauranteed
  • First and only data
struct RwClump_RwData
{
    s32 objectCount;
}; 
VersionNumber(s) 3074, 4099, 6147
  • Gauranteed
  • First data
struct RwClump_RwData
{
    s32 objectCount;
    u8 unknown[8];
};
  • Optional
  • Second and subsequent data
struct RwClump_RwData
{
    u8 unknown[4];
};

Txd Files

Top level section is always a single RwTexdict.