Common Data Types: Difference between revisions

From Burnout Wiki
Content added Content deleted
(→‎GtHash: mention of it being basically CRC32 but with some int<->uint nonsense)
(Update and normalize information.)
Line 1: Line 1:
{{hatnote|This page is for types used in Takedown-era games. For types used in Paradise, see [[Common Data Types (Burnout Paradise)]]. For types used in Criterion NFS games, see [[Common Data Types (Need for Speed)]].}}

Data types used commonly by the pre-Paradise Burnout games.
Data types used commonly by the pre-Paradise Burnout games.


= Shared data types =
= Shared data types =
=== GtV3d ===
=== CGtV3d ===
A structure containing a vector of type <code>RwV3d</code>.
A structure containing a vector of type <code>RwV3d</code>.
{|class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x10 || u_long128 || mData || 16-byte integer holding an [[#RwV3d|RwV3d]] object ||
!Offset
!Name
!Type
|-
| 0x00 || Data || RwV3d
|}
|}


=== GtLine ===
=== CGtLine ===
A structure comprised of two vectors, used to represent a line in 3D space.
A structure comprised of two vectors, used to represent a line in 3D space.
{|class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mEndPoint || Start point ||
!Offset
!Name
!Type
|-
|-
| 0x00 || Start point || GtV3d
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mEndPoint || End point ||
|-
| 0x10 || End point || GtV3d
|}
|}


=== GtMatrix3x4 ===
=== CGtMatrix3x4 ===
A structure comprised of four vectors.
A structure comprised of four vectors.
{|class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x10 || [[#CGtV3d|CGtV3d]] || mRight || Right ||
!Offset
!Name
!Type
|-
|-
| 0x10 || 0x10 || [[#CGtV3d|CGtV3d]] || mUp || Up ||
| 0x00 || Right || GtV3d
|-
|-
| 0x10 || Up || GtV3d
| 0x20 || 0x10 || [[#CGtV3d|CGtV3d]] || mAt || At ||
|-
|-
| 0x30 || 0x10 || [[#CGtV3d|CGtV3d]] || mPos || Position ||
| 0x20 || At || GtV3d
|-
| 0x30 || Position || GtV3d
|}
|}


=== GtRGB ===
=== CGtRGB ===
A structure comprised of three floats, each representing a primary additive of an RGB color.
A vector with three floats, each representing a primary additive of an RGB color.
{|class="wikitable"
{| class="wikitable"
! Name !! Type !! Length !! Comments
|-
!Offset
!Name
!Type
|-
| 0x00 || Red additive || float
|-
| 0x04 || Green additive || float
|-
| 0x08 || Blue additive || float
|-
|-
| CGtRGB || [[#CGtV3d|CGtV3d]] || 0x10 || Red, green, and blue additives, respectively
|}
|}


=== GtHash ===
=== CGtHash ===
<code>GtHash</code> is 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]].
<code>CGtHash</code> is 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 ===
=== GtID ===
Line 66: Line 51:


For example, the string <code>BURNOUT</code> would be represented by the GtID <code>6226094955724800000</code>.
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 =
= RenderWare data types =
Line 72: Line 63:
=== RwV3d ===
=== RwV3d ===
A structure comprised of three floats, mainly used to represent the location of a point in 3D space.
A structure comprised of three floats, mainly used to represent the location of a point in 3D space.
{|class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || RwReal || x || X value ||
!Offset
!Name
!Type
|-
|-
| 0x00 || X value || float
| 0x4 || 0x4 || RwReal || y || Y value ||
|-
|-
| 0x04 || Y value || float
| 0x8 || 0x4 || RwReal || z || Z value ||
|-
| 0x08 || Z value || float
|-
| 0x0C || Padding || word
|}
|}


=== RwBBox ===
=== RwBBox ===
A structure defining the [https://en.wikipedia.org/wiki/Infimum_and_supremum supremum and infimum] vertices of a bounding box.
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 !! Description !! Comments
|-
!Offset
!Name
!Type
|-
|-
| 0x00 || Supremum vertex || RwV3d
| 0x0 || 0xC || [[#RwV3d|RwV3d]] || sup || Supremum vertex ||
|-
|-
| 0x10 || Infimum vertex || RwV3d
| 0xC || 0xC || [[#RwV3d|RwV3d]] || inf || Infimum vertex ||
|}
|}

Revision as of 04:45, 1 February 2023

Data types used commonly by the pre-Paradise Burnout games.

Shared data types

CGtV3d

A structure containing a vector of type RwV3d.

Offset Length Type Name Description Comments
0x0 0x10 u_long128 mData 16-byte integer holding an RwV3d object

CGtLine

A structure comprised of two vectors, used to represent a line in 3D space.

Offset Length Type Name Description Comments
0x0 0x10 CGtV3d mEndPoint Start point
0x10 0x10 CGtV3d mEndPoint End point

CGtMatrix3x4

A structure comprised of four vectors.

Offset Length Type Name Description Comments
0x0 0x10 CGtV3d mRight Right
0x10 0x10 CGtV3d mUp Up
0x20 0x10 CGtV3d mAt At
0x30 0x10 CGtV3d mPos Position

CGtRGB

A vector with three floats, each representing a primary additive of an RGB color.

Name Type Length Comments
CGtRGB CGtV3d 0x10 Red, green, and blue additives, respectively

CGtHash

CGtHash is 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

GtID is 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.

Name Type Length Comments
GtID RwUInt64 0x8

RenderWare data types

Hmmm...
Hmmm...
To do:
Move this section to its own page eventually, as these types originate from the RenderWare engine itself as opposed to any external codebases.

RwV3d

A structure comprised of three floats, mainly used to represent the location of a point in 3D space.

Offset Length Type Name Description Comments
0x0 0x4 RwReal x X value
0x4 0x4 RwReal y Y value
0x8 0x4 RwReal z Z value

RwBBox

A structure defining the supremum and infimum vertices of a bounding box.

Offset Length Type Name Description Comments
0x0 0xC RwV3d sup Supremum vertex
0xC 0xC RwV3d inf Infimum vertex