mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 03:59:50 +02:00
feat: more sc2 x2
This commit is contained in:
1 parent
365c714213
commit
a0434b6ed2
2 files changed
+25
-6
No files matched your search
Vendored
+1
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
|
"AABBOX",
|
||||||
"Abhi",
|
"Abhi",
|
||||||
"accountinfo",
|
"accountinfo",
|
||||||
"bepaint",
|
"bepaint",
|
||||||
|
|||||||
+24
-6
@@ -119,12 +119,19 @@ class SCPGStream {
|
|||||||
skip(size: number) {
|
skip(size: number) {
|
||||||
this.index += size;
|
this.index += size;
|
||||||
}
|
}
|
||||||
|
read(size: number) {
|
||||||
|
return this.buffer.subarray(this.index, this.index + size);
|
||||||
|
}
|
||||||
consume(size: number) {
|
consume(size: number) {
|
||||||
const subarray = this.buffer.subarray(this.index, this.index + size);
|
const subarray = this.read(size);
|
||||||
this.index += size;
|
this.index += size;
|
||||||
|
|
||||||
return subarray;
|
return subarray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readRemaining() {
|
||||||
|
return this.read(Number.POSITIVE_INFINITY);
|
||||||
|
}
|
||||||
consumeRemaining() {
|
consumeRemaining() {
|
||||||
return this.consume(Number.POSITIVE_INFINITY);
|
return this.consume(Number.POSITIVE_INFINITY);
|
||||||
}
|
}
|
||||||
@@ -154,8 +161,8 @@ class SCPGStream {
|
|||||||
return { buffer, value: buffer.readInt32LE() };
|
return { buffer, value: buffer.readInt32LE() };
|
||||||
}
|
}
|
||||||
consumeInt64() {
|
consumeInt64() {
|
||||||
const buffer = this.consume(4);
|
const buffer = this.consume(8);
|
||||||
return { buffer, value: buffer.readInt32LE() };
|
return { buffer, value: buffer.readBigInt64LE() };
|
||||||
}
|
}
|
||||||
consumeUInt8() {
|
consumeUInt8() {
|
||||||
const buffer = this.consume(1);
|
const buffer = this.consume(1);
|
||||||
@@ -170,14 +177,19 @@ class SCPGStream {
|
|||||||
return { buffer, value: buffer.readUInt32LE() };
|
return { buffer, value: buffer.readUInt32LE() };
|
||||||
}
|
}
|
||||||
consumeUInt64() {
|
consumeUInt64() {
|
||||||
const buffer = this.consume(4);
|
const buffer = this.consume(8);
|
||||||
return { buffer, value: buffer.readUInt32LE() };
|
return { buffer, value: buffer.readBigUInt64LE() };
|
||||||
}
|
}
|
||||||
consumeFloat() {
|
consumeFloat() {
|
||||||
const buffer = this.consume(4);
|
const buffer = this.consume(4);
|
||||||
return { buffer, value: buffer.readFloatLE() };
|
return { buffer, value: buffer.readFloatLE() };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
consumeBoolean() {
|
||||||
|
const buffer = this.consume(1);
|
||||||
|
return { buffer, value: buffer.readUInt8() === 1 };
|
||||||
|
}
|
||||||
|
|
||||||
consumeSCGHeader() {
|
consumeSCGHeader() {
|
||||||
return {
|
return {
|
||||||
name: this.consumeAscii(4).value,
|
name: this.consumeAscii(4).value,
|
||||||
@@ -325,6 +337,12 @@ class SCPGStream {
|
|||||||
case KAType.UINT64:
|
case KAType.UINT64:
|
||||||
return this.consumeUInt64() as KAResolvedValue<Type>;
|
return this.consumeUInt64() as KAResolvedValue<Type>;
|
||||||
|
|
||||||
|
case KAType.UINT32:
|
||||||
|
return this.consumeUInt32() as KAResolvedValue<Type>;
|
||||||
|
|
||||||
|
case KAType.BOOLEAN:
|
||||||
|
return this.consumeBoolean() as KAResolvedValue<Type>;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
`Unknown KA type: ${type} (${KAType[type] ?? 'unknown type'})`,
|
`Unknown KA type: ${type} (${KAType[type] ?? 'unknown type'})`,
|
||||||
@@ -389,7 +407,7 @@ class SCPGStream {
|
|||||||
const value = stringTable[valueIndex];
|
const value = stringTable[valueIndex];
|
||||||
pairs[key] = value;
|
pairs[key] = value;
|
||||||
} else {
|
} else {
|
||||||
const { value } = this.consumeKAValue(valueType);
|
const { value } = this.consumeKAValue(valueType, stringTable);
|
||||||
pairs[key] = value;
|
pairs[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user