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
|
@@ -2410,10 +2410,14 @@ var _NetChan = class _NetChan2 {
|
|
|
2410
2410
|
this.incomingReliableSequence = 0;
|
|
2411
2411
|
this.outgoingReliableSequence = 0;
|
|
2412
2412
|
this.reliableLength = 0;
|
|
2413
|
+
this.fragmentSendOffset = 0;
|
|
2414
|
+
this.fragmentBuffer = null;
|
|
2415
|
+
this.fragmentLength = 0;
|
|
2416
|
+
this.fragmentReceived = 0;
|
|
2413
2417
|
this.lastReceived = 0;
|
|
2414
2418
|
this.lastSent = 0;
|
|
2415
2419
|
this.remoteAddress = null;
|
|
2416
|
-
this.reliableMessage = new BinaryWriter(_NetChan2.
|
|
2420
|
+
this.reliableMessage = new BinaryWriter(_NetChan2.MAX_RELIABLE_BUFFER);
|
|
2417
2421
|
const now = Date.now();
|
|
2418
2422
|
this.lastReceived = now;
|
|
2419
2423
|
this.lastSent = now;
|
|
@@ -2439,6 +2443,10 @@ var _NetChan = class _NetChan2 {
|
|
|
2439
2443
|
this.outgoingReliableSequence = 0;
|
|
2440
2444
|
this.reliableLength = 0;
|
|
2441
2445
|
this.reliableMessage.reset();
|
|
2446
|
+
this.fragmentSendOffset = 0;
|
|
2447
|
+
this.fragmentBuffer = null;
|
|
2448
|
+
this.fragmentLength = 0;
|
|
2449
|
+
this.fragmentReceived = 0;
|
|
2442
2450
|
this.lastReceived = Date.now();
|
|
2443
2451
|
this.lastSent = Date.now();
|
|
2444
2452
|
}
|
|
@@ -2448,18 +2456,38 @@ var _NetChan = class _NetChan2 {
|
|
|
2448
2456
|
transmit(unreliableData) {
|
|
2449
2457
|
this.outgoingSequence++;
|
|
2450
2458
|
this.lastSent = Date.now();
|
|
2459
|
+
let sendReliableLength = 0;
|
|
2460
|
+
let isFragment = false;
|
|
2461
|
+
let fragmentStart = 0;
|
|
2462
|
+
if (this.reliableLength > 0) {
|
|
2463
|
+
if (this.reliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
2464
|
+
isFragment = true;
|
|
2465
|
+
if (this.fragmentSendOffset >= this.reliableLength) {
|
|
2466
|
+
this.fragmentSendOffset = 0;
|
|
2467
|
+
}
|
|
2468
|
+
const remaining = this.reliableLength - this.fragmentSendOffset;
|
|
2469
|
+
sendReliableLength = remaining;
|
|
2470
|
+
if (sendReliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
2471
|
+
sendReliableLength = _NetChan2.FRAGMENT_SIZE;
|
|
2472
|
+
}
|
|
2473
|
+
fragmentStart = this.fragmentSendOffset;
|
|
2474
|
+
this.fragmentSendOffset += sendReliableLength;
|
|
2475
|
+
} else {
|
|
2476
|
+
sendReliableLength = this.reliableLength;
|
|
2477
|
+
}
|
|
2478
|
+
}
|
|
2451
2479
|
const headerSize = _NetChan2.PACKET_HEADER;
|
|
2452
|
-
const
|
|
2480
|
+
const reliableHeaderSize = sendReliableLength > 0 ? 2 + (isFragment ? 8 : 0) : 0;
|
|
2453
2481
|
let unreliableSize = unreliableData ? unreliableData.length : 0;
|
|
2454
|
-
if (headerSize +
|
|
2455
|
-
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize -
|
|
2482
|
+
if (headerSize + reliableHeaderSize + sendReliableLength + unreliableSize > _NetChan2.MAX_MSGLEN) {
|
|
2483
|
+
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize - reliableHeaderSize - sendReliableLength;
|
|
2456
2484
|
if (unreliableSize < 0) unreliableSize = 0;
|
|
2457
2485
|
}
|
|
2458
|
-
const buffer = new ArrayBuffer(headerSize +
|
|
2486
|
+
const buffer = new ArrayBuffer(headerSize + reliableHeaderSize + sendReliableLength + unreliableSize);
|
|
2459
2487
|
const view = new DataView(buffer);
|
|
2460
2488
|
const result = new Uint8Array(buffer);
|
|
2461
2489
|
let sequence = this.outgoingSequence;
|
|
2462
|
-
if (
|
|
2490
|
+
if (sendReliableLength > 0) {
|
|
2463
2491
|
sequence |= 2147483648;
|
|
2464
2492
|
if ((this.outgoingReliableSequence & 1) !== 0) {
|
|
2465
2493
|
sequence |= 1073741824;
|
|
@@ -2473,13 +2501,23 @@ var _NetChan = class _NetChan2 {
|
|
|
2473
2501
|
view.setUint32(4, ack, true);
|
|
2474
2502
|
view.setUint16(8, this.qport, true);
|
|
2475
2503
|
let offset = headerSize;
|
|
2476
|
-
if (
|
|
2477
|
-
|
|
2504
|
+
if (sendReliableLength > 0) {
|
|
2505
|
+
let lengthField = sendReliableLength;
|
|
2506
|
+
if (isFragment) {
|
|
2507
|
+
lengthField |= 32768;
|
|
2508
|
+
}
|
|
2509
|
+
view.setUint16(offset, lengthField, true);
|
|
2478
2510
|
offset += 2;
|
|
2511
|
+
if (isFragment) {
|
|
2512
|
+
view.setUint32(offset, fragmentStart, true);
|
|
2513
|
+
offset += 4;
|
|
2514
|
+
view.setUint32(offset, this.reliableLength, true);
|
|
2515
|
+
offset += 4;
|
|
2516
|
+
}
|
|
2479
2517
|
const reliableBuffer = this.reliableMessage.getBuffer();
|
|
2480
|
-
const reliableBytes = reliableBuffer.subarray(
|
|
2518
|
+
const reliableBytes = reliableBuffer.subarray(fragmentStart, fragmentStart + sendReliableLength);
|
|
2481
2519
|
result.set(reliableBytes, offset);
|
|
2482
|
-
offset +=
|
|
2520
|
+
offset += sendReliableLength;
|
|
2483
2521
|
}
|
|
2484
2522
|
if (unreliableData && unreliableSize > 0) {
|
|
2485
2523
|
const chunk = unreliableData.slice(0, unreliableSize);
|
|
@@ -2520,6 +2558,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2520
2558
|
this.reliableLength = 0;
|
|
2521
2559
|
this.reliableMessage.reset();
|
|
2522
2560
|
this.outgoingReliableSequence ^= 1;
|
|
2561
|
+
this.fragmentSendOffset = 0;
|
|
2523
2562
|
}
|
|
2524
2563
|
}
|
|
2525
2564
|
const hasReliableData = (sequence & 2147483648) !== 0;
|
|
@@ -2528,13 +2567,45 @@ var _NetChan = class _NetChan2 {
|
|
|
2528
2567
|
let reliableData = null;
|
|
2529
2568
|
if (hasReliableData) {
|
|
2530
2569
|
if (payloadOffset + 2 > packet.byteLength) return null;
|
|
2531
|
-
|
|
2570
|
+
let reliableLen = view.getUint16(payloadOffset, true);
|
|
2532
2571
|
payloadOffset += 2;
|
|
2572
|
+
const isFragment = (reliableLen & 32768) !== 0;
|
|
2573
|
+
reliableLen &= 32767;
|
|
2533
2574
|
const expectedBit = this.incomingReliableSequence & 1;
|
|
2534
2575
|
if (reliableSeqBit === expectedBit) {
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2576
|
+
if (isFragment) {
|
|
2577
|
+
if (payloadOffset + 8 > packet.byteLength) return null;
|
|
2578
|
+
const fragStart = view.getUint32(payloadOffset, true);
|
|
2579
|
+
payloadOffset += 4;
|
|
2580
|
+
const fragTotal = view.getUint32(payloadOffset, true);
|
|
2581
|
+
payloadOffset += 4;
|
|
2582
|
+
if (fragTotal > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2583
|
+
console.warn(`NetChan: received invalid fragment total ${fragTotal} > ${_NetChan2.MAX_RELIABLE_BUFFER}`);
|
|
2584
|
+
return null;
|
|
2585
|
+
}
|
|
2586
|
+
if (!this.fragmentBuffer || this.fragmentBuffer.length !== fragTotal) {
|
|
2587
|
+
this.fragmentBuffer = new Uint8Array(fragTotal);
|
|
2588
|
+
this.fragmentLength = fragTotal;
|
|
2589
|
+
this.fragmentReceived = 0;
|
|
2590
|
+
}
|
|
2591
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
2592
|
+
const data = packet.subarray(payloadOffset, payloadOffset + reliableLen);
|
|
2593
|
+
if (fragStart === this.fragmentReceived && fragStart + reliableLen <= fragTotal) {
|
|
2594
|
+
this.fragmentBuffer.set(data, fragStart);
|
|
2595
|
+
this.fragmentReceived += reliableLen;
|
|
2596
|
+
if (this.fragmentReceived >= fragTotal) {
|
|
2597
|
+
reliableData = this.fragmentBuffer;
|
|
2598
|
+
this.incomingReliableSequence++;
|
|
2599
|
+
this.fragmentBuffer = null;
|
|
2600
|
+
this.fragmentLength = 0;
|
|
2601
|
+
this.fragmentReceived = 0;
|
|
2602
|
+
}
|
|
2603
|
+
}
|
|
2604
|
+
} else {
|
|
2605
|
+
this.incomingReliableSequence++;
|
|
2606
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
2607
|
+
reliableData = packet.slice(payloadOffset, payloadOffset + reliableLen);
|
|
2608
|
+
}
|
|
2538
2609
|
}
|
|
2539
2610
|
payloadOffset += reliableLen;
|
|
2540
2611
|
}
|
|
@@ -2561,7 +2632,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2561
2632
|
* Writes a byte to the reliable message buffer
|
|
2562
2633
|
*/
|
|
2563
2634
|
writeReliableByte(value) {
|
|
2564
|
-
if (this.reliableLength + 1 > _NetChan2.
|
|
2635
|
+
if (this.reliableLength + 1 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2565
2636
|
throw new Error("NetChan reliable buffer overflow");
|
|
2566
2637
|
}
|
|
2567
2638
|
this.reliableMessage.writeByte(value);
|
|
@@ -2571,7 +2642,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2571
2642
|
* Writes a short to the reliable message buffer
|
|
2572
2643
|
*/
|
|
2573
2644
|
writeReliableShort(value) {
|
|
2574
|
-
if (this.reliableLength + 2 > _NetChan2.
|
|
2645
|
+
if (this.reliableLength + 2 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2575
2646
|
throw new Error("NetChan reliable buffer overflow");
|
|
2576
2647
|
}
|
|
2577
2648
|
this.reliableMessage.writeShort(value);
|
|
@@ -2581,7 +2652,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2581
2652
|
* Writes a long to the reliable message buffer
|
|
2582
2653
|
*/
|
|
2583
2654
|
writeReliableLong(value) {
|
|
2584
|
-
if (this.reliableLength + 4 > _NetChan2.
|
|
2655
|
+
if (this.reliableLength + 4 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2585
2656
|
throw new Error("NetChan reliable buffer overflow");
|
|
2586
2657
|
}
|
|
2587
2658
|
this.reliableMessage.writeLong(value);
|
|
@@ -2592,7 +2663,7 @@ var _NetChan = class _NetChan2 {
|
|
|
2592
2663
|
*/
|
|
2593
2664
|
writeReliableString(value) {
|
|
2594
2665
|
const len2 = value.length + 1;
|
|
2595
|
-
if (this.reliableLength + len2 > _NetChan2.
|
|
2666
|
+
if (this.reliableLength + len2 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
2596
2667
|
throw new Error("NetChan reliable buffer overflow");
|
|
2597
2668
|
}
|
|
2598
2669
|
this.reliableMessage.writeString(value);
|
|
@@ -2625,6 +2696,7 @@ _NetChan.MAX_MSGLEN = 1400;
|
|
|
2625
2696
|
_NetChan.FRAGMENT_SIZE = 1024;
|
|
2626
2697
|
_NetChan.PACKET_HEADER = 10;
|
|
2627
2698
|
_NetChan.HEADER_OVERHEAD = _NetChan.PACKET_HEADER + 2;
|
|
2699
|
+
_NetChan.MAX_RELIABLE_BUFFER = 262144;
|
|
2628
2700
|
var AmmoType = /* @__PURE__ */ ((AmmoType22) => {
|
|
2629
2701
|
AmmoType22[AmmoType22["Bullets"] = 0] = "Bullets";
|
|
2630
2702
|
AmmoType22[AmmoType22["Shells"] = 1] = "Shells";
|
|
@@ -9394,10 +9466,14 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9394
9466
|
this.incomingReliableSequence = 0;
|
|
9395
9467
|
this.outgoingReliableSequence = 0;
|
|
9396
9468
|
this.reliableLength = 0;
|
|
9469
|
+
this.fragmentSendOffset = 0;
|
|
9470
|
+
this.fragmentBuffer = null;
|
|
9471
|
+
this.fragmentLength = 0;
|
|
9472
|
+
this.fragmentReceived = 0;
|
|
9397
9473
|
this.lastReceived = 0;
|
|
9398
9474
|
this.lastSent = 0;
|
|
9399
9475
|
this.remoteAddress = null;
|
|
9400
|
-
this.reliableMessage = new BinaryWriter2(_NetChan4.
|
|
9476
|
+
this.reliableMessage = new BinaryWriter2(_NetChan4.MAX_RELIABLE_BUFFER);
|
|
9401
9477
|
const now = Date.now();
|
|
9402
9478
|
this.lastReceived = now;
|
|
9403
9479
|
this.lastSent = now;
|
|
@@ -9423,6 +9499,10 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9423
9499
|
this.outgoingReliableSequence = 0;
|
|
9424
9500
|
this.reliableLength = 0;
|
|
9425
9501
|
this.reliableMessage.reset();
|
|
9502
|
+
this.fragmentSendOffset = 0;
|
|
9503
|
+
this.fragmentBuffer = null;
|
|
9504
|
+
this.fragmentLength = 0;
|
|
9505
|
+
this.fragmentReceived = 0;
|
|
9426
9506
|
this.lastReceived = Date.now();
|
|
9427
9507
|
this.lastSent = Date.now();
|
|
9428
9508
|
}
|
|
@@ -9432,18 +9512,38 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9432
9512
|
transmit(unreliableData) {
|
|
9433
9513
|
this.outgoingSequence++;
|
|
9434
9514
|
this.lastSent = Date.now();
|
|
9515
|
+
let sendReliableLength = 0;
|
|
9516
|
+
let isFragment = false;
|
|
9517
|
+
let fragmentStart = 0;
|
|
9518
|
+
if (this.reliableLength > 0) {
|
|
9519
|
+
if (this.reliableLength > _NetChan4.FRAGMENT_SIZE) {
|
|
9520
|
+
isFragment = true;
|
|
9521
|
+
if (this.fragmentSendOffset >= this.reliableLength) {
|
|
9522
|
+
this.fragmentSendOffset = 0;
|
|
9523
|
+
}
|
|
9524
|
+
const remaining = this.reliableLength - this.fragmentSendOffset;
|
|
9525
|
+
sendReliableLength = remaining;
|
|
9526
|
+
if (sendReliableLength > _NetChan4.FRAGMENT_SIZE) {
|
|
9527
|
+
sendReliableLength = _NetChan4.FRAGMENT_SIZE;
|
|
9528
|
+
}
|
|
9529
|
+
fragmentStart = this.fragmentSendOffset;
|
|
9530
|
+
this.fragmentSendOffset += sendReliableLength;
|
|
9531
|
+
} else {
|
|
9532
|
+
sendReliableLength = this.reliableLength;
|
|
9533
|
+
}
|
|
9534
|
+
}
|
|
9435
9535
|
const headerSize = _NetChan4.PACKET_HEADER;
|
|
9436
|
-
const
|
|
9536
|
+
const reliableHeaderSize = sendReliableLength > 0 ? 2 + (isFragment ? 8 : 0) : 0;
|
|
9437
9537
|
let unreliableSize = unreliableData ? unreliableData.length : 0;
|
|
9438
|
-
if (headerSize +
|
|
9439
|
-
unreliableSize = _NetChan4.MAX_MSGLEN - headerSize -
|
|
9538
|
+
if (headerSize + reliableHeaderSize + sendReliableLength + unreliableSize > _NetChan4.MAX_MSGLEN) {
|
|
9539
|
+
unreliableSize = _NetChan4.MAX_MSGLEN - headerSize - reliableHeaderSize - sendReliableLength;
|
|
9440
9540
|
if (unreliableSize < 0) unreliableSize = 0;
|
|
9441
9541
|
}
|
|
9442
|
-
const buffer = new ArrayBuffer(headerSize +
|
|
9542
|
+
const buffer = new ArrayBuffer(headerSize + reliableHeaderSize + sendReliableLength + unreliableSize);
|
|
9443
9543
|
const view = new DataView(buffer);
|
|
9444
9544
|
const result = new Uint8Array(buffer);
|
|
9445
9545
|
let sequence = this.outgoingSequence;
|
|
9446
|
-
if (
|
|
9546
|
+
if (sendReliableLength > 0) {
|
|
9447
9547
|
sequence |= 2147483648;
|
|
9448
9548
|
if ((this.outgoingReliableSequence & 1) !== 0) {
|
|
9449
9549
|
sequence |= 1073741824;
|
|
@@ -9457,13 +9557,23 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9457
9557
|
view.setUint32(4, ack, true);
|
|
9458
9558
|
view.setUint16(8, this.qport, true);
|
|
9459
9559
|
let offset = headerSize;
|
|
9460
|
-
if (
|
|
9461
|
-
|
|
9560
|
+
if (sendReliableLength > 0) {
|
|
9561
|
+
let lengthField = sendReliableLength;
|
|
9562
|
+
if (isFragment) {
|
|
9563
|
+
lengthField |= 32768;
|
|
9564
|
+
}
|
|
9565
|
+
view.setUint16(offset, lengthField, true);
|
|
9462
9566
|
offset += 2;
|
|
9567
|
+
if (isFragment) {
|
|
9568
|
+
view.setUint32(offset, fragmentStart, true);
|
|
9569
|
+
offset += 4;
|
|
9570
|
+
view.setUint32(offset, this.reliableLength, true);
|
|
9571
|
+
offset += 4;
|
|
9572
|
+
}
|
|
9463
9573
|
const reliableBuffer = this.reliableMessage.getBuffer();
|
|
9464
|
-
const reliableBytes = reliableBuffer.subarray(
|
|
9574
|
+
const reliableBytes = reliableBuffer.subarray(fragmentStart, fragmentStart + sendReliableLength);
|
|
9465
9575
|
result.set(reliableBytes, offset);
|
|
9466
|
-
offset +=
|
|
9576
|
+
offset += sendReliableLength;
|
|
9467
9577
|
}
|
|
9468
9578
|
if (unreliableData && unreliableSize > 0) {
|
|
9469
9579
|
const chunk = unreliableData.slice(0, unreliableSize);
|
|
@@ -9504,6 +9614,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9504
9614
|
this.reliableLength = 0;
|
|
9505
9615
|
this.reliableMessage.reset();
|
|
9506
9616
|
this.outgoingReliableSequence ^= 1;
|
|
9617
|
+
this.fragmentSendOffset = 0;
|
|
9507
9618
|
}
|
|
9508
9619
|
}
|
|
9509
9620
|
const hasReliableData = (sequence & 2147483648) !== 0;
|
|
@@ -9512,13 +9623,45 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9512
9623
|
let reliableData = null;
|
|
9513
9624
|
if (hasReliableData) {
|
|
9514
9625
|
if (payloadOffset + 2 > packet.byteLength) return null;
|
|
9515
|
-
|
|
9626
|
+
let reliableLen = view.getUint16(payloadOffset, true);
|
|
9516
9627
|
payloadOffset += 2;
|
|
9628
|
+
const isFragment = (reliableLen & 32768) !== 0;
|
|
9629
|
+
reliableLen &= 32767;
|
|
9517
9630
|
const expectedBit = this.incomingReliableSequence & 1;
|
|
9518
9631
|
if (reliableSeqBit === expectedBit) {
|
|
9519
|
-
|
|
9520
|
-
|
|
9521
|
-
|
|
9632
|
+
if (isFragment) {
|
|
9633
|
+
if (payloadOffset + 8 > packet.byteLength) return null;
|
|
9634
|
+
const fragStart = view.getUint32(payloadOffset, true);
|
|
9635
|
+
payloadOffset += 4;
|
|
9636
|
+
const fragTotal = view.getUint32(payloadOffset, true);
|
|
9637
|
+
payloadOffset += 4;
|
|
9638
|
+
if (fragTotal > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9639
|
+
console.warn(`NetChan: received invalid fragment total ${fragTotal} > ${_NetChan4.MAX_RELIABLE_BUFFER}`);
|
|
9640
|
+
return null;
|
|
9641
|
+
}
|
|
9642
|
+
if (!this.fragmentBuffer || this.fragmentBuffer.length !== fragTotal) {
|
|
9643
|
+
this.fragmentBuffer = new Uint8Array(fragTotal);
|
|
9644
|
+
this.fragmentLength = fragTotal;
|
|
9645
|
+
this.fragmentReceived = 0;
|
|
9646
|
+
}
|
|
9647
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
9648
|
+
const data = packet.subarray(payloadOffset, payloadOffset + reliableLen);
|
|
9649
|
+
if (fragStart === this.fragmentReceived && fragStart + reliableLen <= fragTotal) {
|
|
9650
|
+
this.fragmentBuffer.set(data, fragStart);
|
|
9651
|
+
this.fragmentReceived += reliableLen;
|
|
9652
|
+
if (this.fragmentReceived >= fragTotal) {
|
|
9653
|
+
reliableData = this.fragmentBuffer;
|
|
9654
|
+
this.incomingReliableSequence++;
|
|
9655
|
+
this.fragmentBuffer = null;
|
|
9656
|
+
this.fragmentLength = 0;
|
|
9657
|
+
this.fragmentReceived = 0;
|
|
9658
|
+
}
|
|
9659
|
+
}
|
|
9660
|
+
} else {
|
|
9661
|
+
this.incomingReliableSequence++;
|
|
9662
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
9663
|
+
reliableData = packet.slice(payloadOffset, payloadOffset + reliableLen);
|
|
9664
|
+
}
|
|
9522
9665
|
}
|
|
9523
9666
|
payloadOffset += reliableLen;
|
|
9524
9667
|
}
|
|
@@ -9545,7 +9688,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9545
9688
|
* Writes a byte to the reliable message buffer
|
|
9546
9689
|
*/
|
|
9547
9690
|
writeReliableByte(value) {
|
|
9548
|
-
if (this.reliableLength + 1 > _NetChan4.
|
|
9691
|
+
if (this.reliableLength + 1 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9549
9692
|
throw new Error("NetChan reliable buffer overflow");
|
|
9550
9693
|
}
|
|
9551
9694
|
this.reliableMessage.writeByte(value);
|
|
@@ -9555,7 +9698,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9555
9698
|
* Writes a short to the reliable message buffer
|
|
9556
9699
|
*/
|
|
9557
9700
|
writeReliableShort(value) {
|
|
9558
|
-
if (this.reliableLength + 2 > _NetChan4.
|
|
9701
|
+
if (this.reliableLength + 2 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9559
9702
|
throw new Error("NetChan reliable buffer overflow");
|
|
9560
9703
|
}
|
|
9561
9704
|
this.reliableMessage.writeShort(value);
|
|
@@ -9565,7 +9708,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9565
9708
|
* Writes a long to the reliable message buffer
|
|
9566
9709
|
*/
|
|
9567
9710
|
writeReliableLong(value) {
|
|
9568
|
-
if (this.reliableLength + 4 > _NetChan4.
|
|
9711
|
+
if (this.reliableLength + 4 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9569
9712
|
throw new Error("NetChan reliable buffer overflow");
|
|
9570
9713
|
}
|
|
9571
9714
|
this.reliableMessage.writeLong(value);
|
|
@@ -9576,7 +9719,7 @@ var _NetChan3 = class _NetChan4 {
|
|
|
9576
9719
|
*/
|
|
9577
9720
|
writeReliableString(value) {
|
|
9578
9721
|
const len2 = value.length + 1;
|
|
9579
|
-
if (this.reliableLength + len2 > _NetChan4.
|
|
9722
|
+
if (this.reliableLength + len2 > _NetChan4.MAX_RELIABLE_BUFFER) {
|
|
9580
9723
|
throw new Error("NetChan reliable buffer overflow");
|
|
9581
9724
|
}
|
|
9582
9725
|
this.reliableMessage.writeString(value);
|
|
@@ -9609,6 +9752,7 @@ _NetChan3.MAX_MSGLEN = 1400;
|
|
|
9609
9752
|
_NetChan3.FRAGMENT_SIZE = 1024;
|
|
9610
9753
|
_NetChan3.PACKET_HEADER = 10;
|
|
9611
9754
|
_NetChan3.HEADER_OVERHEAD = _NetChan3.PACKET_HEADER + 2;
|
|
9755
|
+
_NetChan3.MAX_RELIABLE_BUFFER = 262144;
|
|
9612
9756
|
var NetChan = _NetChan3;
|
|
9613
9757
|
var AmmoType2 = /* @__PURE__ */ ((AmmoType22) => {
|
|
9614
9758
|
AmmoType22[AmmoType22["Bullets"] = 0] = "Bullets";
|