Jump to content

Common Data Types: Difference between revisions

Stuff
(Added CGtSphere.)
(Stuff)
Line 3:
Data types used commonly by the pre-Paradise Burnout games.
 
= VectorsNumeric =
=== CGtV3d ===
A structure containingcomprised of three floating-point component values (x, y, z), bundled into a vectorsingle ofunsigned type128-bit value <code>RwV3dmData</code>.
 
Often used to represent a point in 3D space.
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || RwReal || X component
| 0x0 || 0x10 || u_long128 || mData || 16 bytes holding an [[#RwV3d|RwV3d]] object ||
|-
| 0x4 || 0x4 || RwReal || Y component
|-
| 0x8 || 0x4 || RwReal || Z component
|}-
| GtID0xC || RwUInt640x4 || 0x8RwReal ||
|}
 
=== 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.
{{todo|Find out what object this holds.}}
 
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|}-
| 0x0 || 0x4 || RwReal || X component
|-
| 0x4 || 0x4 || RwReal || Y component
|-
| 0x8 || 0x4 || RwReal || Z component
|-
| 0xC || 0x4 || RwReal || Plus component
| 0x0 || 0x10 || u_long128 || mData || 16 bytes holding an unknown object ||
|}
 
= Geometric =
=== CGtPlane ===
A structure containingrepresenting [https://en.wikipedia.org/wiki/Euclidean_planes_in_three-dimensional_space a structureflat 2D plane in 3D space]. ofEquivalent typeto <code>RwPlane</code>.
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || u_long128 || mData || 16 bytes holding an [[#RwPlane|RwPlane]] objectCGtV3d || Normal
|-
| 0x0 || 0x10 || RwReal || Length
|}
 
=== CGtSphere ===
A structure representing a sphere in 3D space, with a position and radius.
{{todo|Find out what object this holds.}}
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || u_long128 || mData || 16 bytes holding an unknown objectCGtV3d || Position
|}
 
= Matrices =
=== CGtAxisAlignedBox ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mSup || Supremum vertexRwReal || Radius
|-
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mInf || Infimum vertex ||
|}
 
=== CGtLine ===
A structure comprised of two vectors,. usedUsed to represent a line in 3D space.
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mStartPoint || Start point ||
|-
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mEndPoint || End point ||
|}
 
=== CGtMatrix3x4 ===
A structure comprised of four 3D vectors. Equivalent to <code>RwMatrix</code>.
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mRight || Right ||
|-
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mUp || Up ||
|-
| 0x20 || 0x10 || [[#CGtV3d|CGtV3d]] || mAt || At ||
|-
| 0x30 || 0x10 || [[#CGtV3d|CGtV3d]] || mPos || Position ||
|}
 
=== CGtAxisAlignedBox ===
Equivalent to <code>RwBBox</code>.
 
=== CGtOrthogonalBox ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x100x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mInfmSup || InfimumSupremum vertex ||
|-
| 0x00x10 || 0x400x10 || [[#CGtMatrix3x4CGtV3d|CGtMatrix3x4CGtV3d]] || mBoxmInf || Infimum || vertex
|}
 
=== CGtRGBCGtOrthogonalBox ===
A vector with three floats, each representing a primary additive of an RGB color.
{| class="wikitable"
! NameOffset !! TypeLength !! LengthType !! CommentsName
|-
| 0x0 || 0x40 || [[#CGtMatrix3x4|CGtMatrix3x4]] || mBox
| CGtRGB || [[#CGtV3d|CGtV3d]] || 0x10 || Red, green, and blue additives, respectively
|}
 
=== CGtRGBA ===
A structure used to represent an RGBA color. It is an alias of the type <code>CGtV4d</code>.
 
= Hashes =
=== CGtHash ===
<code>CGtHash</code> is aA derivative of CRC-32—a32 — 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 ===
<code>GtID</code> is aA data type used in many Criterion games as an identifier for objects. It is an alias of the type <code>uint64_t</code> and is used to store a compressed ASCII string.
 
For example, the string <code>BURNOUT</code> would be represented by the GtID <code>6226094955724800000</code>.
 
{| class="wikitable"
! Name !! Type !! Length !! Comments
|-
| GtID || RwUInt64 || 0x8 ||
|}
 
= RenderWare data types =
{{todo|Move this section to its own page eventually, as these types originate from the RenderWare engine itself as opposed to any external codebases.}}
 
Cookies help us deliver our services. By using our services, you agree to our use of cookies.