BFEVFL: Difference between revisions

Jump to navigation Jump to search
115 bytes removed ,  5 years ago
→‎Container: reorder sections
imported>Leoetlino
imported>Leoetlino
(→‎Container: reorder sections)
Line 156: Line 156:


Containers are key-value mappings with keys being strings. A [[#Dictionary]] is used to store keys.
Containers are key-value mappings with keys being strings. A [[#Dictionary]] is used to store keys.
==== ContainerDataType enum ====
The following enum definition is complete and all names are official<ref>0x7101DA3EC8 in Switch 1.5.0</ref>.


{|class="wikitable"
{|class="wikitable"
! Value !! Name
! Offset !! Type !! Description
|-
|-
| 0 || Argument
| 0x0 || ContainerItem || Root container structure (data type is <code>Container</code>)
|-
| 1 || Container
|-
| 2 || Int
|-
| 3 || Bool
|-
| 4 || Float
|-
| 5 || String
|-
| 6 || Wide string ("wstring")
|-
| 7 || Int array
|-
| 8 || Bool array
|-
| 9 || Float array
|-
| 10 || String array
|-
| 11 || Wstring array
|-
| 12 || Actor identifier
|}
|}


Line 202: Line 175:
| 0x4 || u32 || Padding
| 0x4 || u32 || Padding
|-
|-
| 0x8 || Dictionary* || Dictionary (for container types)
| 0x8 || Dictionary* || Dictionary (only for the Container data type)
|-
|-
| 0x10 || any || Data
| 0x10 || ContainerItemData || Data
|}
|}


==== Container structure ====
==== ContainerItemData ====
The root container structure is a <code>ContainerItem</code> with the data type set to <code>Container</code>, a non-null dictionary (for item names), followed by pointers to children <code>ContainerItem</code>s.
 
==== Child item structure ====
For all other data types, the dictionary pointer is null.
 
{|class="wikitable"
{|class="wikitable"
! Data type !! Data !! Number of items
! Data type !! Data !! Number of items
Line 218: Line 186:
| Argument || String (not in string pool, follows item structure immediately) || 1
| Argument || String (not in string pool, follows item structure immediately) || 1
|-
|-
| Container || ? || ?
| Container || ContainerItem*[n] || n
|-
|-
| Int || Signed 32-bit integer || 1
| Int || Signed 32-bit integer || 1
Line 241: Line 209:
|-
|-
| Actor identifier || Two strings: actor name + secondary name || 2
| Actor identifier || Two strings: actor name + secondary name || 2
|}
==== ContainerDataType enum ====
The following enum definition is complete and all names are official<ref>0x7101DA3EC8 in Switch 1.5.0</ref>.
{|class="wikitable"
! Value !! Name
|-
| 0 || Argument
|-
| 1 || Container
|-
| 2 || Int
|-
| 3 || Bool
|-
| 4 || Float
|-
| 5 || String
|-
| 6 || Wide string ("wstring")
|-
| 7 || Int array
|-
| 8 || Bool array
|-
| 9 || Float array
|-
| 10 || String array
|-
| 11 || Wstring array
|-
| 12 || Actor identifier
|}
|}


Anonymous user

Navigation menu