mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
use map for setconvar
This commit is contained in:
parent
384d4557f6
commit
b3e69f1af4
3 changed files with 16 additions and 15 deletions
|
|
@ -96,7 +96,7 @@ export interface ParseSoundsPacket extends BasePacket {
|
||||||
|
|
||||||
export interface SetConVarPacket extends BasePacket {
|
export interface SetConVarPacket extends BasePacket {
|
||||||
packetType: 'setConVar';
|
packetType: 'setConVar';
|
||||||
vars: {[key: string]: string};
|
vars: Map<string, string>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TempEntitiesPacket extends BasePacket {
|
export interface TempEntitiesPacket extends BasePacket {
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,11 @@ import {SetConVarPacket} from '../../Data/Packet';
|
||||||
|
|
||||||
export function ParseSetConVar(stream: BitStream): SetConVarPacket { // 5: setconvar
|
export function ParseSetConVar(stream: BitStream): SetConVarPacket { // 5: setconvar
|
||||||
const count = stream.readUint8();
|
const count = stream.readUint8();
|
||||||
const vars: { [key: string]: string } = {};
|
const vars: Map<string, string> = new Map();
|
||||||
for (let i = 0; i < count; i++) {
|
for (let i = 0; i < count; i++) {
|
||||||
vars[stream.readUTF8String()] = stream.readUTF8String();
|
const key = stream.readUTF8String();
|
||||||
|
const value = stream.readUTF8String();
|
||||||
|
vars.set(key, value);
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
packetType: 'setConVar',
|
packetType: 'setConVar',
|
||||||
|
|
@ -14,10 +16,9 @@ export function ParseSetConVar(stream: BitStream): SetConVarPacket { // 5: setco
|
||||||
}
|
}
|
||||||
|
|
||||||
export function EncodeSetConVar(packet: SetConVarPacket, stream: BitStream) {
|
export function EncodeSetConVar(packet: SetConVarPacket, stream: BitStream) {
|
||||||
const keys = Object.keys(packet.vars);
|
stream.writeUint8(packet.vars.size);
|
||||||
stream.writeUint8(keys.length);
|
for (const [key, value] of packet.vars.entries()) {
|
||||||
for (const key of keys) {
|
|
||||||
stream.writeUTF8String(key);
|
stream.writeUTF8String(key);
|
||||||
stream.writeUTF8String(packet.vars[key]);
|
stream.writeUTF8String(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,20 @@ suite('SetConVar', () => {
|
||||||
test('Parse setConVar', () => {
|
test('Parse setConVar', () => {
|
||||||
assertParser(ParseSetConVar, getStream(String.fromCharCode(2) + 'foo\0bar\0second\0value\0'), {
|
assertParser(ParseSetConVar, getStream(String.fromCharCode(2) + 'foo\0bar\0second\0value\0'), {
|
||||||
packetType: 'setConVar',
|
packetType: 'setConVar',
|
||||||
vars: {
|
vars: new Map([
|
||||||
foo: 'bar',
|
['foo', 'bar'],
|
||||||
second: 'value'
|
['second', 'value']
|
||||||
}
|
])
|
||||||
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Encode setConVar', () => {
|
test('Encode setConVar', () => {
|
||||||
assertEncoder(ParseSetConVar, EncodeSetConVar, {
|
assertEncoder(ParseSetConVar, EncodeSetConVar, {
|
||||||
packetType: 'setConVar',
|
packetType: 'setConVar',
|
||||||
vars: {
|
vars: new Map([
|
||||||
foo: 'bar',
|
['foo', 'bar'],
|
||||||
second: 'value'
|
['second', 'value']
|
||||||
}
|
])
|
||||||
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue