const { SourceDemoParser } = require('sdp.js');
const fs = require('fs');
const demo = SourceDemoParser.default()
.setOptions({ messages: false })
.parse(fs.readFileSync('demo.dem'));
console.log(demo);
/*
SourceDemo {
demoFileStamp: 'HL2DEMO',
demoProtocol: 3,
networkProtocol: 15,
serverName: 'localhost:0',
clientName: 'Can\'t Even',
mapName: 'testchmb_a_00',
gameDirectory: 'portal',
playbackTime: 3.944999933242798,
playbackTicks: 263,
playbackFrames: 253,
signOnLength: 80641,
messages: [] }
*/
const {
SourceDemoParser,
DemoMessages: { UserCmd },
} = require('sdp.js');
const fs = require('fs');
const IN_JUMP = 1 << 1;
const demo = SourceDemoParser.default()
.setOptions({ userCmds: true })
.parse(fs.readFileSync(file));
const registeredJumps = demo.findMessages(UserCmd)
.filter(({ userCmd }) => userCmd.buttons && userCmd.buttons & IN_JUMP);
console.log('registered jumps: ' + registeredJumps.length);
/*
registered jumps: 270
*/