Omnibus's picture
Upload 131 files
4ee4376
import { bin2str } from './common';
export default (data, map) => {
let view = new DataView(data.buffer, data.byteOffset, data.byteLength);
for (let i = 0; i < data.byteLength / 2; i++) {
let bits = view.getUint16(i * 2);
let altm = {};
// how many levels below altitude should we display a grey block
// for a tunnel?
altm.tunnelLevels = (((bits >> 8) & 0b11111100) >> 2);
// related to tunnel?
// appears to be set to 1 for hydroelectric dams and nearby
// surface water tiles
// not used for now
//altm.unknownBits = ((bits >> 8) & 0b00000011);
// level / altitude
altm.altitude = (bits & 0b0000000000011111);
// unknown, not always accurate (rely on XTER value instead)
// not used for now
//altm.waterLevel = (bits & 0b0000000001100000) >> 5;
// unknown, not always accurate (rely on XTER value instead)
// not used for now
//altm.waterCovered = (bits & 0b0000000010000000) >> 7;
// raw binary values as strings for research/debug
altm.binaryText = {
bits: bin2str(bits, 16),
first8bits: bin2str((bits & 0b1111111100000000) >> 8, 8),
last8bits: bin2str((bits & 0b0000000011111111), 8),
//tunnelLevelsBits: bin2str(altm.tunnelLevels, 8),
//unknownBits: bin2str(altm.unknownBits, 8),
//altitudeBits: bin2str(altm.altitude, 8),
//waterLevelBits: bin2str(altm.waterLevel, 8),
//waterCoveredBits: bin2str(altm.waterCovered, 8),
};
map.cells[i]._segmentData.ALTM = altm;
}
};