quake2ts 0.0.257 → 0.0.261
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/cgame/dist/index.cjs +23 -0
- package/packages/cgame/dist/index.cjs.map +1 -1
- package/packages/cgame/dist/index.js +24 -1
- package/packages/cgame/dist/index.js.map +1 -1
- package/packages/client/dist/browser/index.global.js +13 -13
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +139 -4
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +139 -4
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/client/dist/types/net/connection.d.ts +2 -0
- package/packages/client/dist/types/net/connection.d.ts.map +1 -1
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- 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 +2 -2
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +3910 -2757
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +3910 -2757
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/combat/weapons/animation.d.ts +20 -0
- package/packages/game/dist/types/combat/weapons/animation.d.ts.map +1 -0
- package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
- package/packages/game/dist/types/combat/weapons/frames.d.ts +8 -0
- package/packages/game/dist/types/combat/weapons/frames.d.ts.map +1 -0
- package/packages/game/dist/types/combat/weapons/projectSource.d.ts +16 -27
- package/packages/game/dist/types/combat/weapons/projectSource.d.ts.map +1 -1
- package/packages/game/dist/types/combat/weapons/switching.d.ts +11 -0
- package/packages/game/dist/types/combat/weapons/switching.d.ts.map +1 -1
- package/packages/game/dist/types/entities/entity.d.ts +1 -0
- package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
- package/packages/game/dist/types/entities/funcs.d.ts +2 -1
- package/packages/game/dist/types/entities/funcs.d.ts.map +1 -1
- package/packages/game/dist/types/entities/misc.d.ts.map +1 -1
- package/packages/game/dist/types/entities/monsters/index.d.ts.map +1 -1
- package/packages/game/dist/types/entities/monsters/insane.d.ts +5 -0
- package/packages/game/dist/types/entities/monsters/insane.d.ts.map +1 -0
- package/packages/game/dist/types/entities/projectiles.d.ts +1 -1
- package/packages/game/dist/types/entities/projectiles.d.ts.map +1 -1
- package/packages/game/dist/types/entities/targets.d.ts.map +1 -1
- package/packages/server/dist/index.cjs +15 -0
- package/packages/server/dist/index.d.cts +1 -0
- package/packages/server/dist/index.d.ts +1 -0
- package/packages/server/dist/index.js +15 -0
- 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 +21 -2
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +18 -1
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/protocol/constants.d.ts +1 -0
- package/packages/shared/dist/types/protocol/constants.d.ts.map +1 -1
- package/packages/shared/dist/types/protocol/index.d.ts +1 -0
- package/packages/shared/dist/types/protocol/index.d.ts.map +1 -1
- package/packages/shared/dist/types/protocol/writeUserCmd.d.ts +4 -0
- package/packages/shared/dist/types/protocol/writeUserCmd.d.ts.map +1 -0
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -8418,6 +8418,7 @@ var ClientCommand = /* @__PURE__ */ ((ClientCommand2) => {
|
|
|
8418
8418
|
ClientCommand2[ClientCommand2["stringcmd"] = 4] = "stringcmd";
|
|
8419
8419
|
return ClientCommand2;
|
|
8420
8420
|
})(ClientCommand || {});
|
|
8421
|
+
var CMD_BACKUP = 64;
|
|
8421
8422
|
var MZ_BLASTER = 0;
|
|
8422
8423
|
var MZ_MACHINEGUN = 1;
|
|
8423
8424
|
var MZ_SHOTGUN = 2;
|
|
@@ -8647,6 +8648,18 @@ function G_GetPowerupStat(stats, powerupId) {
|
|
|
8647
8648
|
if (index === void 0 || index < 0 || index >= POWERUP_MAX2) return 0;
|
|
8648
8649
|
return getCompressedInteger(stats, 41, index, NUM_BITS_FOR_POWERUP2);
|
|
8649
8650
|
}
|
|
8651
|
+
function writeUserCommand(writer, cmd) {
|
|
8652
|
+
writer.writeByte(cmd.msec);
|
|
8653
|
+
writer.writeByte(cmd.buttons);
|
|
8654
|
+
writer.writeAngle16(cmd.angles.x);
|
|
8655
|
+
writer.writeAngle16(cmd.angles.y);
|
|
8656
|
+
writer.writeAngle16(cmd.angles.z);
|
|
8657
|
+
writer.writeShort(cmd.forwardmove);
|
|
8658
|
+
writer.writeShort(cmd.sidemove);
|
|
8659
|
+
writer.writeShort(cmd.upmove);
|
|
8660
|
+
writer.writeByte(0);
|
|
8661
|
+
writer.writeByte(0);
|
|
8662
|
+
}
|
|
8650
8663
|
var entityFlags_exports2 = {};
|
|
8651
8664
|
__export3(entityFlags_exports2, {
|
|
8652
8665
|
U_ANGLE1: () => U_ANGLE13,
|
|
@@ -8805,6 +8818,108 @@ var BinaryStream2 = class {
|
|
|
8805
8818
|
out.z = norm[2];
|
|
8806
8819
|
}
|
|
8807
8820
|
};
|
|
8821
|
+
var BinaryWriter = class {
|
|
8822
|
+
constructor(sizeOrBuffer = 1400) {
|
|
8823
|
+
if (typeof sizeOrBuffer === "number") {
|
|
8824
|
+
this.buffer = new Uint8Array(sizeOrBuffer);
|
|
8825
|
+
this.fixed = false;
|
|
8826
|
+
} else {
|
|
8827
|
+
this.buffer = sizeOrBuffer;
|
|
8828
|
+
this.fixed = true;
|
|
8829
|
+
}
|
|
8830
|
+
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
8831
|
+
this.offset = 0;
|
|
8832
|
+
}
|
|
8833
|
+
ensureSpace(bytes) {
|
|
8834
|
+
if (this.offset + bytes > this.buffer.byteLength) {
|
|
8835
|
+
if (this.fixed) {
|
|
8836
|
+
throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset + bytes}`);
|
|
8837
|
+
}
|
|
8838
|
+
const newSize = Math.max(this.buffer.byteLength * 2, this.offset + bytes);
|
|
8839
|
+
const newBuffer = new Uint8Array(newSize);
|
|
8840
|
+
newBuffer.set(this.buffer);
|
|
8841
|
+
this.buffer = newBuffer;
|
|
8842
|
+
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
8843
|
+
}
|
|
8844
|
+
}
|
|
8845
|
+
writeByte(value) {
|
|
8846
|
+
this.ensureSpace(1);
|
|
8847
|
+
this.view.setUint8(this.offset, value);
|
|
8848
|
+
this.offset += 1;
|
|
8849
|
+
}
|
|
8850
|
+
writeChar(value) {
|
|
8851
|
+
this.ensureSpace(1);
|
|
8852
|
+
this.view.setInt8(this.offset, value);
|
|
8853
|
+
this.offset += 1;
|
|
8854
|
+
}
|
|
8855
|
+
writeShort(value) {
|
|
8856
|
+
this.ensureSpace(2);
|
|
8857
|
+
this.view.setInt16(this.offset, value, true);
|
|
8858
|
+
this.offset += 2;
|
|
8859
|
+
}
|
|
8860
|
+
writeLong(value) {
|
|
8861
|
+
this.ensureSpace(4);
|
|
8862
|
+
this.view.setInt32(this.offset, value, true);
|
|
8863
|
+
this.offset += 4;
|
|
8864
|
+
}
|
|
8865
|
+
writeFloat(value) {
|
|
8866
|
+
this.ensureSpace(4);
|
|
8867
|
+
this.view.setFloat32(this.offset, value, true);
|
|
8868
|
+
this.offset += 4;
|
|
8869
|
+
}
|
|
8870
|
+
writeString(value) {
|
|
8871
|
+
const len2 = value.length;
|
|
8872
|
+
this.ensureSpace(len2 + 1);
|
|
8873
|
+
for (let i = 0; i < len2; i++) {
|
|
8874
|
+
this.view.setUint8(this.offset + i, value.charCodeAt(i));
|
|
8875
|
+
}
|
|
8876
|
+
this.view.setUint8(this.offset + len2, 0);
|
|
8877
|
+
this.offset += len2 + 1;
|
|
8878
|
+
}
|
|
8879
|
+
writeCoord(value) {
|
|
8880
|
+
this.writeShort(Math.trunc(value * 8));
|
|
8881
|
+
}
|
|
8882
|
+
writeAngle(value) {
|
|
8883
|
+
this.writeByte(Math.trunc(value * 256 / 360) & 255);
|
|
8884
|
+
}
|
|
8885
|
+
writeAngle16(value) {
|
|
8886
|
+
this.writeShort(Math.trunc(value * 65536 / 360) & 65535);
|
|
8887
|
+
}
|
|
8888
|
+
writePos(pos) {
|
|
8889
|
+
this.writeCoord(pos.x);
|
|
8890
|
+
this.writeCoord(pos.y);
|
|
8891
|
+
this.writeCoord(pos.z);
|
|
8892
|
+
}
|
|
8893
|
+
writeDir(dir) {
|
|
8894
|
+
let maxDot = -1;
|
|
8895
|
+
let bestIndex = 0;
|
|
8896
|
+
if (dir.x === 0 && dir.y === 0 && dir.z === 0) {
|
|
8897
|
+
this.writeByte(0);
|
|
8898
|
+
return;
|
|
8899
|
+
}
|
|
8900
|
+
for (let i = 0; i < ANORMS2.length; i++) {
|
|
8901
|
+
const norm = ANORMS2[i];
|
|
8902
|
+
const dot2 = dir.x * norm[0] + dir.y * norm[1] + dir.z * norm[2];
|
|
8903
|
+
if (dot2 > maxDot) {
|
|
8904
|
+
maxDot = dot2;
|
|
8905
|
+
bestIndex = i;
|
|
8906
|
+
}
|
|
8907
|
+
}
|
|
8908
|
+
this.writeByte(bestIndex);
|
|
8909
|
+
}
|
|
8910
|
+
getData() {
|
|
8911
|
+
return this.buffer.slice(0, this.offset);
|
|
8912
|
+
}
|
|
8913
|
+
getBuffer() {
|
|
8914
|
+
return this.buffer;
|
|
8915
|
+
}
|
|
8916
|
+
getOffset() {
|
|
8917
|
+
return this.offset;
|
|
8918
|
+
}
|
|
8919
|
+
reset() {
|
|
8920
|
+
this.offset = 0;
|
|
8921
|
+
}
|
|
8922
|
+
};
|
|
8808
8923
|
var NetworkMessageBuilder = class {
|
|
8809
8924
|
constructor(initialSize = 1024) {
|
|
8810
8925
|
this.buffer = new Uint8Array(initialSize);
|
|
@@ -10880,6 +10995,8 @@ var MultiplayerConnection = class {
|
|
|
10880
10995
|
this.challenge = 0;
|
|
10881
10996
|
this.connectPacketCount = 0;
|
|
10882
10997
|
this.connectPacketTime = 0;
|
|
10998
|
+
this.latestServerFrame = 0;
|
|
10999
|
+
this.commandHistory = [];
|
|
10883
11000
|
this.driver = new BrowserWebSocketNetDriver();
|
|
10884
11001
|
this.options = options;
|
|
10885
11002
|
this.driver.onMessage((data) => this.handleMessage(data));
|
|
@@ -10909,12 +11026,27 @@ var MultiplayerConnection = class {
|
|
|
10909
11026
|
this.state = 0 /* Disconnected */;
|
|
10910
11027
|
this.configStrings.clear();
|
|
10911
11028
|
this.baselines.clear();
|
|
11029
|
+
this.commandHistory = [];
|
|
11030
|
+
this.latestServerFrame = 0;
|
|
10912
11031
|
}
|
|
10913
11032
|
sendCommand(cmd) {
|
|
10914
11033
|
if (this.state !== 5 /* Active */) return;
|
|
10915
|
-
const
|
|
10916
|
-
|
|
10917
|
-
|
|
11034
|
+
const commandWithFrame = {
|
|
11035
|
+
...cmd,
|
|
11036
|
+
serverFrame: cmd.serverFrame ?? this.latestServerFrame
|
|
11037
|
+
};
|
|
11038
|
+
this.commandHistory.push(commandWithFrame);
|
|
11039
|
+
if (this.commandHistory.length > CMD_BACKUP) {
|
|
11040
|
+
this.commandHistory.shift();
|
|
11041
|
+
}
|
|
11042
|
+
const writer = new BinaryWriter();
|
|
11043
|
+
writer.writeLong(0);
|
|
11044
|
+
writer.writeLong(0);
|
|
11045
|
+
writer.writeByte(ClientCommand.move);
|
|
11046
|
+
writer.writeByte(0);
|
|
11047
|
+
writer.writeLong(this.latestServerFrame);
|
|
11048
|
+
writeUserCommand(writer, commandWithFrame);
|
|
11049
|
+
this.driver.send(writer.getData());
|
|
10918
11050
|
}
|
|
10919
11051
|
handleMessage(data) {
|
|
10920
11052
|
let buffer = data.buffer;
|
|
@@ -10993,9 +11125,12 @@ var MultiplayerConnection = class {
|
|
|
10993
11125
|
this.driver.send(builder.getData());
|
|
10994
11126
|
this.state = 5 /* Active */;
|
|
10995
11127
|
}
|
|
10996
|
-
// Stubs for other handlers
|
|
10997
11128
|
onFrame(frame) {
|
|
11129
|
+
if (frame.serverFrame > this.latestServerFrame) {
|
|
11130
|
+
this.latestServerFrame = frame.serverFrame;
|
|
11131
|
+
}
|
|
10998
11132
|
}
|
|
11133
|
+
// Stubs for other handlers
|
|
10999
11134
|
onCenterPrint(msg) {
|
|
11000
11135
|
}
|
|
11001
11136
|
onPrint(level, msg) {
|