UNPKG

@dada78641/bwmapimage

Version:

Generates images of StarCraft: Brood War and Remastered maps

37 lines (33 loc) 976 B
// @dada78641/bwmapimage <https://github.com/msikma/bwmapimage> // © MIT license import XXH from 'xxhashjs' // To ensure our hashes are unique. const HASH_MAGIC = 0xDADA /** * Returns a 64-bit xxHash hash value for the given parsed map. * * This hash should be used only for caching purposes, not for identification purposes. */ export function getMapHash(mapData) { const hash = XXH.h64(HASH_MAGIC) hash.update(mapData._tiles) for (const unit of mapData.units) { const buffer = new ArrayBuffer(20) const view = new Uint32Array(buffer) view[0] = unit.x view[1] = unit.y view[2] = unit.unitId view[3] = unit.player view[4] = unit.resourceAmt hash.update(buffer) } for (const sprite of mapData.sprites) { const buffer = new ArrayBuffer(12) const view = new Uint32Array(buffer) view[0] = sprite.x view[1] = sprite.y view[2] = sprite.spriteId hash.update(buffer) } return hash.digest().toString(16) }