Common Data Types (Burnout Paradise)

Some of the more commonly seen data types in Burnout Paradise. This list is WIP.

= Set/Array = A  or   is a contiguous series of elements of a specified data type, followed by the number of elements. Though technically separate,  and   have the same structure.

Typically, the element count is succeeded by 4 bytes of padding; however, as seen in Profile 1.9, it may have no padding.

As an example, the below is the structure of.

= BitArray = As the name would suggest, a  is an array of bits. Unlike an, the element count is not part of the structure, making it hardcoded.

Note that a  is stored as a series of. This can be confusing if the data is in little endian byte order. Due to this, every, even when below 64 bits in length, is padded to 64 bits.

The below is the structure of. Notice how even though the bits only take up 0x19 bytes, 0x20 bytes are allocated.

= CgsID = A, though technically just a typedef of  , is heavily used across the game. Its original intent appears to be as a new moniker for GtID, Criterion's in-house compressed string type, and it sees extensive use in this role. However, at times, it is also used to store the IDs colloquially referred to as GameDB IDs. Conversely, GameDB IDs are not always stored as a, commonly being a normal   or   instead.

= Vectors = Criterion used several vector formats, including,  , and. Todo.

= Matrices = Criterion used several matrix formats, including,  , and. Todo.

= Hashes = Criterion used several hash formats, including  (AttribSys),   (Bundle), and   (Registry). Todo.