1
|
|
|
import { SaveFileService } from './../../savefile.service'; |
2
|
|
|
import { SaveFileIterator } from '../SaveFileIterator'; |
3
|
|
|
|
4
|
|
|
export function toBitArray( |
5
|
|
|
saveFile: SaveFileService, |
6
|
|
|
offset: number, |
7
|
|
|
byteSize: number, |
8
|
|
|
toArr: Array<boolean> |
9
|
|
|
): SaveFileIterator { |
10
|
|
|
const it = saveFile.iterator.offsetTo(offset); |
11
|
|
|
for (let i = 0; i < byteSize; i++) { |
12
|
|
|
// Push bits in order of this byte |
13
|
|
|
toArr.push(it.getBit(1, 0)); |
14
|
|
|
toArr.push(it.getBit(1, 1)); |
15
|
|
|
toArr.push(it.getBit(1, 2)); |
16
|
|
|
toArr.push(it.getBit(1, 3)); |
17
|
|
|
toArr.push(it.getBit(1, 4)); |
18
|
|
|
toArr.push(it.getBit(1, 5)); |
19
|
|
|
toArr.push(it.getBit(1, 6)); |
20
|
|
|
toArr.push(it.getBit(1, 7)); |
21
|
|
|
|
22
|
|
|
// Increment iterator |
23
|
|
|
it.inc(); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
return it; |
27
|
|
|
} |
28
|
|
|
|
29
|
|
|
export function fromBitArray( |
30
|
|
|
saveFile: SaveFileService, |
31
|
|
|
offset: number, |
32
|
|
|
byteSize: number, |
33
|
|
|
fromArr: Array<boolean> |
34
|
|
|
): SaveFileIterator { |
35
|
|
|
const it = saveFile.iterator.offsetTo(offset); |
36
|
|
|
for (let i = 0; i < byteSize * 8; i += 8) { |
37
|
|
|
it.setBit(1, 0, fromArr[i + 0]); |
38
|
|
|
it.setBit(1, 1, fromArr[i + 1]); |
39
|
|
|
it.setBit(1, 2, fromArr[i + 2]); |
40
|
|
|
it.setBit(1, 3, fromArr[i + 3]); |
41
|
|
|
it.setBit(1, 4, fromArr[i + 4]); |
42
|
|
|
it.setBit(1, 5, fromArr[i + 5]); |
43
|
|
|
it.setBit(1, 6, fromArr[i + 6]); |
44
|
|
|
it.setBit(1, 7, fromArr[i + 7]); |
45
|
|
|
|
46
|
|
|
// Increment iterator |
47
|
|
|
it.inc(); |
48
|
|
|
} |
49
|
|
|
|
50
|
|
|
return it; |
51
|
|
|
} |
52
|
|
|
|