arx-convert
Version:
Converts various Arx Fatalis formats to JSON or YAML and back
27 lines • 959 B
JavaScript
import { AMB_VERSION_1003, AMB_VERSION_1002 } from './constants.js';
import { BinaryIO } from '../common/BinaryIO.js';
export class AmbHeader {
/**
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L627
*/
static readFrom(binary) {
binary.readString(4); // identifier - always "GAMB"
const version = binary.readUint32();
return {
isNewerVersion: version >= AMB_VERSION_1002,
numberOfTracks: binary.readUint32(),
};
}
static accumulateFrom(json) {
const buffer = new ArrayBuffer(AmbHeader.sizeOf());
const binary = new BinaryIO(buffer);
binary.writeString('GAMB', 4);
binary.writeInt32(AMB_VERSION_1003);
binary.writeInt32(json.tracks.length);
return buffer;
}
static sizeOf() {
return BinaryIO.sizeOfString(4) + BinaryIO.sizeOfInt32() * 2;
}
}
//# sourceMappingURL=AmbHeader.js.map