1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 09:04:13 +02:00

handle utf8 text

This commit is contained in:
Robin Appelman 2015-01-27 20:09:00 +01:00
commit 58347be247
6 changed files with 16 additions and 17 deletions

View file

@ -6,7 +6,7 @@ var ConsoleCmd = function (type, tick, stream, length) {
}; };
ConsoleCmd.prototype.parse = function () { ConsoleCmd.prototype.parse = function () {
var cmd = this.stream.readASCIIString(); var cmd = this.stream.readUTF8String();
//console.log("cmd " + cmd); //console.log("cmd " + cmd);
return cmd; return cmd;
}; };

View file

@ -1,6 +1,5 @@
{ {
"dependencies": { "dependencies": {
"bit-buffer": "0.0.3", "bit-buffer": "icewind1991/bit-buffer"
"buffer": "^3.0.1"
} }
} }

View file

@ -63,7 +63,7 @@ Packet.parseGameEvent = function (eventId, stream) {
Packet.getGameEventValue = function (stream, entry) { Packet.getGameEventValue = function (stream, entry) {
switch (entry.type) { switch (entry.type) {
case 1: case 1:
return stream.readASCIIString(); return stream.readUTF8String();
case 2: case 2:
return stream.readFloat32(); return stream.readFloat32();
case 3: case 3:
@ -91,7 +91,7 @@ Packet.parsers = {
var count = stream.readBits(8); var count = stream.readBits(8);
var vars = {}; var vars = {};
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
vars[stream.readASCIIString()] = stream.readASCIIString(); vars[stream.readUTF8String()] = stream.readUTF8String();
} }
return { return {
packetType: 'setConVar', packetType: 'setConVar',
@ -294,8 +294,8 @@ Packet.parsers = {
type : type type : type
} }
} }
console.log(result); //console.log(result);
console.log(((pos + length) - stream._index) + ' bits left'); //console.log(((pos + length) - stream._index) + ' bits left');
stream._index = pos + length; stream._index = pos + length;
return result; return result;
}, },
@ -383,11 +383,11 @@ Packet.userMessageParsers = {
if (stream.readBits(8) === 1) { if (stream.readBits(8) === 1) {
var first = stream.readBits(8); var first = stream.readBits(8);
if (first === 7) { if (first === 7) {
var color = stream.readASCIIString(6); var color = stream.readUTF8String(6);
} else { } else {
stream._index = pos + 8; stream._index = pos + 8;
} }
text = stream.readASCIIString(); text = stream.readUTF8String();
if (text.substr(0, 6) === '*DEAD*') { if (text.substr(0, 6) === '*DEAD*') {
// grave talk is in the format '*DEAD* \u0003$from\u0001: $text' // grave talk is in the format '*DEAD* \u0003$from\u0001: $text'
var start = text.indexOf('\u0003'); var start = text.indexOf('\u0003');
@ -398,9 +398,9 @@ Packet.userMessageParsers = {
} }
} else { } else {
stream._index = pos; stream._index = pos;
kind = stream.readASCIIString(); kind = stream.readUTF8String();
from = stream.readASCIIString(); from = stream.readUTF8String();
text = stream.readASCIIString(); text = stream.readUTF8String();
stream.readASCIIString(); stream.readASCIIString();
stream.readASCIIString(); stream.readASCIIString();
} }

View file

@ -29,7 +29,7 @@ Generator.readItem = function (stream, description, data) {
return !!stream.readBits(1); return !!stream.readBits(1);
} else if (description[0] === 's') { } else if (description[0] === 's') {
if (description.length === 1) { if (description.length === 1) {
return stream.readASCIIString(); return stream.readUTF8String();
} else { } else {
length = parseInt(description.substr(1), 10); length = parseInt(description.substr(1), 10);
return stream.readASCIIString(length); return stream.readASCIIString(length);

View file

@ -16,11 +16,11 @@ StringTable.prototype.parse = function () {
var entryCount = this.stream.readBits(16); var entryCount = this.stream.readBits(16);
for (var j = 0; j < entryCount; j++) { for (var j = 0; j < entryCount; j++) {
var entry = { var entry = {
text: this.stream.readASCIIString() text: this.stream.readUTF8String()
}; };
if (this.stream.readBits(1)) { if (this.stream.readBits(1)) {
var extraDataLength = this.stream.readBits(16); var extraDataLength = this.stream.readBits(16);
entry.extraData = this.stream.readASCIIString(extraDataLength); entry.extraData = this.stream.readUTF8String(extraDataLength);
//console.log(entry.extraData.length-extraDataLength); //console.log(entry.extraData.length-extraDataLength);
} }
entries.push(entry); entries.push(entry);

View file

@ -7,6 +7,6 @@ fs.readFile("gully.dem", function (err, data) {
var parser = demo.getParser(); var parser = demo.getParser();
var head = parser.readHeader(); var head = parser.readHeader();
//console.log(parser.readHeader()); //console.log(parser.readHeader());
parser.parseBody() //parser.parseBody()
//console.log(parser.parseBody()); console.log(parser.parseBody());
}); });