UNPKG

mdx-m3-viewer

Version:

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

47 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const binarystream_1 = require("../../../common/binarystream"); const unit_1 = require("./unit"); /** * war3mapUnits.doo - the units and items file. */ class War3MapUnitsDoo { constructor() { this.version = 8; this.subversion = 11; this.units = []; } load(buffer, buildVersion) { const stream = new binarystream_1.default(buffer); if (stream.readBinary(4) !== 'W3do') { throw new Error('Not a valid war3mapUnits.doo buffer'); } this.version = stream.readInt32(); this.subversion = stream.readUint32(); for (let i = 0, l = stream.readInt32(); i < l; i++) { const unit = new unit_1.default(); unit.load(stream, this.version, this.subversion, buildVersion); this.units[i] = unit; } } save(buildVersion) { const stream = new binarystream_1.default(new ArrayBuffer(this.getByteLength(buildVersion))); stream.writeBinary('W3do'); stream.writeInt32(this.version); stream.writeUint32(this.subversion); stream.writeInt32(this.units.length); for (const unit of this.units) { unit.save(stream, this.version, this.subversion, buildVersion); } return stream.uint8array; } getByteLength(buildVersion) { let size = 16; for (const unit of this.units) { size += unit.getByteLength(this.version, this.subversion, buildVersion); } return size; } } exports.default = War3MapUnitsDoo; //# sourceMappingURL=file.js.map