File size: 1,806 Bytes
4ee4376
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
export default (data, map) => {
  let view = new DataView(data.buffer, data.byteOffset, data.byteLength);

  map._segmentData.XTHG = [];

  for (let i = 0; i < data.byteLength; i++) {
    let offset = i * 12;

    if (offset >= data.byteLength)
      break;

    let xthg = {};

    xthg.id = view.getUint8(offset + 0);
    xthg.type = types[xthg.id];
    xthg.actor = actors[xthg.id];

    xthg.direction = xthg.type == 'actor' ? direction[view.getUint8(offset + 1)] : view.getUint8(offset + 1);

    xthg.x = view.getUint8(offset + 3);
    xthg.y = view.getUint8(offset + 4);
    xthg.z = view.getUint8(offset + 5);

    xthg.data2 = view.getUint8(offset + 2); // identifier? sequence number? type?
    xthg.data7 = view.getUint8(offset + 6);
    xthg.data8 = view.getUint8(offset + 7);
    xthg.data9 = view.getUint8(offset + 8);
    xthg.dataA = view.getUint8(offset + 9);
    xthg.dataB = view.getUint8(offset + 10);
    xthg.dataC = view.getUint8(offset + 11);

    map._segmentData.XTHG.push(xthg);
  }
};

let direction = {
  0x00: 'N',
  0x01: 'NE',
  0x02: 'E',
  0x03: 'SE',
  0x04: 'S',
  0x05: 'SW',
  0x06: 'W',
  0x07: 'NW',
  0x08: 'EIGHT!'
};

let types = {
  0x00: null,
  0x01: 'actor',
  0x02: 'actor',
  0x03: 'actor',
  0x04: null,
  0x05: 'actor',
  0x06: null,
  0x07: 'deploy',
  0x08: 'deploy',
  0x09: 'actor',
  0x0A: 'actor',
  0x0B: 'actor',
  0x0C: null,
  0x0D: null,
  0x0E: 'deploy',
  0x0F: 'actor',
  0x10: 'actor',
};

let actors = {
  0x00: null,
  0x01: 'Airplane',
  0x02: 'Helicopter',
  0x03: 'Cargo Ship',
  0x04: null,
  0x05: 'Monster',
  0x06: null,
  0x07: 'Deploy Police',
  0x08: 'Deploy Fire',
  0x09: 'Sailboat',
  0x0A: 'Train Engine',
  0x0B: 'Train Car',
  0x0C: null,
  0x0D: null,
  0x0E: 'Deploy Military',
  0x0F: 'Tornado',
  0x10: 'Maxis Man',
};