Formats/SSXTricky:LTG Level File: Difference between revisions

no edit summary
(Created page with "LTG File")
 
No edit summary
== Overview ==
LTG File
 
== Structure ==
 
=== Header ===
{| class="wikitable"
|+Magic Words
!Type
!Description
|-
|Byte
|Unknown
|-
|Byte
|Cold Fusion Version
|-
|Byte
|Cold Fusion Revision
|-
|Byte
|Endianess
|}
{| class="wikitable"
|+
!Type
!Description
|-
|Vector3
|World Lowest XYZ
|-
|Vector3
|World Highest XYZ
|-
|Vector3
|World Origin XYZ
|-
|Float32
|Main Box Default Size
|-
|UInt32
|Pointer List Width
|-
|UInt32
|Pointer List Height
|-
|UInt32
|Total List Size
|-
|UInt32
|Main Box Used Count
|-
|UInt32
|Main Box Empty Count
|-
|Float32
|Node Box Default Size
|-
|UInt32
|Node Box Width
|-
|UInt32
|Node Box Count
|-
|UInt32
|Pointer List Offset
|-
|UInt32
|Main Box Data Offset
|}
 
=== Pointer Offset List ===
In order to get the best results its better to read this list as a 2D array. Any Offsets that lead to 0x00 have no data
{| class="wikitable"
|+
!Type
!Description
|-
|UInt32
|Pointer Offset
|}
 
=== Main Box Data ===
In order to get the best results its better to read this list as a 2D array.
 
Within this data set is contained a Main Box Header Data, Node Box Data and Index Lists.
 
Any offset within this portion of the data structure is relative to the Pointer Offset Used
 
==== Main Box Header Data ====
{| class="wikitable"
!Type
!Description
|-
|Vector3
|Main Box Lowest XYZ
|-
|Vector3
|Main Box Highest XYZ
|-
|Vector3
|Main Box Origin XYZ
|-
|UInt16
|Total Node Patch Count
|-
|UInt16
|Total Nodes Instance And Gem Count
|-
|UInt16
|Total Nodes Spline Count
|-
|UInt16
|Total Nodes Light Count
|-
|UInt16
|Total Nodes Light Crossing Count
|-
|UInt16
|Total Nodes Particle Instance Count
|-
|UInt32
|Unknown
|-
|UInt32
|Total Elements (All Patches, Splines, Instances... ect)
|-
|UInt32
|Main Box Header Size/Node Data Offset
|-
|UInt32
|Patch Index Offset
|-
|UInt32
|Instance And Gem Index Offset
|-
|UInt32
|Light Index Offset
|-
|UInt32
|Light Crossing Index Offset
|-
|UInt32
|Particle Instance Index Offset
|}
 
==== Node Box Data ====
In order to get the best results its better to read this list as a 2D array
{| class="wikitable"
!Type
!Description
|-
|Vector3
|Node Box Lowest XYZ
|-
|Vector3
|Node Box Highest XYZ
|-
|Vector3
|Node Box Origin XYZ
|-
|UInt16
|Total Patch Count
|-
|UInt16
|Total Instance And Gem Count
|-
|UInt16
|Total Spline Count
|-
|UInt16
|Total Light Count
|-
|UInt16
|Total Light Crossing Count
|-
|UInt16
|Total Particle Instance Count
|-
|UInt16
|Unknown
|-
|UInt32
|Patch Index Offset
|-
|UInt32
|Instance And Gem Index Offset
|-
|UInt32
|Light Index Offset
|-
|UInt32
|Light Crossing Index Offset
|-
|UInt32
|Particle Instance Index Offset
|}
 
==== Index List ====
All Lists are read like this
{| class="wikitable"
!Type
!Description
|-
|UInt32
|Pointer Offset
|}