RpClump
{{{NAME}}} | |
---|---|
RenderWare Stream Section | |
Vendor | {{{VENDORNAME}}} |
Module | {{{MODULENAME}}} |
Module ID | 0x{{{MODULEID}}}
|
Identifier | 0x{{{IDENTIFIER}}}
|
Chunk ID | 0x{{{MODULEID}}}{{{IDENTIFIER}}}
|
Versions | All |
Hierarchy | |
Parents: None | |
Children: None | |
Extensions: None | |
File Format |
A Clump is a container for Frames, Atomics, Light and Cameras.
In a binary stream a Clump's child chunks are a Struct (described below), a Frame List, a Geometry List, a number of Atomics, optionally a number of Structs and Lights and a number of Structs and Cameras (Cameras are unused in GTA).
Mulitple Clumps may appear inside one .dff
file. There is no counting variable stored inside the file defining how many Clumps are stored inside it.
Cameras and Lights as part of Clumps were first introduced after version 0x33000
. Versions 0x33000
and below do not have them.
Stream Format
The Clump's Struct has the following format:
4b - RwInt32 - Number of Atomics 4b - RwInt32 - Number of Lights - only present after version 0x33000 4b - RwInt32 - Number of Cameras - only present after version 0x33000 but 0 in all GTA files
Following the struct are a Frame List and a Geometry List. After that a number of Atomics as given by the atomic count. If the Clump has lights or cameras, next come pairs of Structs and Lights and Structs and Cameras respectively. In both cases the Struct contains a 4 byte index into the Frame List for the Frame the Light or Camera should be attached to.
Some DFFs deviate from the above structure. loplyguy.dff
in GTA III (a version 0x30200
file) has no Geometry List. Instead the Geometries are children of their respective Atomic chunks (and consequently the Atomic Struct is 4 bytes shorter for having no geometry index).