mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
handle utf8 text
This commit is contained in:
parent
aaef2d237e
commit
58347be247
6 changed files with 16 additions and 17 deletions
|
|
@ -6,7 +6,7 @@ var ConsoleCmd = function (type, tick, stream, length) {
|
|||
};
|
||||
|
||||
ConsoleCmd.prototype.parse = function () {
|
||||
var cmd = this.stream.readASCIIString();
|
||||
var cmd = this.stream.readUTF8String();
|
||||
//console.log("cmd " + cmd);
|
||||
return cmd;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"bit-buffer": "0.0.3",
|
||||
"buffer": "^3.0.1"
|
||||
"bit-buffer": "icewind1991/bit-buffer"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
18
packet.js
18
packet.js
|
|
@ -63,7 +63,7 @@ Packet.parseGameEvent = function (eventId, stream) {
|
|||
Packet.getGameEventValue = function (stream, entry) {
|
||||
switch (entry.type) {
|
||||
case 1:
|
||||
return stream.readASCIIString();
|
||||
return stream.readUTF8String();
|
||||
case 2:
|
||||
return stream.readFloat32();
|
||||
case 3:
|
||||
|
|
@ -91,7 +91,7 @@ Packet.parsers = {
|
|||
var count = stream.readBits(8);
|
||||
var vars = {};
|
||||
for (var i = 0; i < count; i++) {
|
||||
vars[stream.readASCIIString()] = stream.readASCIIString();
|
||||
vars[stream.readUTF8String()] = stream.readUTF8String();
|
||||
}
|
||||
return {
|
||||
packetType: 'setConVar',
|
||||
|
|
@ -294,8 +294,8 @@ Packet.parsers = {
|
|||
type : type
|
||||
}
|
||||
}
|
||||
console.log(result);
|
||||
console.log(((pos + length) - stream._index) + ' bits left');
|
||||
//console.log(result);
|
||||
//console.log(((pos + length) - stream._index) + ' bits left');
|
||||
stream._index = pos + length;
|
||||
return result;
|
||||
},
|
||||
|
|
@ -383,11 +383,11 @@ Packet.userMessageParsers = {
|
|||
if (stream.readBits(8) === 1) {
|
||||
var first = stream.readBits(8);
|
||||
if (first === 7) {
|
||||
var color = stream.readASCIIString(6);
|
||||
var color = stream.readUTF8String(6);
|
||||
} else {
|
||||
stream._index = pos + 8;
|
||||
}
|
||||
text = stream.readASCIIString();
|
||||
text = stream.readUTF8String();
|
||||
if (text.substr(0, 6) === '*DEAD*') {
|
||||
// grave talk is in the format '*DEAD* \u0003$from\u0001: $text'
|
||||
var start = text.indexOf('\u0003');
|
||||
|
|
@ -398,9 +398,9 @@ Packet.userMessageParsers = {
|
|||
}
|
||||
} else {
|
||||
stream._index = pos;
|
||||
kind = stream.readASCIIString();
|
||||
from = stream.readASCIIString();
|
||||
text = stream.readASCIIString();
|
||||
kind = stream.readUTF8String();
|
||||
from = stream.readUTF8String();
|
||||
text = stream.readUTF8String();
|
||||
stream.readASCIIString();
|
||||
stream.readASCIIString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ Generator.readItem = function (stream, description, data) {
|
|||
return !!stream.readBits(1);
|
||||
} else if (description[0] === 's') {
|
||||
if (description.length === 1) {
|
||||
return stream.readASCIIString();
|
||||
return stream.readUTF8String();
|
||||
} else {
|
||||
length = parseInt(description.substr(1), 10);
|
||||
return stream.readASCIIString(length);
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ StringTable.prototype.parse = function () {
|
|||
var entryCount = this.stream.readBits(16);
|
||||
for (var j = 0; j < entryCount; j++) {
|
||||
var entry = {
|
||||
text: this.stream.readASCIIString()
|
||||
text: this.stream.readUTF8String()
|
||||
};
|
||||
if (this.stream.readBits(1)) {
|
||||
var extraDataLength = this.stream.readBits(16);
|
||||
entry.extraData = this.stream.readASCIIString(extraDataLength);
|
||||
entry.extraData = this.stream.readUTF8String(extraDataLength);
|
||||
//console.log(entry.extraData.length-extraDataLength);
|
||||
}
|
||||
entries.push(entry);
|
||||
|
|
|
|||
4
test.js
4
test.js
|
|
@ -7,6 +7,6 @@ fs.readFile("gully.dem", function (err, data) {
|
|||
var parser = demo.getParser();
|
||||
var head = parser.readHeader();
|
||||
//console.log(parser.readHeader());
|
||||
parser.parseBody()
|
||||
//console.log(parser.parseBody());
|
||||
//parser.parseBody()
|
||||
console.log(parser.parseBody());
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue