arx-convert
Version:
Converts various Arx Fatalis formats to JSON or YAML and back
28 lines • 1.06 kB
JavaScript
import { BinaryIO } from '../common/BinaryIO.js';
import { PortalPolygon } from './PortalPolygon.js';
export class Portal {
static readFrom(binary) {
const data = {
polygon: PortalPolygon.readFrom(binary),
room1: binary.readInt32(), // facing normal
room2: binary.readInt32(),
usePortal: binary.readInt16(),
};
binary.readInt16(); // paddy - unused by Arx, always 0
return data;
}
static accumulateFrom(portal, levelIdx) {
const buffer = new ArrayBuffer(Portal.sizeOf());
const binary = new BinaryIO(buffer);
binary.writeBuffer(PortalPolygon.accumulateFrom(portal.polygon, levelIdx));
binary.writeInt32(portal.room1);
binary.writeInt32(portal.room2);
binary.writeInt16(portal.usePortal);
binary.writeInt16(0); // paddy
return buffer;
}
static sizeOf() {
return PortalPolygon.sizeOf() + BinaryIO.sizeOfInt32Array(2) + BinaryIO.sizeOfInt16Array(2);
}
}
//# sourceMappingURL=Portal.js.map