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
|
@@ -1443,10 +1443,14 @@ var init_esm = __esm({
|
|
|
1443
1443
|
this.incomingReliableSequence = 0;
|
|
1444
1444
|
this.outgoingReliableSequence = 0;
|
|
1445
1445
|
this.reliableLength = 0;
|
|
1446
|
+
this.fragmentSendOffset = 0;
|
|
1447
|
+
this.fragmentBuffer = null;
|
|
1448
|
+
this.fragmentLength = 0;
|
|
1449
|
+
this.fragmentReceived = 0;
|
|
1446
1450
|
this.lastReceived = 0;
|
|
1447
1451
|
this.lastSent = 0;
|
|
1448
1452
|
this.remoteAddress = null;
|
|
1449
|
-
this.reliableMessage = new BinaryWriter(_NetChan2.
|
|
1453
|
+
this.reliableMessage = new BinaryWriter(_NetChan2.MAX_RELIABLE_BUFFER);
|
|
1450
1454
|
const now = Date.now();
|
|
1451
1455
|
this.lastReceived = now;
|
|
1452
1456
|
this.lastSent = now;
|
|
@@ -1472,6 +1476,10 @@ var init_esm = __esm({
|
|
|
1472
1476
|
this.outgoingReliableSequence = 0;
|
|
1473
1477
|
this.reliableLength = 0;
|
|
1474
1478
|
this.reliableMessage.reset();
|
|
1479
|
+
this.fragmentSendOffset = 0;
|
|
1480
|
+
this.fragmentBuffer = null;
|
|
1481
|
+
this.fragmentLength = 0;
|
|
1482
|
+
this.fragmentReceived = 0;
|
|
1475
1483
|
this.lastReceived = Date.now();
|
|
1476
1484
|
this.lastSent = Date.now();
|
|
1477
1485
|
}
|
|
@@ -1481,18 +1489,38 @@ var init_esm = __esm({
|
|
|
1481
1489
|
transmit(unreliableData) {
|
|
1482
1490
|
this.outgoingSequence++;
|
|
1483
1491
|
this.lastSent = Date.now();
|
|
1492
|
+
let sendReliableLength = 0;
|
|
1493
|
+
let isFragment = false;
|
|
1494
|
+
let fragmentStart = 0;
|
|
1495
|
+
if (this.reliableLength > 0) {
|
|
1496
|
+
if (this.reliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
1497
|
+
isFragment = true;
|
|
1498
|
+
if (this.fragmentSendOffset >= this.reliableLength) {
|
|
1499
|
+
this.fragmentSendOffset = 0;
|
|
1500
|
+
}
|
|
1501
|
+
const remaining = this.reliableLength - this.fragmentSendOffset;
|
|
1502
|
+
sendReliableLength = remaining;
|
|
1503
|
+
if (sendReliableLength > _NetChan2.FRAGMENT_SIZE) {
|
|
1504
|
+
sendReliableLength = _NetChan2.FRAGMENT_SIZE;
|
|
1505
|
+
}
|
|
1506
|
+
fragmentStart = this.fragmentSendOffset;
|
|
1507
|
+
this.fragmentSendOffset += sendReliableLength;
|
|
1508
|
+
} else {
|
|
1509
|
+
sendReliableLength = this.reliableLength;
|
|
1510
|
+
}
|
|
1511
|
+
}
|
|
1484
1512
|
const headerSize = _NetChan2.PACKET_HEADER;
|
|
1485
|
-
const
|
|
1513
|
+
const reliableHeaderSize = sendReliableLength > 0 ? 2 + (isFragment ? 8 : 0) : 0;
|
|
1486
1514
|
let unreliableSize = unreliableData ? unreliableData.length : 0;
|
|
1487
|
-
if (headerSize +
|
|
1488
|
-
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize -
|
|
1515
|
+
if (headerSize + reliableHeaderSize + sendReliableLength + unreliableSize > _NetChan2.MAX_MSGLEN) {
|
|
1516
|
+
unreliableSize = _NetChan2.MAX_MSGLEN - headerSize - reliableHeaderSize - sendReliableLength;
|
|
1489
1517
|
if (unreliableSize < 0) unreliableSize = 0;
|
|
1490
1518
|
}
|
|
1491
|
-
const buffer = new ArrayBuffer(headerSize +
|
|
1519
|
+
const buffer = new ArrayBuffer(headerSize + reliableHeaderSize + sendReliableLength + unreliableSize);
|
|
1492
1520
|
const view = new DataView(buffer);
|
|
1493
1521
|
const result = new Uint8Array(buffer);
|
|
1494
1522
|
let sequence = this.outgoingSequence;
|
|
1495
|
-
if (
|
|
1523
|
+
if (sendReliableLength > 0) {
|
|
1496
1524
|
sequence |= 2147483648;
|
|
1497
1525
|
if ((this.outgoingReliableSequence & 1) !== 0) {
|
|
1498
1526
|
sequence |= 1073741824;
|
|
@@ -1506,13 +1534,23 @@ var init_esm = __esm({
|
|
|
1506
1534
|
view.setUint32(4, ack, true);
|
|
1507
1535
|
view.setUint16(8, this.qport, true);
|
|
1508
1536
|
let offset = headerSize;
|
|
1509
|
-
if (
|
|
1510
|
-
|
|
1537
|
+
if (sendReliableLength > 0) {
|
|
1538
|
+
let lengthField = sendReliableLength;
|
|
1539
|
+
if (isFragment) {
|
|
1540
|
+
lengthField |= 32768;
|
|
1541
|
+
}
|
|
1542
|
+
view.setUint16(offset, lengthField, true);
|
|
1511
1543
|
offset += 2;
|
|
1544
|
+
if (isFragment) {
|
|
1545
|
+
view.setUint32(offset, fragmentStart, true);
|
|
1546
|
+
offset += 4;
|
|
1547
|
+
view.setUint32(offset, this.reliableLength, true);
|
|
1548
|
+
offset += 4;
|
|
1549
|
+
}
|
|
1512
1550
|
const reliableBuffer = this.reliableMessage.getBuffer();
|
|
1513
|
-
const reliableBytes = reliableBuffer.subarray(
|
|
1551
|
+
const reliableBytes = reliableBuffer.subarray(fragmentStart, fragmentStart + sendReliableLength);
|
|
1514
1552
|
result.set(reliableBytes, offset);
|
|
1515
|
-
offset +=
|
|
1553
|
+
offset += sendReliableLength;
|
|
1516
1554
|
}
|
|
1517
1555
|
if (unreliableData && unreliableSize > 0) {
|
|
1518
1556
|
const chunk = unreliableData.slice(0, unreliableSize);
|
|
@@ -1553,6 +1591,7 @@ var init_esm = __esm({
|
|
|
1553
1591
|
this.reliableLength = 0;
|
|
1554
1592
|
this.reliableMessage.reset();
|
|
1555
1593
|
this.outgoingReliableSequence ^= 1;
|
|
1594
|
+
this.fragmentSendOffset = 0;
|
|
1556
1595
|
}
|
|
1557
1596
|
}
|
|
1558
1597
|
const hasReliableData = (sequence & 2147483648) !== 0;
|
|
@@ -1561,13 +1600,45 @@ var init_esm = __esm({
|
|
|
1561
1600
|
let reliableData = null;
|
|
1562
1601
|
if (hasReliableData) {
|
|
1563
1602
|
if (payloadOffset + 2 > packet.byteLength) return null;
|
|
1564
|
-
|
|
1603
|
+
let reliableLen = view.getUint16(payloadOffset, true);
|
|
1565
1604
|
payloadOffset += 2;
|
|
1605
|
+
const isFragment = (reliableLen & 32768) !== 0;
|
|
1606
|
+
reliableLen &= 32767;
|
|
1566
1607
|
const expectedBit = this.incomingReliableSequence & 1;
|
|
1567
1608
|
if (reliableSeqBit === expectedBit) {
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1609
|
+
if (isFragment) {
|
|
1610
|
+
if (payloadOffset + 8 > packet.byteLength) return null;
|
|
1611
|
+
const fragStart = view.getUint32(payloadOffset, true);
|
|
1612
|
+
payloadOffset += 4;
|
|
1613
|
+
const fragTotal = view.getUint32(payloadOffset, true);
|
|
1614
|
+
payloadOffset += 4;
|
|
1615
|
+
if (fragTotal > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
1616
|
+
console.warn(`NetChan: received invalid fragment total ${fragTotal} > ${_NetChan2.MAX_RELIABLE_BUFFER}`);
|
|
1617
|
+
return null;
|
|
1618
|
+
}
|
|
1619
|
+
if (!this.fragmentBuffer || this.fragmentBuffer.length !== fragTotal) {
|
|
1620
|
+
this.fragmentBuffer = new Uint8Array(fragTotal);
|
|
1621
|
+
this.fragmentLength = fragTotal;
|
|
1622
|
+
this.fragmentReceived = 0;
|
|
1623
|
+
}
|
|
1624
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
1625
|
+
const data = packet.subarray(payloadOffset, payloadOffset + reliableLen);
|
|
1626
|
+
if (fragStart === this.fragmentReceived && fragStart + reliableLen <= fragTotal) {
|
|
1627
|
+
this.fragmentBuffer.set(data, fragStart);
|
|
1628
|
+
this.fragmentReceived += reliableLen;
|
|
1629
|
+
if (this.fragmentReceived >= fragTotal) {
|
|
1630
|
+
reliableData = this.fragmentBuffer;
|
|
1631
|
+
this.incomingReliableSequence++;
|
|
1632
|
+
this.fragmentBuffer = null;
|
|
1633
|
+
this.fragmentLength = 0;
|
|
1634
|
+
this.fragmentReceived = 0;
|
|
1635
|
+
}
|
|
1636
|
+
}
|
|
1637
|
+
} else {
|
|
1638
|
+
this.incomingReliableSequence++;
|
|
1639
|
+
if (payloadOffset + reliableLen > packet.byteLength) return null;
|
|
1640
|
+
reliableData = packet.slice(payloadOffset, payloadOffset + reliableLen);
|
|
1641
|
+
}
|
|
1571
1642
|
}
|
|
1572
1643
|
payloadOffset += reliableLen;
|
|
1573
1644
|
}
|
|
@@ -1594,7 +1665,7 @@ var init_esm = __esm({
|
|
|
1594
1665
|
* Writes a byte to the reliable message buffer
|
|
1595
1666
|
*/
|
|
1596
1667
|
writeReliableByte(value) {
|
|
1597
|
-
if (this.reliableLength + 1 > _NetChan2.
|
|
1668
|
+
if (this.reliableLength + 1 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
1598
1669
|
throw new Error("NetChan reliable buffer overflow");
|
|
1599
1670
|
}
|
|
1600
1671
|
this.reliableMessage.writeByte(value);
|
|
@@ -1604,7 +1675,7 @@ var init_esm = __esm({
|
|
|
1604
1675
|
* Writes a short to the reliable message buffer
|
|
1605
1676
|
*/
|
|
1606
1677
|
writeReliableShort(value) {
|
|
1607
|
-
if (this.reliableLength + 2 > _NetChan2.
|
|
1678
|
+
if (this.reliableLength + 2 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
1608
1679
|
throw new Error("NetChan reliable buffer overflow");
|
|
1609
1680
|
}
|
|
1610
1681
|
this.reliableMessage.writeShort(value);
|
|
@@ -1614,7 +1685,7 @@ var init_esm = __esm({
|
|
|
1614
1685
|
* Writes a long to the reliable message buffer
|
|
1615
1686
|
*/
|
|
1616
1687
|
writeReliableLong(value) {
|
|
1617
|
-
if (this.reliableLength + 4 > _NetChan2.
|
|
1688
|
+
if (this.reliableLength + 4 > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
1618
1689
|
throw new Error("NetChan reliable buffer overflow");
|
|
1619
1690
|
}
|
|
1620
1691
|
this.reliableMessage.writeLong(value);
|
|
@@ -1625,7 +1696,7 @@ var init_esm = __esm({
|
|
|
1625
1696
|
*/
|
|
1626
1697
|
writeReliableString(value) {
|
|
1627
1698
|
const len = value.length + 1;
|
|
1628
|
-
if (this.reliableLength + len > _NetChan2.
|
|
1699
|
+
if (this.reliableLength + len > _NetChan2.MAX_RELIABLE_BUFFER) {
|
|
1629
1700
|
throw new Error("NetChan reliable buffer overflow");
|
|
1630
1701
|
}
|
|
1631
1702
|
this.reliableMessage.writeString(value);
|
|
@@ -1658,6 +1729,7 @@ var init_esm = __esm({
|
|
|
1658
1729
|
_NetChan.FRAGMENT_SIZE = 1024;
|
|
1659
1730
|
_NetChan.PACKET_HEADER = 10;
|
|
1660
1731
|
_NetChan.HEADER_OVERHEAD = _NetChan.PACKET_HEADER + 2;
|
|
1732
|
+
_NetChan.MAX_RELIABLE_BUFFER = 262144;
|
|
1661
1733
|
WeaponId = /* @__PURE__ */ ((WeaponId22) => {
|
|
1662
1734
|
WeaponId22["Blaster"] = "blaster";
|
|
1663
1735
|
WeaponId22["Shotgun"] = "shotgun";
|