Formats/SSXTricky:LTG Level File: Difference between revisions

From SSX Modding Wiki
(Created page with "LTG File")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Overview ==
LTG File
This file is used by the game to tell it how to load the objects in by using a tree grouping system.

== 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 With Sprites Count
|-
|UInt16
|Total Nodes All Lights 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 With Sprites Index Offset
|-
|UInt32
|All Lights 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 Count
|-
|UInt16
|Total Instance And Gem Count
|-
|UInt16
|Total Spline Count
|-
|UInt16
|Total Light With Sprites Count
|-
|UInt16
|Total All Lights Count
|-
|UInt16
|Total Particle Instance Count
|-
|UInt16
|Unknown
|-
|UInt32
|Patch Index Offset
|-
|UInt32
|Instance And Gem Index Offset
|-
|UInt32
|Light With Sprites Index Offset
|-
|UInt32
|Light All Index Offset
|-
|UInt32
|Particle Instance Index Offset
|}
==== Index List ====
All Lists are read like this and the pointers lead to data within the pbd file
{| class="wikitable"
!Type
!Description
|-
|UInt32
|Pointer
|}

Latest revision as of 14:40, 14 December 2022

Overview

This file is used by the game to tell it how to load the objects in by using a tree grouping system.

Structure

Header

Magic Words
Type Description
Byte Unknown
Byte Cold Fusion Version
Byte Cold Fusion Revision
Byte Endianess
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

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

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 With Sprites Count
UInt16 Total Nodes All Lights 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 With Sprites Index Offset
UInt32 All Lights 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

Type Description
Vector3 Node Box Lowest XYZ
Vector3 Node Box Highest XYZ
Vector3 Node Box Origin XYZ
UInt16 Total Patch Count
UInt16 Total Instance Count
UInt16 Total Instance And Gem Count
UInt16 Total Spline Count
UInt16 Total Light With Sprites Count
UInt16 Total All Lights Count
UInt16 Total Particle Instance Count
UInt16 Unknown
UInt32 Patch Index Offset
UInt32 Instance And Gem Index Offset
UInt32 Light With Sprites Index Offset
UInt32 Light All Index Offset
UInt32 Particle Instance Index Offset

Index List

All Lists are read like this and the pointers lead to data within the pbd file

Type Description
UInt32 Pointer