quake2ts 0.0.301 → 0.0.302
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +8 -8
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +180 -36
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +180 -36
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +9 -9
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +90 -18
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +90 -18
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/browser/index.global.js +4 -4
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +90 -18
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +90 -18
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +97 -19
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +97 -19
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/net/netchan.d.ts +5 -0
- package/packages/shared/dist/types/net/netchan.d.ts.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -2442,10 +2442,14 @@ var _NetChan = class _NetChan2 {
|
|
|
2442
2442
|
this.incomingReliableSequence = 0;
|
|
2443
2443
|
this.outgoingReliableSequence = 0;
|
|
2444
2444
|
this.reliableLength = 0;
|
|
2445
|
+
this.fragmentSendOffset = 0;
|
|
2446
|
+
this.fragmentBuffer = null;
|
|
2447
|
+
this.fragmentLength = 0;
|
|
2448
|
+
this.fragmentReceived = 0;
|
|
2445
2449
|
this.lastReceived = 0;
|
|
2446
2450
|
this.lastSent = 0;
|
|
2447
2451
|
this.remoteAddress = null;
|
|
2448
|
-
this.reliableMessage = new BinaryWriter(_NetChan2.
|
|
2452
|
+
this.reliableMessage = new BinaryWriter(_NetChan2.MAX_RELIABLE_BUFFER);
|
|
2449
2453
|
const now = Date.now();
|
|
2450
2454
|
this.lastReceived = now;
|
|
2451
2455
|
this.lastSent = now;
|
|
@@ -2471,6 +2475,10 @@ var _NetChan = class _NetChan2 {
|
|
|
2471
2475
|
this.outgoingReliableSequence = 0;
|
|
2472
2476
|
this.reliableLength = 0;
|
|
2473
2477
|
this.reliableMessage.reset();
|
|
2478
|
+
this.fragmentSendOffset = 0;
|
|
2479
|
+
this.fragmentBuffer = null;
|
|
2480
|
+
this.fragmentLength = 0;
|
|
2481
|
+
this.fragmentReceived = 0;
|
|
2474
2482
|
this.lastReceived = Date.now();
|
|
2475
2483
|
this.lastSent = Date.now();
|
|
2476
2484
|
}
|
|
@@ -2480,18 +2488,38 @@ var _NetChan = class _NetChan2 {
|
|
|
2480
2488
|
transmit(unreliableData) {
|
|
2481
2489
|
this.outgoingSequence++;
|
|
2482
2490
|
this.lastSent = Date.now();
|
|
2491
|
+
let sendReliableLength = 0;
|
|
2492
|
+
let isFragment = false;
|
|
2493
|
+
let fragmentStart = 0;
|
|
2494
|
+
if (this.reliableLength > 0) {
|
|
2495
|
+
if (this.reliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
2496
|
+
isFragment = true;
|
|
2497
|
+
if (this.fragmentSendOffset >= this.reliableLength) {
|
|
2498
|
+
this.fragmentSendOffset = 0;
|
|
2499
|
+
}
|
|
2500
|
+
const remaining = this.reliableLength - this.fragmentSendOffset;
|
|
2501
|
+
sendReliableLength = remaining;
|
|
2502
|
+
if (sendReliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
2503
|
+
sendReliableLength = _NetChan2.FRAGMENT_SIZE;
|
|
2504
|
+
}
|
|
2505
|
+
fragmentStart = this.fragmentSendOffset;
|
|
2506
|
+
this.fragmentSendOffset += sendReliableLength;
|
|
2507
|
+
} else {
|
|
2508
|
+
sendReliableLength = this.reliableLength;
|
|
2509
|
+
}
|
|
2510
|
+
}
|
|
2483
2511
|
const headerSize = _NetChan2.PACKET_HEADER;
|
|
2484
|
-
const
|
|
2512
|
+
const reliableHeaderSize = sendReliableLength > 0 ? 2 + (isFragment ? 8 : 0) : 0;
|
|
2485
2513
|
let unreliableSize = unreliableData ? unreliableData.length : 0;
|
|
2486
|
-
if (headerSize +
|
|
2487
|
-
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize -
|
|
2514
|
+
if (headerSize + reliableHeaderSize + sendReliableLength + unreliableSize > _NetChan2.MAX_MSGLEN) {
|
|
2515
|
+
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize - reliableHeaderSize - sendReliableLength;
|
|
2488
2516
|
if (unreliableSize < 0) unreliableSize = 0;
|
|
2489
2517
|
}
|
|
2490
|
-
const buffer = new ArrayBuffer(headerSize +
|
|
2518
|
+
const buffer = new ArrayBuffer(headerSize + reliableHeaderSize + sendReliableLength + unreliableSize);
|
|
2491
2519
|
const view = new DataView(buffer);
|
|
2492
2520
|
const result = new Uint8Array(buffer);
|
|
2493
2521
|
let sequence = this.outgoingSequence;
|
|
2494
|
-
if (
|
|
2522
|
+
if (sendReliableLength > 0) {
|
|
2495
2523
|
sequence |= 2147483648;
|
|
2496
2524
|
if ((this.outgoingReliableSequence & 1) !== 0) {
|
|
2497
2525
|
sequence |= 1073741824;
|
|
@@ -2505,13 +2533,23 @@ var _NetChan = class _NetChan2 {
|
|
|
2505
2533
|
view.setUint32(4, ack, true);
|
|
2506
2534
|
view.setUint16(8, this.qport, true);
|
|
2507
2535
|
let offset = headerSize;
|
|
2508
|
-
if (
|
|
2509
|
-
|
|
2536
|
+
if (sendReliableLength > 0) {
|
|
2537
|
+
let lengthField = sendReliableLength;
|
|
2538
|
+
if (isFragment) {
|
|
2539
|
+
lengthField |= 32768;
|
|
2540
|
+
}
|
|
2541
|
+
view.setUint16(offset, lengthField, true);
|
|
2510
2542
|
offset += 2;
|
|
2543
|
+
if (isFragment) {
|
|
2544
|
+
view.setUint32(offset, fragmentStart, true);
|
|
2545
|
+
offset += 4;
|
|
2546
|
+
view.setUint32(offset, this.reliableLength, true);
|
|
2547
|
+
offset += 4;
|
|
2548
|
+
}
|
|
2511
2549
|
const reliableBuffer = this.reliableMessage.getBuffer();
|
|
2512
|
-
const reliableBytes = reliableBuffer.subarray(
|
|
2550
|
+
const reliableBytes = reliableBuffer.subarray(fragmentStart, fragmentStart + sendReliableLength);
|
|
2513
2551
|
result.set(reliableBytes, offset);
|
|
2514
|
-
offset +=
|
|
2552
|
+
offset += sendReliableLength;
|
|
2515
2553
|
}
|
|
2516
2554
|
if (unreliableData && unreliableSize > 0) {
|
|
2517
2555
|
const chunk = unreliableData.slice(0, unreliableSize);
|
|
@@ -2552,6 +2590,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2552
2590
|
this.reliableLength = 0;
|
|
2553
2591
|
this.reliableMessage.reset();
|
|
2554
2592
|
this.outgoingReliableSequence ^= 1;
|
|
2593
|
+
this.fragmentSendOffset = 0;
|
|
2555
2594
|
}
|
|
2556
2595
|
}
|
|
2557
2596
|
const hasReliableData = (sequence & 2147483648) !== 0;
|
|
@@ -2560,13 +2599,45 @@ var _NetChan = class _NetChan2 {
|
|
|
2560
2599
|
let reliableData = null;
|
|
2561
2600
|
if (hasReliableData) {
|
|
2562
2601
|
if (payloadOffset + 2 > packet.byteLength) return null;
|
|
2563
|
-
|
|
2602
|
+
let reliableLen = view.getUint16(payloadOffset, true);
|
|
2564
2603
|
payloadOffset += 2;
|
|
2604
|
+
const isFragment = (reliableLen & 32768) !== 0;
|
|
2605
|
+
reliableLen &= 32767;
|
|
2565
2606
|
const expectedBit = this.incomingReliableSequence & 1;
|
|
2566
2607
|
if (reliableSeqBit === expectedBit) {
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2608
|
+
if (isFragment) {
|
|
2609
|
+
if (payloadOffset + 8 > packet.byteLength) return null;
|
|
2610
|
+
const fragStart = view.getUint32(payloadOffset, true);
|
|
2611
|
+
payloadOffset += 4;
|
|
2612
|
+
const fragTotal = view.getUint32(payloadOffset, true);
|
|
2613
|
+
payloadOffset += 4;
|
|
2614
|
+
if (fragTotal > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2615
|
+
console.warn(`NetChan: received invalid fragment total ${fragTotal} > ${_NetChan2.MAX_RELIABLE_BUFFER}`);
|
|
2616
|
+
return null;
|
|
2617
|
+
}
|
|
2618
|
+
if (!this.fragmentBuffer || this.fragmentBuffer.length !== fragTotal) {
|
|
2619
|
+
this.fragmentBuffer = new Uint8Array(fragTotal);
|
|
2620
|
+
this.fragmentLength = fragTotal;
|
|
2621
|
+
this.fragmentReceived = 0;
|
|
2622
|
+
}
|
|
2623
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
2624
|
+
const data = packet.subarray(payloadOffset, payloadOffset + reliableLen);
|
|
2625
|
+
if (fragStart === this.fragmentReceived && fragStart + reliableLen <= fragTotal) {
|
|
2626
|
+
this.fragmentBuffer.set(data, fragStart);
|
|
2627
|
+
this.fragmentReceived += reliableLen;
|
|
2628
|
+
if (this.fragmentReceived >= fragTotal) {
|
|
2629
|
+
reliableData = this.fragmentBuffer;
|
|
2630
|
+
this.incomingReliableSequence++;
|
|
2631
|
+
this.fragmentBuffer = null;
|
|
2632
|
+
this.fragmentLength = 0;
|
|
2633
|
+
this.fragmentReceived = 0;
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
} else {
|
|
2637
|
+
this.incomingReliableSequence++;
|
|
2638
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
2639
|
+
reliableData = packet.slice(payloadOffset, payloadOffset + reliableLen);
|
|
2640
|
+
}
|
|
2570
2641
|
}
|
|
2571
2642
|
payloadOffset += reliableLen;
|
|
2572
2643
|
}
|
|
@@ -2593,7 +2664,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2593
2664
|
* Writes a byte to the reliable message buffer
|
|
2594
2665
|
*/
|
|
2595
2666
|
writeReliableByte(value) {
|
|
2596
|
-
if (this.reliableLength + 1 > _NetChan2.
|
|
2667
|
+
if (this.reliableLength + 1 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2597
2668
|
throw new Error("NetChan reliable buffer overflow");
|
|
2598
2669
|
}
|
|
2599
2670
|
this.reliableMessage.writeByte(value);
|
|
@@ -2603,7 +2674,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2603
2674
|
* Writes a short to the reliable message buffer
|
|
2604
2675
|
*/
|
|
2605
2676
|
writeReliableShort(value) {
|
|
2606
|
-
if (this.reliableLength + 2 > _NetChan2.
|
|
2677
|
+
if (this.reliableLength + 2 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2607
2678
|
throw new Error("NetChan reliable buffer overflow");
|
|
2608
2679
|
}
|
|
2609
2680
|
this.reliableMessage.writeShort(value);
|
|
@@ -2613,7 +2684,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2613
2684
|
* Writes a long to the reliable message buffer
|
|
2614
2685
|
*/
|
|
2615
2686
|
writeReliableLong(value) {
|
|
2616
|
-
if (this.reliableLength + 4 > _NetChan2.
|
|
2687
|
+
if (this.reliableLength + 4 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2617
2688
|
throw new Error("NetChan reliable buffer overflow");
|
|
2618
2689
|
}
|
|
2619
2690
|
this.reliableMessage.writeLong(value);
|
|
@@ -2624,7 +2695,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2624
2695
|
*/
|
|
2625
2696
|
writeReliableString(value) {
|
|
2626
2697
|
const len2 = value.length + 1;
|
|
2627
|
-
if (this.reliableLength + len2 > _NetChan2.
|
|
2698
|
+
if (this.reliableLength + len2 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2628
2699
|
throw new Error("NetChan reliable buffer overflow");
|
|
2629
2700
|
}
|
|
2630
2701
|
this.reliableMessage.writeString(value);
|
|
@@ -2657,6 +2728,7 @@ _NetChan.MAX_MSGLEN = 1400;
|
|
|
2657
2728
|
_NetChan.FRAGMENT_SIZE = 1024;
|
|
2658
2729
|
_NetChan.PACKET_HEADER = 10;
|
|
2659
2730
|
_NetChan.HEADER_OVERHEAD = _NetChan.PACKET_HEADER + 2;
|
|
2731
|
+
_NetChan.MAX_RELIABLE_BUFFER = 262144;
|
|
2660
2732
|
var AmmoType = /* @__PURE__ */ ((AmmoType22) => {
|
|
2661
2733
|
AmmoType22[AmmoType22["Bullets"] = 0] = "Bullets";
|
|
2662
2734
|
AmmoType22[AmmoType22["Shells"] = 1] = "Shells";
|
|
@@ -9426,10 +9498,14 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9426
9498
|
this.incomingReliableSequence = 0;
|
|
9427
9499
|
this.outgoingReliableSequence = 0;
|
|
9428
9500
|
this.reliableLength = 0;
|
|
9501
|
+
this.fragmentSendOffset = 0;
|
|
9502
|
+
this.fragmentBuffer = null;
|
|
9503
|
+
this.fragmentLength = 0;
|
|
9504
|
+
this.fragmentReceived = 0;
|
|
9429
9505
|
this.lastReceived = 0;
|
|
9430
9506
|
this.lastSent = 0;
|
|
9431
9507
|
this.remoteAddress = null;
|
|
9432
|
-
this.reliableMessage = new BinaryWriter2(_NetChan4.
|
|
9508
|
+
this.reliableMessage = new BinaryWriter2(_NetChan4.MAX_RELIABLE_BUFFER);
|
|
9433
9509
|
const now = Date.now();
|
|
9434
9510
|
this.lastReceived = now;
|
|
9435
9511
|
this.lastSent = now;
|
|
@@ -9455,6 +9531,10 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9455
9531
|
this.outgoingReliableSequence = 0;
|
|
9456
9532
|
this.reliableLength = 0;
|
|
9457
9533
|
this.reliableMessage.reset();
|
|
9534
|
+
this.fragmentSendOffset = 0;
|
|
9535
|
+
this.fragmentBuffer = null;
|
|
9536
|
+
this.fragmentLength = 0;
|
|
9537
|
+
this.fragmentReceived = 0;
|
|
9458
9538
|
this.lastReceived = Date.now();
|
|
9459
9539
|
this.lastSent = Date.now();
|
|
9460
9540
|
}
|
|
@@ -9464,18 +9544,38 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9464
9544
|
transmit(unreliableData) {
|
|
9465
9545
|
this.outgoingSequence++;
|
|
9466
9546
|
this.lastSent = Date.now();
|
|
9547
|
+
let sendReliableLength = 0;
|
|
9548
|
+
let isFragment = false;
|
|
9549
|
+
let fragmentStart = 0;
|
|
9550
|
+
if (this.reliableLength > 0) {
|
|
9551
|
+
if (this.reliableLength > _NetChan4.FRAGMENT_SIZE) {
|
|
9552
|
+
isFragment = true;
|
|
9553
|
+
if (this.fragmentSendOffset >= this.reliableLength) {
|
|
9554
|
+
this.fragmentSendOffset = 0;
|
|
9555
|
+
}
|
|
9556
|
+
const remaining = this.reliableLength - this.fragmentSendOffset;
|
|
9557
|
+
sendReliableLength = remaining;
|
|
9558
|
+
if (sendReliableLength > _NetChan4.FRAGMENT_SIZE) {
|
|
9559
|
+
sendReliableLength = _NetChan4.FRAGMENT_SIZE;
|
|
9560
|
+
}
|
|
9561
|
+
fragmentStart = this.fragmentSendOffset;
|
|
9562
|
+
this.fragmentSendOffset += sendReliableLength;
|
|
9563
|
+
} else {
|
|
9564
|
+
sendReliableLength = this.reliableLength;
|
|
9565
|
+
}
|
|
9566
|
+
}
|
|
9467
9567
|
const headerSize = _NetChan4.PACKET_HEADER;
|
|
9468
|
-
const
|
|
9568
|
+
const reliableHeaderSize = sendReliableLength > 0 ? 2 + (isFragment ? 8 : 0) : 0;
|
|
9469
9569
|
let unreliableSize = unreliableData ? unreliableData.length : 0;
|
|
9470
|
-
if (headerSize +
|
|
9471
|
-
unreliableSize = _NetChan4.MAX_MSGLEN - headerSize -
|
|
9570
|
+
if (headerSize + reliableHeaderSize + sendReliableLength + unreliableSize > _NetChan4.MAX_MSGLEN) {
|
|
9571
|
+
unreliableSize = _NetChan4.MAX_MSGLEN - headerSize - reliableHeaderSize - sendReliableLength;
|
|
9472
9572
|
if (unreliableSize < 0) unreliableSize = 0;
|
|
9473
9573
|
}
|
|
9474
|
-
const buffer = new ArrayBuffer(headerSize +
|
|
9574
|
+
const buffer = new ArrayBuffer(headerSize + reliableHeaderSize + sendReliableLength + unreliableSize);
|
|
9475
9575
|
const view = new DataView(buffer);
|
|
9476
9576
|
const result = new Uint8Array(buffer);
|
|
9477
9577
|
let sequence = this.outgoingSequence;
|
|
9478
|
-
if (
|
|
9578
|
+
if (sendReliableLength > 0) {
|
|
9479
9579
|
sequence |= 2147483648;
|
|
9480
9580
|
if ((this.outgoingReliableSequence & 1) !== 0) {
|
|
9481
9581
|
sequence |= 1073741824;
|
|
@@ -9489,13 +9589,23 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9489
9589
|
view.setUint32(4, ack, true);
|
|
9490
9590
|
view.setUint16(8, this.qport, true);
|
|
9491
9591
|
let offset = headerSize;
|
|
9492
|
-
if (
|
|
9493
|
-
|
|
9592
|
+
if (sendReliableLength > 0) {
|
|
9593
|
+
let lengthField = sendReliableLength;
|
|
9594
|
+
if (isFragment) {
|
|
9595
|
+
lengthField |= 32768;
|
|
9596
|
+
}
|
|
9597
|
+
view.setUint16(offset, lengthField, true);
|
|
9494
9598
|
offset += 2;
|
|
9599
|
+
if (isFragment) {
|
|
9600
|
+
view.setUint32(offset, fragmentStart, true);
|
|
9601
|
+
offset += 4;
|
|
9602
|
+
view.setUint32(offset, this.reliableLength, true);
|
|
9603
|
+
offset += 4;
|
|
9604
|
+
}
|
|
9495
9605
|
const reliableBuffer = this.reliableMessage.getBuffer();
|
|
9496
|
-
const reliableBytes = reliableBuffer.subarray(
|
|
9606
|
+
const reliableBytes = reliableBuffer.subarray(fragmentStart, fragmentStart + sendReliableLength);
|
|
9497
9607
|
result.set(reliableBytes, offset);
|
|
9498
|
-
offset +=
|
|
9608
|
+
offset += sendReliableLength;
|
|
9499
9609
|
}
|
|
9500
9610
|
if (unreliableData && unreliableSize > 0) {
|
|
9501
9611
|
const chunk = unreliableData.slice(0, unreliableSize);
|
|
@@ -9536,6 +9646,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9536
9646
|
this.reliableLength = 0;
|
|
9537
9647
|
this.reliableMessage.reset();
|
|
9538
9648
|
this.outgoingReliableSequence ^= 1;
|
|
9649
|
+
this.fragmentSendOffset = 0;
|
|
9539
9650
|
}
|
|
9540
9651
|
}
|
|
9541
9652
|
const hasReliableData = (sequence & 2147483648) !== 0;
|
|
@@ -9544,13 +9655,45 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9544
9655
|
let reliableData = null;
|
|
9545
9656
|
if (hasReliableData) {
|
|
9546
9657
|
if (payloadOffset + 2 > packet.byteLength) return null;
|
|
9547
|
-
|
|
9658
|
+
let reliableLen = view.getUint16(payloadOffset, true);
|
|
9548
9659
|
payloadOffset += 2;
|
|
9660
|
+
const isFragment = (reliableLen & 32768) !== 0;
|
|
9661
|
+
reliableLen &= 32767;
|
|
9549
9662
|
const expectedBit = this.incomingReliableSequence & 1;
|
|
9550
9663
|
if (reliableSeqBit === expectedBit) {
|
|
9551
|
-
|
|
9552
|
-
|
|
9553
|
-
|
|
9664
|
+
if (isFragment) {
|
|
9665
|
+
if (payloadOffset + 8 > packet.byteLength) return null;
|
|
9666
|
+
const fragStart = view.getUint32(payloadOffset, true);
|
|
9667
|
+
payloadOffset += 4;
|
|
9668
|
+
const fragTotal = view.getUint32(payloadOffset, true);
|
|
9669
|
+
payloadOffset += 4;
|
|
9670
|
+
if (fragTotal > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9671
|
+
console.warn(`NetChan: received invalid fragment total ${fragTotal} > ${_NetChan4.MAX_RELIABLE_BUFFER}`);
|
|
9672
|
+
return null;
|
|
9673
|
+
}
|
|
9674
|
+
if (!this.fragmentBuffer || this.fragmentBuffer.length !== fragTotal) {
|
|
9675
|
+
this.fragmentBuffer = new Uint8Array(fragTotal);
|
|
9676
|
+
this.fragmentLength = fragTotal;
|
|
9677
|
+
this.fragmentReceived = 0;
|
|
9678
|
+
}
|
|
9679
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
9680
|
+
const data = packet.subarray(payloadOffset, payloadOffset + reliableLen);
|
|
9681
|
+
if (fragStart === this.fragmentReceived && fragStart + reliableLen <= fragTotal) {
|
|
9682
|
+
this.fragmentBuffer.set(data, fragStart);
|
|
9683
|
+
this.fragmentReceived += reliableLen;
|
|
9684
|
+
if (this.fragmentReceived >= fragTotal) {
|
|
9685
|
+
reliableData = this.fragmentBuffer;
|
|
9686
|
+
this.incomingReliableSequence++;
|
|
9687
|
+
this.fragmentBuffer = null;
|
|
9688
|
+
this.fragmentLength = 0;
|
|
9689
|
+
this.fragmentReceived = 0;
|
|
9690
|
+
}
|
|
9691
|
+
}
|
|
9692
|
+
} else {
|
|
9693
|
+
this.incomingReliableSequence++;
|
|
9694
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
9695
|
+
reliableData = packet.slice(payloadOffset, payloadOffset + reliableLen);
|
|
9696
|
+
}
|
|
9554
9697
|
}
|
|
9555
9698
|
payloadOffset += reliableLen;
|
|
9556
9699
|
}
|
|
@@ -9577,7 +9720,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9577
9720
|
* Writes a byte to the reliable message buffer
|
|
9578
9721
|
*/
|
|
9579
9722
|
writeReliableByte(value) {
|
|
9580
|
-
if (this.reliableLength + 1 > _NetChan4.
|
|
9723
|
+
if (this.reliableLength + 1 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9581
9724
|
throw new Error("NetChan reliable buffer overflow");
|
|
9582
9725
|
}
|
|
9583
9726
|
this.reliableMessage.writeByte(value);
|
|
@@ -9587,7 +9730,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9587
9730
|
* Writes a short to the reliable message buffer
|
|
9588
9731
|
*/
|
|
9589
9732
|
writeReliableShort(value) {
|
|
9590
|
-
if (this.reliableLength + 2 > _NetChan4.
|
|
9733
|
+
if (this.reliableLength + 2 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9591
9734
|
throw new Error("NetChan reliable buffer overflow");
|
|
9592
9735
|
}
|
|
9593
9736
|
this.reliableMessage.writeShort(value);
|
|
@@ -9597,7 +9740,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9597
9740
|
* Writes a long to the reliable message buffer
|
|
9598
9741
|
*/
|
|
9599
9742
|
writeReliableLong(value) {
|
|
9600
|
-
if (this.reliableLength + 4 > _NetChan4.
|
|
9743
|
+
if (this.reliableLength + 4 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9601
9744
|
throw new Error("NetChan reliable buffer overflow");
|
|
9602
9745
|
}
|
|
9603
9746
|
this.reliableMessage.writeLong(value);
|
|
@@ -9608,7 +9751,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9608
9751
|
*/
|
|
9609
9752
|
writeReliableString(value) {
|
|
9610
9753
|
const len2 = value.length + 1;
|
|
9611
|
-
if (this.reliableLength + len2 > _NetChan4.
|
|
9754
|
+
if (this.reliableLength + len2 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9612
9755
|
throw new Error("NetChan reliable buffer overflow");
|
|
9613
9756
|
}
|
|
9614
9757
|
this.reliableMessage.writeString(value);
|
|
@@ -9641,6 +9784,7 @@ _NetChan3.MAX_MSGLEN = 1400;
|
|
|
9641
9784
|
_NetChan3.FRAGMENT_SIZE = 1024;
|
|
9642
9785
|
_NetChan3.PACKET_HEADER = 10;
|
|
9643
9786
|
_NetChan3.HEADER_OVERHEAD = _NetChan3.PACKET_HEADER + 2;
|
|
9787
|
+
_NetChan3.MAX_RELIABLE_BUFFER = 262144;
|
|
9644
9788
|
var NetChan = _NetChan3;
|
|
9645
9789
|
var AmmoType2 = /* @__PURE__ */ ((AmmoType22) => {
|
|
9646
9790
|
AmmoType22[AmmoType22["Bullets"] = 0] = "Bullets";
|