mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
skip null message
This commit is contained in:
parent
adb0cc90ee
commit
f94788db18
2 changed files with 25 additions and 22 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "tf2-demo",
|
"name": "tf2-demo",
|
||||||
"description": "A parser for TF2 demo files",
|
"description": "A parser for TF2 demo files",
|
||||||
"version": "1.1.4",
|
"version": "1.1.5",
|
||||||
"bin": {
|
"bin": {
|
||||||
"demo-analyse": "./bin/analyse.js"
|
"demo-analyse": "./bin/analyse.js"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import {BitStream} from 'bit-buffer';
|
||||||
import {EventEmitter} from 'events';
|
import {EventEmitter} from 'events';
|
||||||
import {Match} from './Data/Match';
|
import {Match} from './Data/Match';
|
||||||
import {Parser as MessageParser} from './Parser/Message/Parser';
|
import {Parser as MessageParser} from './Parser/Message/Parser';
|
||||||
import {Header} from "./Data/Header";
|
import {Header} from './Data/Header';
|
||||||
|
|
||||||
export class Parser extends EventEmitter {
|
export class Parser extends EventEmitter {
|
||||||
stream: BitStream;
|
stream: BitStream;
|
||||||
|
|
@ -17,7 +17,7 @@ export class Parser extends EventEmitter {
|
||||||
constructor(stream: BitStream, skipPackets: PacketType[] = []) {
|
constructor(stream: BitStream, skipPackets: PacketType[] = []) {
|
||||||
super();
|
super();
|
||||||
this.stream = stream;
|
this.stream = stream;
|
||||||
this.match = new Match();
|
this.match = new Match();
|
||||||
this.on('packet', this.match.handlePacket.bind(this.match));
|
this.on('packet', this.match.handlePacket.bind(this.match));
|
||||||
this.skipPackets = skipPackets;
|
this.skipPackets = skipPackets;
|
||||||
}
|
}
|
||||||
|
|
@ -28,18 +28,18 @@ export class Parser extends EventEmitter {
|
||||||
|
|
||||||
parseHeader(stream): Header {
|
parseHeader(stream): Header {
|
||||||
return {
|
return {
|
||||||
'type': stream.readASCIIString(8),
|
'type': stream.readASCIIString(8),
|
||||||
'version': stream.readInt32(),
|
'version': stream.readInt32(),
|
||||||
'protocol': stream.readInt32(),
|
'protocol': stream.readInt32(),
|
||||||
'server': stream.readASCIIString(260),
|
'server': stream.readASCIIString(260),
|
||||||
'nick': stream.readASCIIString(260),
|
'nick': stream.readASCIIString(260),
|
||||||
'map': stream.readASCIIString(260),
|
'map': stream.readASCIIString(260),
|
||||||
'game': stream.readASCIIString(260),
|
'game': stream.readASCIIString(260),
|
||||||
'duration': stream.readFloat32(),
|
'duration': stream.readFloat32(),
|
||||||
'ticks': stream.readInt32(),
|
'ticks': stream.readInt32(),
|
||||||
'frames': stream.readInt32(),
|
'frames': stream.readInt32(),
|
||||||
'sigon': stream.readInt32()
|
'sigon': stream.readInt32()
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
parseBody() {
|
parseBody() {
|
||||||
|
|
@ -74,7 +74,7 @@ export class Parser extends EventEmitter {
|
||||||
case MessageType.StringTables:
|
case MessageType.StringTables:
|
||||||
return new StringTable(type, tick, data, length, match, this.skipPackets);
|
return new StringTable(type, tick, data, length, match, this.skipPackets);
|
||||||
default:
|
default:
|
||||||
throw new Error("unknown message type");
|
throw new Error('unknown message type');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,11 +90,14 @@ export class Parser extends EventEmitter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
readMessage(stream: BitStream, match: Match): MessageParser|boolean {
|
readMessage(stream: BitStream, match: Match): MessageParser | boolean {
|
||||||
if (stream.bitsLeft < 8) {
|
if (stream.bitsLeft < 8) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const type: MessageType = stream.readBits(8);
|
const type: MessageType = stream.readBits(8);
|
||||||
|
if (type === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (type === MessageType.Stop) {
|
if (type === MessageType.Stop) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -137,12 +140,12 @@ export class Parser extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum MessageType {
|
export enum MessageType {
|
||||||
Sigon = 1,
|
Sigon = 1,
|
||||||
Packet = 2,
|
Packet = 2,
|
||||||
SyncTick = 3,
|
SyncTick = 3,
|
||||||
ConsoleCmd = 4,
|
ConsoleCmd = 4,
|
||||||
UserCmd = 5,
|
UserCmd = 5,
|
||||||
DataTables = 6,
|
DataTables = 6,
|
||||||
Stop = 7,
|
Stop = 7,
|
||||||
StringTables = 8
|
StringTables = 8
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue