Difference between revisions of "TRE STFFileType"

From SWGANH Wiki
Jump to: navigation, search
(New page: {| class="wikitable" |Understood at||{{75P}} |} {{Box_TREformats|STF ''format''| It contains all the game's strings. During network communications the strings are identificated with: filen...)
 
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| class="wikitable"
+
{{Box_TREformats|STF ''format'' (80% understood)|
|Understood at||{{75P}}
+
|}
+
{{Box_TREformats|STF ''format''|
+
 
It contains all the game's strings. During network communications the strings are identificated with: filename without extension + code + ansi string id.
 
It contains all the game's strings. During network communications the strings are identificated with: filename without extension + code + ansi string id.
 
}}
 
}}
Header:
 
 
{| class="wikitable"
 
{| class="wikitable"
|{{int}}
+
|{{int}}||STF file type header id (sequence: 0xCD 0xAB 0x00 0x00, value: 0x0000ABCD = 43981)
|STF file type header id (sequence: 0xCD 0xAB 0x00 0x00, value: 0x0000ABCD = 43981)
+
 
|-
 
|-
|{{byte}}
+
|{{byte}}||useless? flag (might be a boolean, seen so far: 0x01 and 0x00)
|useless? flag (might be a boolean, seen so far: 0x01 and 0x00)
+
 
|-
 
|-
|{{int}}
+
|{{int}}||next free index in file to add an item, always > items count (useless for us)
|next free index in file to add an item, always > items count (useless for us)
+
 
|-
 
|-
|{{int}}
+
|{{int}}||items count
|items count
+
 
|}
 
|}
Then items list, for each:
+
{{beginlist|items|items count}}
{| class="wikitable"
+
:{| class="wikitable"
|{{int}}
+
|{{int}}||item index in the file (eg: 1, 2, 9, 3, 7, ...)
|item index in the file (eg: 1, 2, 9, 3, 7, ...)
+
 
|-
 
|-
|{{int}}
+
|{{int}}||code (gesture?)
|code (gesture?)
+
 
|-
 
|-
|{{int}}
+
|{{u_string}}||4 bytes length + 2 bytes chars (eg: "hello world" is 11 digits long, 22 bytes total)
|unicode digits count of the sentence (eg: 11)
+
|-
+
|{{unicodestring}}
+
|2 bytes per char (eg: "hello world" is 11 digits long, 22 bytes total)
+
 
|}
 
|}
Then item's string ids, for each:
+
{{endlist|items}}
{| class="wikitable"
+
{{beginlist|items ids|items count}}
|{{int}}
+
:{| class="wikitable"
|item index in the file matching one in previous list (eg: 1, 2, 9, 3, 7, ...)
+
|{{int}}||item index in the file matching one in previous list (eg: 1, 2, 9, 3, 7, ...)
|-
+
|{{int}}
+
|ascii digits count of the string id (eg: 12)
+
 
|-
 
|-
|{{ansistring}}
+
|{{a_string}}||4 bytes length + 1 byte chars (eg: "basic_answer" is 12 digits long, 12 bytes total)
|1 byte per char (eg: "basic_answer" is 12 digits long, 12 bytes total)
+
 
|}
 
|}
 +
{{endlist|items ids}}

Latest revision as of 09:58, 22 March 2007


File Type: STF format (80% understood)

It contains all the game's strings. During network communications the strings are identificated with: filename without extension + code + ansi string id.


INT STF file type header id (sequence: 0xCD 0xAB 0x00 0x00, value: 0x0000ABCD = 43981)
BYTE useless? flag (might be a boolean, seen so far: 0x01 and 0x00)
INT next free index in file to add an item, always > items count (useless for us)
INT items count

<items count=items count>

INT item index in the file (eg: 1, 2, 9, 3, 7, ...)
INT code (gesture?)
U_STRING 4 bytes length + 2 bytes chars (eg: "hello world" is 11 digits long, 22 bytes total)

<items/>

<items ids count=items count>

INT item index in the file matching one in previous list (eg: 1, 2, 9, 3, 7, ...)
A_STRING 4 bytes length + 1 byte chars (eg: "basic_answer" is 12 digits long, 12 bytes total)

<items ids/>