This repository has been archived by the owner on Sep 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
USER_DATA010_DS3.bt
249 lines (235 loc) · 5.24 KB
/
USER_DATA010_DS3.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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
//------------------------------------------------
//--- 010 Editor v9.0.2 Binary Template
//
// File:
// Authors:
// Version:
// Purpose:
// Category:
// File Mask:
// ID Bytes:
// History:
//------------------------------------------------
LittleEndian();
//------------------------------------------------
typedef struct {
int dataLength <format=hex>; Assert(dataLength == 0x60000);
int unk04; // Perhaps byte settingsLength?
int steamID3;
int unk0C;
byte cameraSpeed;
byte controllerVibration;
byte brightness;
byte unk13;
byte musicVolume;
byte soundEffectsVolume;
byte voiceVolume;
byte blood;
byte subtitles;
byte hud;
byte cameraXAxis;
byte cameraYAxis;
byte autoLockOn;
byte cameraAutoWallRecovery;
byte unk1E;
byte unk1F;
byte resetCameraYAxis;
byte cinematicEffects;
byte unk22;
byte crossRegionPlay;
byte voiceChat;
byte unk25;
byte manualAttackAiming;
byte autoTarget;
byte launchSetting;
byte summonSignVisibility;
byte unk2A;
byte unk2B;
int unk2C;
int unk30;
int unk34;
int unk38;
int unk3C; // Two shorts?
int unk40;
local int i <hidden=true>;
struct {
for (i = 0; i < 20; i++) {
int unk44; Assert(unk44 == 0);
}
} unk44;
int unk94; Assert(unk94 == 0x1000);
int unk98; Assert(unk98 == 0xFACE);
int unk9C; Assert(unk9C == 0xF3C);
struct {
for (i = 0; i < 0x3CF; i++) {
int unkA0; // Pretty sure this is garbage memory
}
} unkA0;
int unkFDC;
int unkFE0;
int unkFE4;
int unkFE8;
int unkFEC;
int unkFF0;
int unkFF4;
int unkFF8;
int unkFFC;
int unk1000;
int unk1004;
int unk1008;
int unk100C;
int unk1010;
int unk1014;
int unk1018;
int unk101C;
int unk1020;
int unk1024;
short unk1028;
short unk102A;
struct {
for (i = 0; i < 27; i++) {
int unk102C; Assert(unk102C == 0);
}
} unk102C;
byte occupiedSlots[10];
} Header <bgcolor=cLtRed>;
typedef struct {
wchar_t name[0x10];
short unk20; Assert(unk20 == 0); // Null terminator?
int soulLevel;
int playtime; // Full seconds
int soulMemory;
int unk2E;
int unk32;
int unk36;
char face[4]; Assert(face == "FACE");
int unk3E;
int unk42;
int unk46;
int unk4A;
int unk4E;
int unk52;
int unk56;
int unk5A;
int unk5E;
int unk62;
int unk66;
int unk6A; // 9-12 RGBA colors?
int unk6E;
int unk72;
int unk76;
int unk7A;
int unk7E;
int unk82;
int unk86;
int unk8A;
int unk8E;
int unk92;
int unk96;
int unk9A;
int unk9E;
int unkA2;
int unkA6;
int unkAA;
int unkAE;
int unkB2;
int unkB6;
int unkBA;
int unkBE;
int unkC2;
int unkC6;
int unkCA;
int unkCE;
int unkD2;
int unkD6;
int unkDA;
int unkDE;
int unkE2;
int unkE6;
int unkEA;
int unkEE;
int unkF2;
int unkF6;
int unkFA;
int unkFE;
int unk102;
int unk106;
int unk10A;
int unk10E;
int unk112;
int unk116;
int unk11A;
int unk11E;
int unk122;
int unk126;
int unk12A;
int unk12E;
int unk132;
int unk136;
int unk13A;
int unk13E; Assert(unk13E == 0);
int unk142; Assert(unk142 == 0);
int unk146; Assert(unk146 == 0);
int unk14A; Assert(unk14A == 0);
int unk14E; Assert(unk14E == 0);
int unk152 <format=hex>; // Same order as equipment IDs below but they're weird
int unk156 <format=hex>;
int unk15A <format=hex>;
int unk15E <format=hex>;
int unk162 <format=hex>;
int unk166 <format=hex>;
int unk16A <format=hex>;
int unk16E <format=hex>;
int unk172 <format=hex>;
int unk176 <format=hex>;
int unk17A <format=hex>; Assert(unk17A == 0);
int unk17E <format=hex>; Assert(unk17E == 0);
int unk182 <format=hex>;
int unk186 <format=hex>;
int unk18A <format=hex>;
int unk18E <format=hex>;
int unk192 <format=hex>; Assert(unk192 == 0);
int unk196 <format=hex>;
int unk19A <format=hex>;
int unk19E <format=hex>;
int unk1A2 <format=hex>;
int unk1A6 <format=hex>;
int leftWeapon1ID;
int rightWeapon1ID;
int leftWeapon2ID;
int rightWeapon2ID;
int leftWeapon3ID;
int rightWeapon3ID;
int arrow1ID;
int bolt1ID;
int arrow2ID;
int bolt2ID;
int unk1D2; Assert(unk1D2 == -1);
int unk1D6; Assert(unk1D6 == -1);
int headID;
int bodyID;
int armsID;
int legsID;
int unk1EA; Assert(unk1EA == -1);
int ring1ID;
int ring2ID;
int ring3ID;
int ring4ID;
int covenantID;
int unk202; Assert(unk202 == -1);
int unk206; Assert(unk206 == -1);
int unk20A; Assert(unk20A == 0);
int unk20E; Assert(unk20E == 0);
int unk212; Assert(unk212 == 0);
int unk216; Assert(unk216 == 0);
int unk21A; Assert(unk21A == 0);
int unk21E;
int unk222;
int unk226;
} Slot <read=ReadSlot, bgcolor=cAqua, optimize=false>;
wstring ReadSlot(Slot& slot) {
return slot.name;
}
//------------------------------------------------
Header header;
struct { Slot slots[10]; } slots;