sc4
Version:
A command line utility for automating SimCity 4 modding tasks & modifying savegames
52 lines (51 loc) • 1.42 kB
JavaScript
import FileType from './file-types.js';
import { kFileType } from './symbols.js';
import Unknown from './unknown.js';
import WriteBuffer from './write-buffer.js';
export default class cSC43DRender {
static [kFileType] = FileType.cSC43DRender;
crc = 0x00000000;
mem = 0x00000000;
version = 0x0002;
size;
resolution;
camera;
unknown = new Unknown()
.dword(0x00000000)
.dword(0x00000000)
.dword(0x00000006)
.dword(0x00000000)
.dword(0x00000003);
parse(rs) {
this.unknown = new Unknown();
let u = this.unknown.reader(rs);
rs.size();
this.crc = rs.dword();
this.mem = rs.dword();
this.version = rs.word();
this.size = [rs.uint32(), rs.uint32()];
u.dword();
u.dword();
this.resolution = [rs.uint32(), rs.uint32()];
this.camera = rs.pointer();
u.dword();
u.dword();
u.dword();
rs.assert();
}
toBuffer() {
let ws = new WriteBuffer();
let unknown = this.unknown.writer(ws);
ws.dword(this.mem);
ws.word(this.version);
ws.tuple(this.size, ws.uint32);
unknown.dword();
unknown.dword();
ws.tuple(this.resolution, ws.uint32);
ws.pointer(this.camera);
unknown.dword();
unknown.dword();
unknown.dword();
return ws.seal();
}
}