import { bin2str } from './common'; import * as CONST from '../../constants'; export default (data, map) => { data.forEach((bits, i) => { let xter = {}; xter.terrain = xterMap[bits].terrain; xter.water = xterMap[bits].water; xter.type = xterMap[bits].type; // raw binary values as strings for research/debug xter.binaryText = { bits: bin2str(bits, 8) }; map.cells[i]._segmentData.XTER = xter; }); }; // terrain tile id is set in all cases // so we know what type of terrain tile to // display when water is hidden or heightmap // is displayed let xterMap = { // land 0x00: { terrain: 256, water: null, type: CONST.TERRAIN_DRY }, 0x01: { terrain: 257, water: null, type: CONST.TERRAIN_DRY }, 0x02: { terrain: 258, water: null, type: CONST.TERRAIN_DRY }, 0x03: { terrain: 259, water: null, type: CONST.TERRAIN_DRY }, 0x04: { terrain: 260, water: null, type: CONST.TERRAIN_DRY }, 0x05: { terrain: 261, water: null, type: CONST.TERRAIN_DRY }, 0x06: { terrain: 262, water: null, type: CONST.TERRAIN_DRY }, 0x07: { terrain: 263, water: null, type: CONST.TERRAIN_DRY }, 0x08: { terrain: 264, water: null, type: CONST.TERRAIN_DRY }, 0x09: { terrain: 265, water: null, type: CONST.TERRAIN_DRY }, 0x0A: { terrain: 266, water: null, type: CONST.TERRAIN_DRY }, 0x0B: { terrain: 267, water: null, type: CONST.TERRAIN_DRY }, 0x0C: { terrain: 268, water: null, type: CONST.TERRAIN_DRY }, 0x0D: { terrain: 269, water: null, type: CONST.TERRAIN_DRY }, // underwater 0x10: { terrain: 256, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x11: { terrain: 257, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x12: { terrain: 258, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x13: { terrain: 259, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x14: { terrain: 260, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x15: { terrain: 261, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x16: { terrain: 262, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x17: { terrain: 263, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x18: { terrain: 264, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x19: { terrain: 265, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x1A: { terrain: 266, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x1B: { terrain: 267, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x1C: { terrain: 268, water: 270, type: CONST.TERRAIN_SUBMERGED }, 0x1D: { terrain: 269, water: 270, type: CONST.TERRAIN_SUBMERGED }, // shoreline 0x20: { terrain: 256, water: 270, type: CONST.TERRAIN_SHORE }, 0x21: { terrain: 257, water: 271, type: CONST.TERRAIN_SHORE }, 0x22: { terrain: 258, water: 272, type: CONST.TERRAIN_SHORE }, 0x23: { terrain: 259, water: 273, type: CONST.TERRAIN_SHORE }, 0x24: { terrain: 260, water: 274, type: CONST.TERRAIN_SHORE }, 0x25: { terrain: 261, water: 275, type: CONST.TERRAIN_SHORE }, 0x26: { terrain: 262, water: 276, type: CONST.TERRAIN_SHORE }, 0x27: { terrain: 263, water: 277, type: CONST.TERRAIN_SHORE }, 0x28: { terrain: 264, water: 278, type: CONST.TERRAIN_SHORE }, 0x29: { terrain: 265, water: 279, type: CONST.TERRAIN_SHORE }, 0x2A: { terrain: 266, water: 280, type: CONST.TERRAIN_SHORE }, 0x2B: { terrain: 267, water: 281, type: CONST.TERRAIN_SHORE }, 0x2C: { terrain: 268, water: 282, type: CONST.TERRAIN_SHORE }, 0x2D: { terrain: 269, water: 283, type: CONST.TERRAIN_SHORE }, // surface water 0x30: { terrain: 256, water: 270, type: CONST.TERRAIN_SURFACE }, 0x31: { terrain: 256, water: 271, type: CONST.TERRAIN_SURFACE }, 0x32: { terrain: 256, water: 272, type: CONST.TERRAIN_SURFACE }, 0x33: { terrain: 256, water: 273, type: CONST.TERRAIN_SURFACE }, 0x34: { terrain: 256, water: 274, type: CONST.TERRAIN_SURFACE }, 0x35: { terrain: 256, water: 275, type: CONST.TERRAIN_SURFACE }, 0x36: { terrain: 256, water: 276, type: CONST.TERRAIN_SURFACE }, 0x37: { terrain: 256, water: 277, type: CONST.TERRAIN_SURFACE }, 0x38: { terrain: 256, water: 278, type: CONST.TERRAIN_SURFACE }, 0x39: { terrain: 256, water: 279, type: CONST.TERRAIN_SURFACE }, 0x3A: { terrain: 256, water: 280, type: CONST.TERRAIN_SURFACE }, 0x3B: { terrain: 256, water: 281, type: CONST.TERRAIN_SURFACE }, 0x3C: { terrain: 256, water: 282, type: CONST.TERRAIN_SURFACE }, 0x3D: { terrain: 256, water: 283, type: CONST.TERRAIN_SURFACE }, // waterfall 0x3E: { terrain: 269, water: 284, type: CONST.TERRAIN_WATERFALL }, // streams 0x40: { terrain: 256, water: 285, type: CONST.TERRAIN_SURFACE }, 0x41: { terrain: 256, water: 286, type: CONST.TERRAIN_SURFACE }, 0x42: { terrain: 256, water: 287, type: CONST.TERRAIN_SURFACE }, 0x43: { terrain: 256, water: 288, type: CONST.TERRAIN_SURFACE }, 0x44: { terrain: 256, water: 289, type: CONST.TERRAIN_SURFACE }, 0x45: { terrain: 256, water: 290, type: CONST.TERRAIN_SURFACE }, };