AttribSys Vault: Difference between revisions

Added breakdown and replaced Node with AttribEntry.
m (Normalization)
(Added breakdown and replaced Node with AttribEntry.)
 
(3 intermediate revisions by the same user not shown)
Line 68:
 
= Vault =
[[File:PUSMC01 AttribSys Breakdown.svg|thumb|A breakdown diagram of the Cavalry's vault.]]
 
The vault is a set of structures with [[#Attrib::Vault::ChunkBlock|ChunkBlocks]] which are read sequentially. In Burnout Paradise, these are:
* '''Vers''': The version
Line 90 ⟶ 92:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|-
| 0x8 || 0x8 || uint64_t || mVersion || Version hash ||
Line 100 ⟶ 102:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|-
| 0x8 || 0x8 || [[Attribute hash|HashInt]] || mCount || Number of dependencies ||
Line 111 ⟶ 113:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|-
| ??? || || || || ||
Line 122 ⟶ 124:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|}
 
Line 154 ⟶ 156:
|}
 
This is always followed by the types, then the entries (which are [[#Attrib::NodeCollectionLoadData::AttribEntry|nodesentries]]).
 
=== Attrib::NodeCollectionLoadData::AttribEntry ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 162 ⟶ 164:
| 0x0 || 0x8 || [[Attribute hash|Key]] || mKey || ||
|-
| 0x8 || 0x4 || [[#Attrib::Node::anon_union_0|anon_union_0]]void* || field_1mData || || Just a pointer
|-
| 0xC || 0x2 || uint16_t || mTypeIndexmType || ||
|-
| 0xE || 0x1 || uint8_t || mMaxmNodeFlags || ||
|-
| 0xF || 0x1 || uint8_t || mFlagsmEntryFlags || ||
|}
 
=== Attrib::Node::anon_union_0 ===
{| class="wikitable"
! Length !! Type !! Name !! Description !! Comments
|-
| 0x4 || void* || mPtr || ||
|-
| 0x4 || Array* || mArray || ||
|-
| 0x4 || uintptr_t || mValue || ||
|-
| 0x4|| uintptr_t || mOffset || ||
|}
 
Line 189 ⟶ 178:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|-
| 0x8 || 0x8 || [[Attribute hash|HashInt]] || mCount || Number of dependenciesexports ||
|}
 
Followed by [[#Attrib::Vault::ExportEntry|export entries]] of an amount defined by <code>mCount</code>.
 
=== Attrib::Vault::ExportEntry ===
Line 214 ⟶ 203:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|}
 
Line 242 ⟶ 231:
 
=== EPtrRefType ===
Information from Need for Speed ProStreet (RU PS2).
Information from [https://github.com/NFSTools/VaultLib/blob/master/VaultLib.Core/DataInterfaces/IPtrRef.cs VaultLib].
 
{| class="wikitable"
Line 268 ⟶ 257:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#Attrib::Vault::ChunkBlock|ChunkBlock]] || super_ChunkBlock || Base class ||
|}