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 {
|
||||
packetType: 'setConVar';
|
||||
vars: {[key: string]: string};
|
||||
vars: Map<string, string>;
|
||||
}
|
||||
|
||||
export interface TempEntitiesPacket extends BasePacket {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@ import {SetConVarPacket} from '../../Data/Packet';
|
|||
|
||||
export function ParseSetConVar(stream: BitStream): SetConVarPacket { // 5: setconvar
|
||||
const count = stream.readUint8();
|
||||
const vars: { [key: string]: string } = {};
|
||||
const vars: Map<string, string> = new Map();
|
||||
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 {
|
||||
packetType: 'setConVar',
|
||||
|
|
@ -14,10 +16,9 @@ export function ParseSetConVar(stream: BitStream): SetConVarPacket { // 5: setco
|
|||
}
|
||||
|
||||
export function EncodeSetConVar(packet: SetConVarPacket, stream: BitStream) {
|
||||
const keys = Object.keys(packet.vars);
|
||||
stream.writeUint8(keys.length);
|
||||
for (const key of keys) {
|
||||
stream.writeUint8(packet.vars.size);
|
||||
for (const [key, value] of packet.vars.entries()) {
|
||||
stream.writeUTF8String(key);
|
||||
stream.writeUTF8String(packet.vars[key]);
|
||||
stream.writeUTF8String(value);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,20 +6,20 @@ suite('SetConVar', () => {
|
|||
test('Parse setConVar', () => {
|
||||
assertParser(ParseSetConVar, getStream(String.fromCharCode(2) + 'foo\0bar\0second\0value\0'), {
|
||||
packetType: 'setConVar',
|
||||
vars: {
|
||||
foo: 'bar',
|
||||
second: 'value'
|
||||
}
|
||||
vars: new Map([
|
||||
['foo', 'bar'],
|
||||
['second', 'value']
|
||||
])
|
||||
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
||||
});
|
||||
|
||||
test('Encode setConVar', () => {
|
||||
assertEncoder(ParseSetConVar, EncodeSetConVar, {
|
||||
packetType: 'setConVar',
|
||||
vars: {
|
||||
foo: 'bar',
|
||||
second: 'value'
|
||||
}
|
||||
vars: new Map([
|
||||
['foo', 'bar'],
|
||||
['second', 'value']
|
||||
])
|
||||
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue