-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathEFX_TIML.bt
103 lines (96 loc) · 2.59 KB
/
EFX_TIML.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//------------------------------------------------
//--- 010 Editor v9.0 Binary Template
//
// File:
// Authors:
// Version:
// Purpose:
// Category:
// File Mask:
// ID Bytes:
// History:
//------------------------------------------------
string ReadDataInt(int32 r) {
string s;
SPrintf(s, "%08X | %d ", r,r);
return s;
}
typedef struct{
float dataF;
FSkip(-4);
int32 dataI;
float bounceForwardLimit;
float bounceBackwardsLimit;
float frameTiming;
short interpolationType1<comment = "2 - Only Functional">;
short dataType;
//0 is special -1,0,1,3,31
//1 Int or Flag
//2 Float
//3 RGBA
//dataType to valid interpol values
//0:[1]
//1:[1,4,5,6]
//2:[0,1,2,3,4]
//3:[0,1,2,3,4]
}TIML_Keyframe;
typedef struct(int base){
int64 offset;
int64 count;
int32 datatypeHash<format=hex, comment="Hash to determine the transform type (rot:X, pos:Z, Etc).", bgcolor = 0xFFFF00>;
int32 dataType;
local int pos = FTell();
FSeek(base+offset);
TIML_Keyframe keyframes[count]<optimize = false, bgcolor = 0xFF4444>;
FSeek(pos);
}TIML_Transform;
typedef struct(int base){
int64 offset;
int64 count;
int32 timelineParameterHash<format=hex, comment="Hash to determine if it affects a mesh or a materials, etc.", bgcolor = 0xFFFF44>;
int32 NULL;
local int pos = FTell();
FSeek(base+offset);
TIML_Transform transforms(base)[count]<optimize = false, bgcolor = 0xFF6666>;
FSeek(pos);
}TIML_Type;
typedef struct(int base){
int64 offset;
int64 count;
int32 unkn1;
int32 unkn2;
float animationLength;
float loopStartPoint;
int loopControl<comment="Determines how and if it will loop">;
int labelHash<format=hex, comment="Label Hash",bgcolor = 0xFFFF88>;
local int pos = FTell();
FSeek(base+offset);
TIML_Type types(base)[count]<optimize = false, bgcolor = 0xFF8888>;
FSeek(pos);
}TIML_Data;
typedef struct(int base){
int64 offset;
if (offset > 0){
local int pos = FTell();
FSeek(base+offset);
TIML_Data data(base)<optimize = false, bgcolor = 0xFFBBBB>;
FSeek(pos);
}
}TIML_Body;
typedef struct{
local int base;
base = FTell();
char timl[4];
int signature[3]<comment = "402786304,402786304,0">;
int enabled<comment = "20">;
int NULL<comment = "0">;
int32 count;
if (count > 0) int32 NULL2;
TIML_Body animations(base)[count]<optimize = false, bgcolor = 0xFFCCCC>;
}TIML_Header;
typedef struct {
local int base;
base = FTell();
TIML_Header Header<bgcolor = 0xFFFFFF>;
FSeek(base+timl_length);
}Timl;