-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCAudioSoundEffect.bt
143 lines (131 loc) · 2.71 KB
/
CAudioSoundEffect.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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#ifndef _CAUDIOSOUNDEFFECT
#define _CAUDIOSOUNDEFFECT
#include "CMayaSpline.bt"
#include "CVector3f.bt"
#include "Common.bt"
typedef struct STimelineEvent {
float unk1;
float unk2;
} STimelineEvent;
typedef struct SFilterSettings {
ubyte type;
switch (type) {
case 1:
case 2:
case 3:
case 4:
uint unk1;
uint unk2;
break;
case 5:
uint unk1;
uint unk2;
break;
case 6:
case 7:
uint unk;
break;
case 8:
uint unk;
break;
case 0xFF:
case 9:
break;
default:
uint unk;
break;
}
} SFilterSettings;
typedef struct CAudioMetaSample {
GUID csmp;
float unk1;
uint unk2;
float unk3;
float unk4;
float unk5;
float unk6;
float unk7;
float unk8;
float unk9;
float unk10;
int unk11;
int unk12;
int unk13;
float unk14;
int unk15;
float unk16;
float unk17;
float unk18;
float unk19;
float unk20;
float unk21;
bool unk22;
bool unk23;
bool unk24;
bool unk25;
bool unk26;
CMayaSpline spline1<optimize = false>;
CMayaSpline spline2<optimize = false>;
CMayaSpline spline3<optimize = false>;
CMayaSpline spline4<optimize = false>;
uint timelineEventCount;
STimelineEvent timelineEvents[timelineEventCount];
uint unk27;
float unk28;
CMayaSpline lowPass<optimize = false>;
CVector3f unk29;
SFilterSettings filterSettings1;
SFilterSettings filterSettings2;
} CAudioMetaSample;
typedef struct STimelineEventPairs {
uint unk1;
uint timelineEventCount;
STimelineEvent timelineEvents[timelineEventCount];
} STimelineEventPairs;
typedef struct CAudioSoundEffectEvent {
GUID guid;
uint unk1;
uint unk2;
char unk3[unk2];
} CAudioSoundEffectEvent;
typedef struct CAudioSoundEffect {
uint nameLen;
char name[nameLen];
float unk1;
// Loaded by CAudioSoundEffect::FinishConstructing
float unk2;
uint unk3 <format = binary>;
if (unk3 & (1 << 1)) {
uchar unk4;
}
if (unk3 & (1 << 2)) {
float unk5;
}
if (unk3 & (1 << 4)) {
float unk6;
}
uchar unk7;
GUID objectId;
uint gobCount;
typedef struct CGobData {
byte unk1;
byte unk2;
float unk3;
uint metaSampleCount;
CAudioMetaSample metaSamples[metaSampleCount]<optimize = false>;
uint timelineEventPairCount;
STimelineEventPairs
timelineEventPairs[timelineEventPairCount]<optimize = false>;
if (unk1 != 0) {
uint eventDataCount;
typedef struct CEventData {
CAudioSoundEffectEvent effectEvent;
uint timelineEventCount;
STimelineEvent timelineEvents[timelineEventCount];
} CEventData;
CEventData eventData[eventDataCount]<optimize = false>;
}
} CGobData;
CGobData gobs[gobCount]<optimize = false>;
} CAudioSoundEffect;
#endif // _CAUDIOSOUNDEFFECT