@@ -9,43 +9,44 @@ std::shared_ptr<IResource> ResourceFactoryBinaryArrayV0::ReadResource(std::share
9
9
}
10
10
11
11
auto array = std::make_shared<Array>(file->InitData );
12
+ auto reader = std::get<std::shared_ptr<BinaryReader>>(file->Reader );
12
13
13
- array->ArrayType = (ArrayResourceType)file-> Reader ->ReadUInt32 ();
14
- array->ArrayCount = file-> Reader ->ReadUInt32 ();
14
+ array->ArrayType = (ArrayResourceType)reader ->ReadUInt32 ();
15
+ array->ArrayCount = reader ->ReadUInt32 ();
15
16
16
17
for (uint32_t i = 0 ; i < array->ArrayCount ; i++) {
17
18
if (array->ArrayType == ArrayResourceType::Vertex) {
18
19
// OTRTODO: Implement Vertex arrays as just a vertex resource.
19
20
Vtx data;
20
- data.v .ob [0 ] = file-> Reader ->ReadInt16 ();
21
- data.v .ob [1 ] = file-> Reader ->ReadInt16 ();
22
- data.v .ob [2 ] = file-> Reader ->ReadInt16 ();
23
- data.v .flag = file-> Reader ->ReadUInt16 ();
24
- data.v .tc [0 ] = file-> Reader ->ReadInt16 ();
25
- data.v .tc [1 ] = file-> Reader ->ReadInt16 ();
26
- data.v .cn [0 ] = file-> Reader ->ReadUByte ();
27
- data.v .cn [1 ] = file-> Reader ->ReadUByte ();
28
- data.v .cn [2 ] = file-> Reader ->ReadUByte ();
29
- data.v .cn [3 ] = file-> Reader ->ReadUByte ();
21
+ data.v .ob [0 ] = reader ->ReadInt16 ();
22
+ data.v .ob [1 ] = reader ->ReadInt16 ();
23
+ data.v .ob [2 ] = reader ->ReadInt16 ();
24
+ data.v .flag = reader ->ReadUInt16 ();
25
+ data.v .tc [0 ] = reader ->ReadInt16 ();
26
+ data.v .tc [1 ] = reader ->ReadInt16 ();
27
+ data.v .cn [0 ] = reader ->ReadUByte ();
28
+ data.v .cn [1 ] = reader ->ReadUByte ();
29
+ data.v .cn [2 ] = reader ->ReadUByte ();
30
+ data.v .cn [3 ] = reader ->ReadUByte ();
30
31
array->Vertices .push_back (data);
31
32
} else {
32
- array->ArrayScalarType = (ScalarType)file-> Reader ->ReadUInt32 ();
33
+ array->ArrayScalarType = (ScalarType)reader ->ReadUInt32 ();
33
34
34
35
int iter = 1 ;
35
36
36
37
if (array->ArrayType == ArrayResourceType::Vector) {
37
- iter = file-> Reader ->ReadUInt32 ();
38
+ iter = reader ->ReadUInt32 ();
38
39
}
39
40
40
41
for (int k = 0 ; k < iter; k++) {
41
42
ScalarData data;
42
43
43
44
switch (array->ArrayScalarType ) {
44
45
case ScalarType::ZSCALAR_S16:
45
- data.s16 = file-> Reader ->ReadInt16 ();
46
+ data.s16 = reader ->ReadInt16 ();
46
47
break ;
47
48
case ScalarType::ZSCALAR_U16:
48
- data.u16 = file-> Reader ->ReadUInt16 ();
49
+ data.u16 = reader ->ReadUInt16 ();
49
50
break ;
50
51
default :
51
52
// OTRTODO: IMPLEMENT OTHER TYPES!
0 commit comments