46T2FS_CREATE_SWAP_STRUCT(
T2FSDataLevelInfo, (4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2));
96T2FS_CREATE_SWAP_STRUCT(
T2FSDataLevelMeshIndices, (2, 2, 2, 2, 2, 2, 2, 2, 2, 2));
161T2FS_CREATE_SWAP_STRUCT(
T2FSDataScriptedObject, (2, 2, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2));
278T2FS_CREATE_SWAP_STRUCT(
T2FSDataTiledObject, (4, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
322T2FS_CREATE_SWAP_STRUCT(
T2FSDataStaticObject, (2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1));
368T2FS_CREATE_SWAP_STRUCT(
T2FSDataStaticObjectShadow, (2, 2, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
391T2FS_CREATE_SWAP_STRUCT(
T2FSDataLevelItem, (4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2));
struct s_T2FSArray T2FSArray
struct s_T2FSDataStaticObject T2FSDataStaticObject
struct s_T2FSDataLevelMeshBuffer T2FSDataLevelMeshBuffer
struct s_T2FSDataLevel_unk_1_0 T2FSDataLevel_unk_1_0
struct s_T2FSDataLevel_unk_4_3 T2FSDataLevel_unk_4_3
struct s_T2FSDataLevel_unk_2_x_0 T2FSDataLevel_unk_2_x_0
struct s_T2FSDataStaticObjectShadow T2FSDataStaticObjectShadow
struct s_T2FSDataLevel_unk_4_2 T2FSDataLevel_unk_4_2
struct s_T2FSDataTiledObject T2FSDataTiledObject
struct s_T2FSDataLevelItem T2FSDataLevelItem
struct s_T2FSDataLevel_unk_7_0 T2FSDataLevel_unk_7_0
struct s_T2FSDataLevel_unk_4_1 T2FSDataLevel_unk_4_1
struct s_T2FSDataLevel_unk_4_0 T2FSDataLevel_unk_4_0
struct s_T2FSDataLevel_unk_7_1 T2FSDataLevel_unk_7_1
struct s_T2FSDataLevel_unk_5_x_3 T2FSDataLevel_unk_5_x_3
struct s_T2FSDataLevel_unk_7_3 T2FSDataLevel_unk_7_3
struct s_T2FSDataScriptedObject T2FSDataScriptedObject
struct s_T2FSDataWorldCoordF32 T2FSDataWorldCoordF32
struct s_T2FSDataRegionBounds T2FSDataRegionBounds
struct s_T2FSDataLevelMeshIndices T2FSDataLevelMeshIndices
struct s_T2FSDataTileBounds T2FSDataTileBounds
struct s_T2FSDataLevel_unk_7_2 T2FSDataLevel_unk_7_2
struct s_T2FSDataLevel_unk_6 T2FSDataLevel_unk_6
struct s_T2FSDataCoordF32 T2FSDataCoordF32
struct s_T2FSDataCoordS32 T2FSDataCoordS32
yeah.. not kiddin
struct s_T2FSDataLevelInfo T2FSDataLevelInfo
struct s_T2FSDataLevel_unk_2_x_1 T2FSDataLevel_unk_2_x_1
struct s_T2FSLevel T2FSLevel
void t2fs_level_clear(T2FSLevel *level)
int t2fs_level_get_scripted_objects(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_set_node(T2FSContext *ctx, T2FSNode *levelNode, T2FSLevel *level)
int t2fs_level_get_region_bounds(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_get_mesh_indices(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_get_unk_1_0(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_get_tile_bounds(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_get_items(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest, uint32_t tileId)
uint32_t t2fs_level_get_tile_count(T2FSLevel *level)
int t2fs_level_get_mesh_buffer(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest)
int t2fs_level_get_objects(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest, uint32_t tileId)
void t2fs_level_unload(T2FSLevel *level)
Free level data.
int t2fs_level_load(T2FSContext *ctx, T2FSLevel *level, uint32_t id)
Loads level data into memory.
int t2fs_level_get_tiled_objects(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest, uint32_t tileId)
int t2fs_level_get_unk5_x_3_array(T2FSContext *ctx, T2FSLevel *level, T2FSArray *dest, uint32_t tileId)
uint32_t t2fs_level_count(T2FSContext *ctx)
#define SASSERT_SIZE(what, size)
Definition models/common.h:26
#define T2FS_CREATE_SWAP_STRUCT(name, sizes)
Definition models/common.h:36
float gridMultiplier
Definition levels.h:32
uint16_t unk_u16_09
Definition levels.h:42
uint16_t unk_u16_04
Definition levels.h:37
uint16_t unk_u16_00
Definition levels.h:33
uint16_t unk_u16_02
Definition levels.h:35
uint16_t unk_u16_08
Definition levels.h:41
uint16_t unk_u16_03
Definition levels.h:36
uint16_t unk_u16_06
Definition levels.h:39
uint16_t unk_u16_07
Definition levels.h:40
uint16_t unk_u16_01
Definition levels.h:34
uint16_t unk_u16_05
Definition levels.h:38
int16_t unk_s16_08
Definition levels.h:386
float unk_u32_04
Definition levels.h:381
uint16_t modelId
Definition levels.h:382
int16_t unk_s16_09
Definition levels.h:387
int16_t unk_s16_07
Definition levels.h:385
uint32_t unk_u32_00
Definition levels.h:378
int16_t unk_s16_06
Definition levels.h:384
T2FSDataWorldCoordF32 position
Definition levels.h:379
int16_t unk_s16_05
Definition levels.h:383
uint32_t unk
Definition levels.h:68
T2FSDataCoordS32 position
needs to be scaled to something.. * 0.03f looks reasonable but it's off.. is it a fixed point thingy?
Definition levels.h:67
uint16_t indexC
index to entry of T2FSDataLevelMeshBuffer
Definition levels.h:85
uint16_t flags
guess, but strongly looks like flags, purpose unknown.
Definition levels.h:81
uint16_t indexToSelfC
max value seems to match last index of this array.
Definition levels.h:89
uint16_t someIndex
looks like index for T2FSDataLevel_unk_1_0
Definition levels.h:80
uint16_t indexB
index to entry of T2FSDataLevelMeshBuffer
Definition levels.h:84
uint16_t indexToSelfA
max value seems to match last index of this array.
Definition levels.h:87
uint16_t unk_u16_08
0xFFFF
Definition levels.h:92
uint16_t indexToSelfB
max value seems to match last index of this array.
Definition levels.h:88
uint16_t indexA
index to entry of T2FSDataLevelMeshBuffer
Definition levels.h:83
uint16_t unk_u16_07
0xFFFF
Definition levels.h:91
uint8_t unk[100]
Definition levels.h:56
uint8_t unk[8]
Definition levels.h:119
uint8_t unk[28]
Definition levels.h:130
uint32_t unk
Definition levels.h:170
uint32_t unk
Definition levels.h:181
uint32_t unk
Definition levels.h:192
uint32_t unk
Definition levels.h:203
uint8_t unk[72]
Definition levels.h:401
uint8_t unk[44]
Definition levels.h:412
uint8_t unk[4]
Definition levels.h:423
uint8_t unk[20]
Definition levels.h:434
uint8_t unk[4]
Definition levels.h:445
uint8_t unk[20]
Definition levels.h:456
float unk
Definition levels.h:109
float max_x
Definition levels.h:108
float min_y
Definition levels.h:107
float max_y
Definition levels.h:108
float min_x
Definition levels.h:107
int16_t rotz
Needs to be scaled, see T2FS_OBJ_ROT_SCALE_FACTOR.
Definition levels.h:156
T2FSDataWorldCoordF32 position
Definition levels.h:150
T2FSDataWorldCoordF32 scale
Definition levels.h:151
uint16_t unk_u16_00
0xFFFF
Definition levels.h:147
int16_t unk_u16_06
Definition levels.h:157
int16_t unk_u16_02
Definition levels.h:153
uint16_t modelId
Definition levels.h:152
int16_t unk_u16_03
Definition levels.h:154
uint16_t unk_u16_01
0xFFFF
Definition levels.h:148
int16_t unk_u16_04
Definition levels.h:155
float unk_u32_20
Definition levels.h:342
int8_t unk_u8_06
Definition levels.h:361
int16_t unk_u16_02
Definition levels.h:336
int16_t unk_u16_2C
Definition levels.h:350
T2FSDataWorldCoordF32 position
Definition levels.h:338
float unk_u32_1C
Definition levels.h:341
int16_t modelId
Definition levels.h:345
int8_t unk_u8_02
Definition levels.h:356
int8_t unk_u8_07
Definition levels.h:362
int8_t unk_u8_01
Definition levels.h:355
int8_t unk_u8_05
Definition levels.h:360
T2FSDataCoordF32 scale
Definition levels.h:339
int8_t unk_u8_03
Definition levels.h:357
int8_t unk_u8_00
Definition levels.h:353
int8_t rotzMultiplier
This needs testing.
Definition levels.h:352
uint8_t unk_u8_02xx
Definition levels.h:348
uint8_t unk_u8_01xx
Definition levels.h:347
int8_t unk_u8_08
Definition levels.h:363
int8_t unk_u8_04
Definition levels.h:358
float unk_u32_24
Definition levels.h:343
int16_t unk_u16_00
Definition levels.h:335
uint8_t unk_u8_01xx
Definition levels.h:307
int16_t unk_u16_00
Definition levels.h:290
int8_t unk_u8_02
Definition levels.h:316
int16_t unk_u16_2C
Definition levels.h:310
uint8_t unk_u8_02xx
Definition levels.h:308
int8_t unk_u8_00
Definition levels.h:313
T2FSDataWorldCoordF32 position
Definition levels.h:295
float unk_u32_24
Definition levels.h:303
int16_t unk_u16_02
Definition levels.h:291
float unk_u32_20
Definition levels.h:302
T2FSDataCoordF32 scale
Definition levels.h:299
int8_t unk_u8_04
Definition levels.h:318
int8_t rotzMultiplier
multiplied by 90
Definition levels.h:312
int8_t unk_u8_03
Definition levels.h:317
int8_t unk_u8_01
Definition levels.h:315
int16_t modelId
Definition levels.h:305
float unk_u32_1C
Definition levels.h:301
float max_y
Definition levels.h:217
float max_x
Definition levels.h:217
uint16_t unk2
Definition levels.h:219
float min_y
Definition levels.h:216
float min_x
Definition levels.h:216
uint16_t unk
Definition levels.h:218
float scale
Definition levels.h:242
uint8_t x
Multiply by the level it's grid multiplier to get the real float x.
Definition levels.h:272
uint16_t unk_u16_05
Definition levels.h:252
int8_t unk_8_08
Is this bbox minz?
Definition levels.h:265
uint8_t posFlags
Contains flags whether the x or y position is negative.
Definition levels.h:270
int8_t unk_8_11
Is this bbox maxy?
Definition levels.h:268
uint8_t unk_u8_15
Always set to 0b10000001 ? (signed -127, unsigned 129).
Definition levels.h:274
uint16_t rotFlags
Definition levels.h:250
uint16_t modelId
Definition levels.h:243
int8_t unk_8_06
Is this bbox minx?
Definition levels.h:263
uint32_t unk_u32_00
Definition levels.h:241
int8_t unk_8_07
Is this bbox maxx?
Definition levels.h:264
int8_t unk_8_09
Is this bbox maxz?
Definition levels.h:266
int16_t z
Multiply with approx 5.12f for real float z position.
Definition levels.h:260
int16_t unk_16_00
Definition levels.h:245
int8_t unk_8_10
Is this bbox miny?
Definition levels.h:267
uint8_t y
Multiply by the level it's grid multiplier to get the real float y.
Definition levels.h:273
T2FSNode * nodeUnk1
Definition levels.h:473
T2FSNode * nodeUnk5
Definition levels.h:476
uint8_t isValid
Definition levels.h:468
T2FSDataLevelInfo * info
Definition levels.h:470
T2FSNode * nodeUnk4
Definition levels.h:475
T2FSNode * nodeUnk3
Definition levels.h:474
T2FSNode * node
Definition levels.h:467
uint8_t const * name
Definition levels.h:478
struct s_T2FSNode T2FSNode
This is the core object to describe a path inside the tree.
Definition t2fs.h:110
struct s_T2FSContext T2FSContext
This is the core LibT2FS object that you will be passing around.
Definition t2fs.h:53