Common Data Types: Difference between revisions
Added axis aligned box. |
m Link RW data types where relevant. |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Data types used commonly by the pre-Paradise Burnout games. |
Data types used commonly by the pre-Paradise Burnout games. |
||
= |
= Numeric = |
||
=== CGtV3d === |
=== CGtV3d === |
||
A structure comprised of three floating-point component values (x, y, z), bundled into a single unsigned 128-bit value <code>mData</code>. See also <code>[[RenderWare Data Types#RwV3d|RwV3d]]</code>. |
|||
A structure containing a vector of type <code>RwV3d</code>. |
|||
⚫ | |||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type |
! Offset !! Length !! Type !! Description |
||
|- |
|- |
||
⚫ | |||
| 0x0 || 0x10 || u_long128 || mData || 16-byte integer holding an [[#RwV3d|RwV3d]] object || |
|||
⚫ | |||
| 0x4 || 0x4 || RwReal || Y component |
|||
⚫ | |||
| 0x8 || 0x4 || RwReal || Z component |
|||
⚫ | |||
| 0xC || 0x4 || ||Padding |
|||
|} |
|} |
||
= |
=== CGtV3dPlus === |
||
Very similar to the CGtV3d type, but includes an additional "plus" component. This extra component may be used to represent a different, but related quantity e.g. length. |
|||
⚫ | |||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type |
! Offset !! Length !! Type !! Description |
||
|- |
|- |
||
| 0x0 || |
| 0x0 || 0x4 || RwReal || X component |
||
|- |
|- |
||
| 0x4 || 0x4 || RwReal || Y component |
|||
⚫ | |||
⚫ | |||
| 0x8 || 0x4 || RwReal || Z component |
|||
|- |
|||
| 0xC || 0x4 || RwReal || Plus component |
|||
|} |
|} |
||
= Geometric = |
|||
⚫ | |||
⚫ | |||
A structure representing [https://en.wikipedia.org/wiki/Euclidean_planes_in_three-dimensional_space a flat 2D plane in 3D space]. Equivalent to <code>[[RenderWare Data Types#RwPlane|RwPlane]]</code>. |
|||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type |
! Offset !! Length !! Type !! Description |
||
|- |
|- |
||
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || |
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || Normal |
||
|- |
|- |
||
| |
| 0x0 || 0x10 || RwReal || Length |
||
|} |
|} |
||
=== |
=== CGtSphere === |
||
A structure |
A structure representing a sphere in 3D space, with a position and radius. |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type |
! Offset !! Length !! Type !! Description |
||
|- |
|- |
||
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || |
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || Position |
||
|- |
|- |
||
| |
| 0x0 || 0x10 || RwReal || Radius |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
|} |
|} |
||
=== |
=== CGtLine === |
||
⚫ | |||
A vector with three floats, each representing a primary additive of an RGB color. |
|||
{| class="wikitable" |
{| class="wikitable" |
||
! |
! Offset !! Length !! Type !! Name |
||
|- |
|- |
||
| |
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mStartPoint |
||
|- |
|||
⚫ | |||
|} |
|} |
||
=== CGtMatrix3x4 === |
|||
⚫ | |||
A structure comprised of four 3D vectors. Equivalent to <code>RwMatrix</code>. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
{| class="wikitable" |
{| class="wikitable" |
||
! |
! Offset !! Length !! Type !! Name |
||
|- |
|- |
||
| |
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mRight |
||
| |
|- |
||
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mUp |
|||
|- |
|||
⚫ | |||
|- |
|||
⚫ | |||
|} |
|||
⚫ | |||
= RenderWare data types = |
|||
Equivalent to <code>[[RenderWare Data Types#RwBBox|RwBBox]]</code>. |
|||
{{todo|Move this section to its own page eventually, as these types originate from the RenderWare engine itself as opposed to any external codebases.}} |
|||
⚫ | |||
⚫ | |||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type !! Name !! Description |
! Offset !! Length !! Type !! Name !! Description |
||
⚫ | |||
⚫ | |||
|- |
|- |
||
| |
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mSup || Supremum vertex |
||
|- |
|- |
||
| |
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mInf || Infimum vertex |
||
|} |
|} |
||
=== |
=== CGtOrthogonalBox === |
||
A structure defining the [https://en.wikipedia.org/wiki/Infimum_and_supremum supremum and infimum] vertices of a bounding box. |
|||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! Length !! Type !! Name |
! Offset !! Length !! Type !! Name |
||
|- |
|- |
||
| 0x0 || |
| 0x0 || 0x40 || [[#CGtMatrix3x4|CGtMatrix3x4]] || mBox |
||
⚫ | |||
| 0xC || 0xC || [[#RwV3d|RwV3d]] || inf || Infimum vertex || |
|||
|} |
|} |
||
⚫ | |||
A structure used to represent an RGBA color. It is an alias of the type <code>CGtV4d</code>. |
|||
⚫ | |||
=== CGtHash === |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ |
Latest revision as of 00:36, 28 April 2023
Data types used commonly by the pre-Paradise Burnout games.
Numeric
CGtV3d
A structure comprised of three floating-point component values (x, y, z), bundled into a single unsigned 128-bit value mData
. See also RwV3d
.
Often used to represent a point in 3D space.
Offset | Length | Type | Description |
---|---|---|---|
0x0 | 0x4 | RwReal | X component |
0x4 | 0x4 | RwReal | Y component |
0x8 | 0x4 | RwReal | Z component |
0xC | 0x4 | Padding |
CGtV3dPlus
Very similar to the CGtV3d type, but includes an additional "plus" component. This extra component may be used to represent a different, but related quantity e.g. length.
Offset | Length | Type | Description |
---|---|---|---|
0x0 | 0x4 | RwReal | X component |
0x4 | 0x4 | RwReal | Y component |
0x8 | 0x4 | RwReal | Z component |
0xC | 0x4 | RwReal | Plus component |
Geometric
CGtPlane
A structure representing a flat 2D plane in 3D space. Equivalent to RwPlane
.
Offset | Length | Type | Description |
---|---|---|---|
0x0 | 0x10 | CGtV3d | Normal |
0x0 | 0x10 | RwReal | Length |
CGtSphere
A structure representing a sphere in 3D space, with a position and radius.
Offset | Length | Type | Description |
---|---|---|---|
0x0 | 0x10 | CGtV3d | Position |
0x0 | 0x10 | RwReal | Radius |
CGtLine
A structure comprised of two vectors. Used to represent a line in 3D space.
Offset | Length | Type | Name |
---|---|---|---|
0x0 | 0x10 | CGtV3d | mStartPoint |
0x10 | 0x10 | CGtV3d | mEndPoint |
CGtMatrix3x4
A structure comprised of four 3D vectors. Equivalent to RwMatrix
.
Offset | Length | Type | Name |
---|---|---|---|
0x0 | 0x10 | CGtV3d | mRight |
0x10 | 0x10 | CGtV3d | mUp |
0x20 | 0x10 | CGtV3d | mAt |
0x30 | 0x10 | CGtV3d | mPos |
CGtAxisAlignedBox
Equivalent to RwBBox
.
Offset | Length | Type | Name | Description |
---|---|---|---|---|
0x0 | 0x10 | CGtV3d | mSup | Supremum vertex |
0x10 | 0x10 | CGtV3d | mInf | Infimum vertex |
CGtOrthogonalBox
Offset | Length | Type | Name |
---|---|---|---|
0x0 | 0x40 | CGtMatrix3x4 | mBox |
CGtRGBA
A structure used to represent an RGBA color. It is an alias of the type CGtV4d
.
Hashes
CGtHash
A derivative of CRC-32 — a 32-bit value storing the hash of a given string, generated via a custom hash function. These hashes are used by the Takedown-era games to identify and properly assign values within files such as the Value Database.
GtID
A data type used in many Criterion games as an identifier for objects. It is an alias of the type uint64_t
and is used to store a compressed ASCII string.
For example, the string BURNOUT
would be represented by the GtID 6226094955724800000
.