Wrp File Format - 8WVR
Introduction
- To do...
Legend
Type | Description |
---|---|
byte | 8 bit (1 byte) |
short | 16 bit signed short (2 bytes) |
int | 32 bit signed integer (4 bytes) |
float | 32 bit signed single precision floating point value (4 bytes) |
asciiz | Null terminated (0x00) variable length ascii string |
ascii | fixed length ascii string |
Although technically there should never be negetive values for many of the 16 bit & 32 bit values, it's 'safer' in programming terms to use signed datatypes as opposed to unsigned datatypes.
File Format
- The following is a mix of pseudo-code and structure references that could be used to describe the file format of 8WVR.wrp game island.
- Any naming definitions or naming conventions used may or may not be accurate.
- This file format is principally used with Armed Assault.
8WVR
{
structHeader Header
{
char[4] Filetype;
int TextureGrid_X;
int TextureGrid_Z;
int TerrainGrid_X;
int TerrainGrid_Z;
float CellSize;
}
float[TerrainGrid_Z,TerrainGrid_X] Elevations;
short[TextureGrid_Z,TextureGrid_X] TextureGridMaterials;
int NoOfMaterials - 1; //1 Based array.
structMaterial[NoOfMaterials] Materials
{
int Unknown;
int Length;
ascii[Length] Material;
}
int Unknown;
structObject[NoOfObjects] Objects
{
float[12] TransformMatrix;
int ObjectId;
int Length;
ascii[Length] Object;
}
}
Notes
- The 'Elevations' array extends from Bottom-Left to Top-Right in Visitor;
- The 'TextureGridMaterials' array is a mapping of .rvmat material files to TextureGrid cells/tiles.
- The 'Objects' array will always have at least 1 entry. Denoting the 'center' of the map.
- The 'Objects' array is the last structure in the file and the 'NoOfObjects' is a variable amount and extends from the starting offset of the structure to the EndOfFile.
- The 'TransformMatrix' for a given object is a standard 4,3 transform matrix which when decomposed determines the objects x,y,z position, scale & orientation (NB: Special logic must be applied to decompose the orientation from a Matrix.).