UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

49 lines (36 loc) 981 B
import BinaryStream from '../../../common/binarystream'; import MinimapIcon from './minimapicon'; /** * war3map.mmp - the minimap icon file. */ export default class War3MapMmp { u1: number = 0; icons: MinimapIcon[] = []; constructor(buffer?: ArrayBuffer) { if (buffer) { this.load(buffer); } } load(buffer: ArrayBuffer) { let stream = new BinaryStream(buffer); this.u1 = stream.readInt32(); for (let i = 0, l = stream.readInt32(); i < l; i++) { let icon = new MinimapIcon(); icon.load(stream); this.icons[i] = icon; } } save() { let buffer = new ArrayBuffer(this.getByteLength()); let stream = new BinaryStream(buffer); stream.writeInt32(this.u1); stream.writeUint32(this.icons.length); for (let icon of this.icons) { icon.save(stream); } return buffer; } getByteLength() { return 8 + this.icons.length * 16; } }