Data structures as in file. More...
Data structures as in file.
All defined structs that are as in file (possible after decompression and/or deinterleaving) are prefixed with T2FSData
| typedef struct s_T2FSDataCoordF32 T2FSDataCoordF32 |
| typedef struct s_T2FSDataWorldCoordF32 T2FSDataWorldCoordF32 |
| typedef struct s_T2FSDataCoordS32 T2FSDataCoordS32 |
yeah.. not kiddin
| typedef struct s_T2FSDataCoordS16 T2FSDataCoordS16 |
This is a test ..
| typedef struct s_T2FSDataWorldCoordS16 T2FSDataWorldCoordS16 |
This is a test ..
| typedef struct s_T2FSDataLevelInfo T2FSDataLevelInfo |
| typedef struct s_T2FSDataLevel_unk_1_0 T2FSDataLevel_unk_1_0 |
These have almost always the same values, not that interesting?
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataLevelMeshBuffer T2FSDataLevelMeshBuffer |
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataLevelMeshIndices T2FSDataLevelMeshIndices |
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataRegionBounds T2FSDataRegionBounds |
Very likely these are the region bounds (region indices from scenes indicate that).
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataLevel_unk_2_x_0 T2FSDataLevel_unk_2_x_0 |
| typedef struct s_T2FSDataLevel_unk_2_x_1 T2FSDataLevel_unk_2_x_1 |
Entry from T2FSArray.
| typedef struct s_T2FSDataScriptedObject T2FSDataScriptedObject |
It looks like all the used models have at least one bone and one pose. So these are probably scripted objects.
Entry from interleaved T2FSArray (after deinterleaving)
Looks the same as T2FSDataRegionObject except that it's 12 bytes shorter (missing between scale and modelId).
| typedef struct s_T2FSDataLevel_unk_4_0 T2FSDataLevel_unk_4_0 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_4_1 T2FSDataLevel_unk_4_1 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_4_2 T2FSDataLevel_unk_4_2 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_4_3 T2FSDataLevel_unk_4_3 |
Entry from T2FSArray.
| typedef struct s_T2FSDataTileBounds T2FSDataTileBounds |
These seem to define a tile inside the grid.
Entry from T2FSArray.
| typedef struct s_T2FSDataTiledObject T2FSDataTiledObject |
These are basic static models that make up most of the levels, their position is calculated with the level it's grid multiplier for the x and y axis. For the z axis we have to multiply the given value with a constant (approx 5.12f). The z axis rotation is in steps of 90 degrees.
TODO on T2FS_FILE_PC_SEEDS_OF_EVIL_MP it's different
https://ultra64.ca/files/documentation/online-manuals/man/pro-man/pro24/index24.1.html
Entry from T2FSArray.
| typedef struct s_T2FSDataStaticObject T2FSDataStaticObject |
Mountains, trees, buildings, cars and stuff
on Turok2Demo.lss it's 56 in size, that's 4 more..
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataStaticObjectShadow T2FSDataStaticObjectShadow |
Mountains, trees, buildings, cars and stuff
For Turok2Demo.lss and N64 Shadow of Oblivion
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataLevelItem T2FSDataLevelItem |
Level items (pickups)
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_5_x_3 T2FSDataLevel_unk_5_x_3 |
Is this the groud mesh?
Entry from interleaved T2FSArray (after deinterleaving)
| typedef struct s_T2FSDataLevel_unk_6 T2FSDataLevel_unk_6 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_7_0 T2FSDataLevel_unk_7_0 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_7_1 T2FSDataLevel_unk_7_1 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_7_2 T2FSDataLevel_unk_7_2 |
Entry from T2FSArray.
| typedef struct s_T2FSDataLevel_unk_7_3 T2FSDataLevel_unk_7_3 |
Entry from T2FSArray.
| typedef struct s_T2FSDataModelInfo T2FSDataModelInfo |
| typedef struct s_T2FSDataModelInfoDino T2FSDataModelInfoDino |
FIXME these are guesses just to see what happends..
| typedef struct s_T2FSDataBone T2FSDataBone |
| typedef struct s_T2FSDataBoneOrientation T2FSDataBoneOrientation |
| typedef struct s_T2FSDataBoneOrientationE3 T2FSDataBoneOrientationE3 |
| typedef struct s_T2FSDataAnimationBoneIndices T2FSDataAnimationBoneIndices |
/root/0/ModelID/2/PoseID/1/data
This is hypothetical.. TODO
It is guessed that these indices might be useful with 0/x/2/x/5/1/data and 0/x/2/x/5/2/data
| typedef struct s_T2FSDataAnimationHeader T2FSDataAnimationHeader |
/root/0/ModelID/2/PoseID/5/0/data
This struct is for Seeds of Evil. South Park is lacking the last 8 bytes.
This is hypothetical.. TODO
| typedef struct s_T2FSDataHotpoint T2FSDataHotpoint |
| typedef struct s_T2FSDataColorRGBA8 T2FSDataColorRGBA8 |
| typedef struct s_T2FSDataMaterial T2FSDataMaterial |
| typedef struct s_T2FSDataVertex T2FSDataVertex |
Very likely something like this https://ultra64.ca/files/documentation/online-manuals/man/n64man/gsp/gSPVertex.html
| typedef struct s_T2FSDataSceneHeader T2FSDataSceneHeader |
| typedef struct s_T2FSDataSceneHeader_0x48 T2FSDataSceneHeader_0x48 |
As in South Park (four bytes shorter then in Seeds of Evil).
| typedef struct s_T2FSDataLevelSpawnPoint T2FSDataLevelSpawnPoint |
Entry from T2FSArray.
| typedef struct s_T2FSDataTextureHeader T2FSDataTextureHeader |