-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathBMF.bt
60 lines (52 loc) · 1.2 KB
/
BMF.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
//------------------------------------------------
//--- 010 Editor v7.0 Binary Template
//
// File: BNF.bt
// Authors: Alexander Evdokimov
// Version: 1.0
// Purpose: Ghost Recon BMF files
// File Mask: *.bmf
//
// History:
//
//------------------------------------------------
typedef struct {
UINT Length;
char Text[Length];
} CSTRING;
typedef struct {
FLOAT x;
FLOAT y;
FLOAT z;
} VECTOR3;
typedef struct {
FLOAT x;
FLOAT y;
FLOAT z;
FLOAT w;
} VECTOR4;
FLOAT Time; // animation time in seconds
UINT FrameCount; //
UINT Count; // 21 bones in skeleton by default
typedef struct {
CSTRING Name;
UINT Count;
typedef struct {
UINT Time; // in Ticks
VECTOR3 Position;
} POSITION;
POSITION Movements[Count] <name="Positions">;
UINT Count;
typedef struct {
UINT Time; // in Ticks
VECTOR4 Rotation;
} ROTATION;
ROTATION RotationArray[Count] <name="Rotations">;
} BONE_ANIMATION <name=BoneName>;
string BoneName(BONE_ANIMATION &bone) {
return "Bone Name: " + bone.Name.Text;
};
typedef struct (int arraySize) {
BONE_ANIMATION array[arraySize] <optimize=false>;
} ANIMATIONS;
ANIMATIONS Animations(Count) <name = "Animations">;