4
edits
THplusplus (talk | contribs) (More in depth exploration of the Extra Information Array structure.) |
THplusplus (talk | contribs) mNo edit summary |
||
Line 3: | Line 3: | ||
</onlyinclude> | </onlyinclude> | ||
== TSCB File Specification == | ==TSCB File Specification== | ||
=== Header === | ===Header=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!Offset (h) | !Offset (h) | ||
Line 73: | Line 73: | ||
|} | |} | ||
== Material Information Array == | ==Material Information Array== | ||
The material information array references texture data contained in <code>content/Model/Terrain.Tex1.sbfres</code>. | The material information array references texture data contained in <code>content/Model/Terrain.Tex1.sbfres</code>. | ||
=== Header === | ===Header=== | ||
The material information header is one value, the section size. This includes the index table and the value table. | The material information header is one value, the section size. This includes the index table and the value table. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 90: | Line 90: | ||
|} | |} | ||
=== Material Information Array Lookup Table === | ===Material Information Array Lookup Table=== | ||
Following the header is a table of relative offsets to each entry in <code>material_info_array</code> | Following the header is a table of relative offsets to each entry in <code>material_info_array</code> | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 104: | Line 104: | ||
|} | |} | ||
=== Material Information Value Table === | ===Material Information Value Table=== | ||
Each entry in the array contains an index and four attributes | Each entry in the array contains an index and four attributes | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 138: | Line 138: | ||
|} | |} | ||
== Area Array == | ==Area Array== | ||
=== Area Array Lookup Table === | ===Area Array Lookup Table=== | ||
Following the material information section is a table of relative offsets to each entry in area_array | Following the material information section is a table of relative offsets to each entry in area_array | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 154: | Line 154: | ||
|} | |} | ||
=== Area Array Value Table === | ===Area Array Value Table=== | ||
Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain. | Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain. | ||
Line 225: | Line 225: | ||
|} | |} | ||
==== Parameters ==== | ====Parameters==== | ||
<code>x</code> - Area tile x coordinate (East-West) | <code>x</code> - Area tile x coordinate (East-West) | ||
Line 231: | Line 231: | ||
<code>area_size</code> - Determines the length and width of the area. It can be calculated with:<blockquote><code>(area_size / tile_size * world_scale) * 20</code></blockquote><code>tile_size</code> and <code>world_scale</code> are in the header. | <code>area_size</code> - Determines the length and width of the area. It can be calculated with:<blockquote><code>(area_size / tile_size * world_scale) * 20</code></blockquote><code>tile_size</code> and <code>world_scale</code> are in the header. | ||
=== Extra Information Array === | ===Extra Information Array=== | ||
if <code>ref_extra</code> does not equal <code>0</code> there is an <code>extra_info_array</code> attached to this area. The array is 4 or 8 values long. | if <code>ref_extra</code> does not equal <code>0</code> there is an <code>extra_info_array</code> attached to this area. The array is 4 or 8 values long. | ||
Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The <code>extra_info_array</code> indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file | Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The <code>extra_info_array</code> indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file | ||
==== Header ==== | ====Header==== | ||
{| class="wikitable" | {| class="wikitable" | ||
!Offset (h) | !Offset (h) | ||
Line 246: | Line 246: | ||
|4 | |4 | ||
|Unsigned Int | |Unsigned Int | ||
|extra_info_array length. Number of values (not elements) in array. | |extra_info_array length. Number of values (not elements) in array. | ||
|- | |- | ||
|<code>(0x04)</code> | |<code>(0x04)</code> | ||
Line 254: | Line 254: | ||
|} | |} | ||
==== Extra Information Array Value Table ==== | ====Extra Information Array Value Table==== | ||
After the Header, there is | After the Header, there is <code>extra_info_array length</code> / 4 elements of this structure. | ||
{| class="wikitable" | {| class="wikitable" | ||
!Offset (h) | !Offset (h) | ||
Line 288: | Line 288: | ||
It seems that water is <code>[3, 1, 1]</code> and grass is <code>[3, 0, 1]</code> | It seems that water is <code>[3, 1, 1]</code> and grass is <code>[3, 0, 1]</code> | ||
== <code>stera</code> File Positions == | ==<code>stera</code> File Positions== | ||
[[File:Stera_File_Positions.png|alt=stera File Positions|thumb|<code>stera</code> File Positions]] | [[File:Stera_File_Positions.png|alt=stera File Positions|thumb|<code>stera</code> File Positions]] | ||
<code>stera</code> files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]]. | <code>stera</code> files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]]. |
edits