arx-convert
Version:
Converts various Arx Fatalis formats to JSON or YAML and back
36 lines • 1.26 kB
JavaScript
import { BinaryIO } from '../common/BinaryIO.js';
/**
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L84
*/
export var ArxSettingFlag;
(function (ArxSettingFlag) {
ArxSettingFlag[ArxSettingFlag["None"] = 0] = "None";
ArxSettingFlag[ArxSettingFlag["Random"] = 1] = "Random";
ArxSettingFlag[ArxSettingFlag["Interpolate"] = 2] = "Interpolate";
})(ArxSettingFlag || (ArxSettingFlag = {}));
export class Setting {
/**
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L107
*/
static readFrom(binary) {
return {
min: binary.readFloat32(),
max: binary.readFloat32(),
interval: binary.readUint32(),
flags: binary.readUint32(),
};
}
static accumulateFrom(setting) {
const buffer = new ArrayBuffer(Setting.sizeOf());
const binary = new BinaryIO(buffer);
binary.writeFloat32(setting.min);
binary.writeFloat32(setting.max);
binary.writeUint32(setting.interval);
binary.writeUint32(setting.flags);
return buffer;
}
static sizeOf() {
return BinaryIO.sizeOfFloat32() * 2 + BinaryIO.sizeOfInt32() * 2;
}
}
//# sourceMappingURL=Setting.js.map