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
|
@@ -8449,6 +8449,7 @@ var ClientCommand = /* @__PURE__ */ ((ClientCommand2) => {
|
|
|
8449
8449
|
ClientCommand2[ClientCommand2["stringcmd"] = 4] = "stringcmd";
|
|
8450
8450
|
return ClientCommand2;
|
|
8451
8451
|
})(ClientCommand || {});
|
|
8452
|
+
var CMD_BACKUP = 64;
|
|
8452
8453
|
var MZ_BLASTER = 0;
|
|
8453
8454
|
var MZ_MACHINEGUN = 1;
|
|
8454
8455
|
var MZ_SHOTGUN = 2;
|
|
@@ -8678,6 +8679,18 @@ function G_GetPowerupStat(stats, powerupId) {
|
|
|
8678
8679
|
if (index === void 0 || index < 0 || index >= POWERUP_MAX2) return 0;
|
|
8679
8680
|
return getCompressedInteger(stats, 41, index, NUM_BITS_FOR_POWERUP2);
|
|
8680
8681
|
}
|
|
8682
|
+
function writeUserCommand(writer, cmd) {
|
|
8683
|
+
writer.writeByte(cmd.msec);
|
|
8684
|
+
writer.writeByte(cmd.buttons);
|
|
8685
|
+
writer.writeAngle16(cmd.angles.x);
|
|
8686
|
+
writer.writeAngle16(cmd.angles.y);
|
|
8687
|
+
writer.writeAngle16(cmd.angles.z);
|
|
8688
|
+
writer.writeShort(cmd.forwardmove);
|
|
8689
|
+
writer.writeShort(cmd.sidemove);
|
|
8690
|
+
writer.writeShort(cmd.upmove);
|
|
8691
|
+
writer.writeByte(0);
|
|
8692
|
+
writer.writeByte(0);
|
|
8693
|
+
}
|
|
8681
8694
|
var entityFlags_exports2 = {};
|
|
8682
8695
|
__export3(entityFlags_exports2, {
|
|
8683
8696
|
U_ANGLE1: () => U_ANGLE13,
|
|
@@ -8836,6 +8849,108 @@ var BinaryStream2 = class {
|
|
|
8836
8849
|
out.z = norm[2];
|
|
8837
8850
|
}
|
|
8838
8851
|
};
|
|
8852
|
+
var BinaryWriter = class {
|
|
8853
|
+
constructor(sizeOrBuffer = 1400) {
|
|
8854
|
+
if (typeof sizeOrBuffer === "number") {
|
|
8855
|
+
this.buffer = new Uint8Array(sizeOrBuffer);
|
|
8856
|
+
this.fixed = false;
|
|
8857
|
+
} else {
|
|
8858
|
+
this.buffer = sizeOrBuffer;
|
|
8859
|
+
this.fixed = true;
|
|
8860
|
+
}
|
|
8861
|
+
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
8862
|
+
this.offset = 0;
|
|
8863
|
+
}
|
|
8864
|
+
ensureSpace(bytes) {
|
|
8865
|
+
if (this.offset + bytes > this.buffer.byteLength) {
|
|
8866
|
+
if (this.fixed) {
|
|
8867
|
+
throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset + bytes}`);
|
|
8868
|
+
}
|
|
8869
|
+
const newSize = Math.max(this.buffer.byteLength * 2, this.offset + bytes);
|
|
8870
|
+
const newBuffer = new Uint8Array(newSize);
|
|
8871
|
+
newBuffer.set(this.buffer);
|
|
8872
|
+
this.buffer = newBuffer;
|
|
8873
|
+
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
8874
|
+
}
|
|
8875
|
+
}
|
|
8876
|
+
writeByte(value) {
|
|
8877
|
+
this.ensureSpace(1);
|
|
8878
|
+
this.view.setUint8(this.offset, value);
|
|
8879
|
+
this.offset += 1;
|
|
8880
|
+
}
|
|
8881
|
+
writeChar(value) {
|
|
8882
|
+
this.ensureSpace(1);
|
|
8883
|
+
this.view.setInt8(this.offset, value);
|
|
8884
|
+
this.offset += 1;
|
|
8885
|
+
}
|
|
8886
|
+
writeShort(value) {
|
|
8887
|
+
this.ensureSpace(2);
|
|
8888
|
+
this.view.setInt16(this.offset, value, true);
|
|
8889
|
+
this.offset += 2;
|
|
8890
|
+
}
|
|
8891
|
+
writeLong(value) {
|
|
8892
|
+
this.ensureSpace(4);
|
|
8893
|
+
this.view.setInt32(this.offset, value, true);
|
|
8894
|
+
this.offset += 4;
|
|
8895
|
+
}
|
|
8896
|
+
writeFloat(value) {
|
|
8897
|
+
this.ensureSpace(4);
|
|
8898
|
+
this.view.setFloat32(this.offset, value, true);
|
|
8899
|
+
this.offset += 4;
|
|
8900
|
+
}
|
|
8901
|
+
writeString(value) {
|
|
8902
|
+
const len2 = value.length;
|
|
8903
|
+
this.ensureSpace(len2 + 1);
|
|
8904
|
+
for (let i = 0; i < len2; i++) {
|
|
8905
|
+
this.view.setUint8(this.offset + i, value.charCodeAt(i));
|
|
8906
|
+
}
|
|
8907
|
+
this.view.setUint8(this.offset + len2, 0);
|
|
8908
|
+
this.offset += len2 + 1;
|
|
8909
|
+
}
|
|
8910
|
+
writeCoord(value) {
|
|
8911
|
+
this.writeShort(Math.trunc(value * 8));
|
|
8912
|
+
}
|
|
8913
|
+
writeAngle(value) {
|
|
8914
|
+
this.writeByte(Math.trunc(value * 256 / 360) & 255);
|
|
8915
|
+
}
|
|
8916
|
+
writeAngle16(value) {
|
|
8917
|
+
this.writeShort(Math.trunc(value * 65536 / 360) & 65535);
|
|
8918
|
+
}
|
|
8919
|
+
writePos(pos) {
|
|
8920
|
+
this.writeCoord(pos.x);
|
|
8921
|
+
this.writeCoord(pos.y);
|
|
8922
|
+
this.writeCoord(pos.z);
|
|
8923
|
+
}
|
|
8924
|
+
writeDir(dir) {
|
|
8925
|
+
let maxDot = -1;
|
|
8926
|
+
let bestIndex = 0;
|
|
8927
|
+
if (dir.x === 0 && dir.y === 0 && dir.z === 0) {
|
|
8928
|
+
this.writeByte(0);
|
|
8929
|
+
return;
|
|
8930
|
+
}
|
|
8931
|
+
for (let i = 0; i < ANORMS2.length; i++) {
|
|
8932
|
+
const norm = ANORMS2[i];
|
|
8933
|
+
const dot2 = dir.x * norm[0] + dir.y * norm[1] + dir.z * norm[2];
|
|
8934
|
+
if (dot2 > maxDot) {
|
|
8935
|
+
maxDot = dot2;
|
|
8936
|
+
bestIndex = i;
|
|
8937
|
+
}
|
|
8938
|
+
}
|
|
8939
|
+
this.writeByte(bestIndex);
|
|
8940
|
+
}
|
|
8941
|
+
getData() {
|
|
8942
|
+
return this.buffer.slice(0, this.offset);
|
|
8943
|
+
}
|
|
8944
|
+
getBuffer() {
|
|
8945
|
+
return this.buffer;
|
|
8946
|
+
}
|
|
8947
|
+
getOffset() {
|
|
8948
|
+
return this.offset;
|
|
8949
|
+
}
|
|
8950
|
+
reset() {
|
|
8951
|
+
this.offset = 0;
|
|
8952
|
+
}
|
|
8953
|
+
};
|
|
8839
8954
|
var NetworkMessageBuilder = class {
|
|
8840
8955
|
constructor(initialSize = 1024) {
|
|
8841
8956
|
this.buffer = new Uint8Array(initialSize);
|
|
@@ -10911,6 +11026,8 @@ var MultiplayerConnection = class {
|
|
|
10911
11026
|
this.challenge = 0;
|
|
10912
11027
|
this.connectPacketCount = 0;
|
|
10913
11028
|
this.connectPacketTime = 0;
|
|
11029
|
+
this.latestServerFrame = 0;
|
|
11030
|
+
this.commandHistory = [];
|
|
10914
11031
|
this.driver = new BrowserWebSocketNetDriver();
|
|
10915
11032
|
this.options = options;
|
|
10916
11033
|
this.driver.onMessage((data) => this.handleMessage(data));
|
|
@@ -10940,12 +11057,27 @@ var MultiplayerConnection = class {
|
|
|
10940
11057
|
this.state = 0 /* Disconnected */;
|
|
10941
11058
|
this.configStrings.clear();
|
|
10942
11059
|
this.baselines.clear();
|
|
11060
|
+
this.commandHistory = [];
|
|
11061
|
+
this.latestServerFrame = 0;
|
|
10943
11062
|
}
|
|
10944
11063
|
sendCommand(cmd) {
|
|
10945
11064
|
if (this.state !== 5 /* Active */) return;
|
|
10946
|
-
const
|
|
10947
|
-
|
|
10948
|
-
|
|
11065
|
+
const commandWithFrame = {
|
|
11066
|
+
...cmd,
|
|
11067
|
+
serverFrame: cmd.serverFrame ?? this.latestServerFrame
|
|
11068
|
+
};
|
|
11069
|
+
this.commandHistory.push(commandWithFrame);
|
|
11070
|
+
if (this.commandHistory.length > CMD_BACKUP) {
|
|
11071
|
+
this.commandHistory.shift();
|
|
11072
|
+
}
|
|
11073
|
+
const writer = new BinaryWriter();
|
|
11074
|
+
writer.writeLong(0);
|
|
11075
|
+
writer.writeLong(0);
|
|
11076
|
+
writer.writeByte(ClientCommand.move);
|
|
11077
|
+
writer.writeByte(0);
|
|
11078
|
+
writer.writeLong(this.latestServerFrame);
|
|
11079
|
+
writeUserCommand(writer, commandWithFrame);
|
|
11080
|
+
this.driver.send(writer.getData());
|
|
10949
11081
|
}
|
|
10950
11082
|
handleMessage(data) {
|
|
10951
11083
|
let buffer = data.buffer;
|
|
@@ -11024,9 +11156,12 @@ var MultiplayerConnection = class {
|
|
|
11024
11156
|
this.driver.send(builder.getData());
|
|
11025
11157
|
this.state = 5 /* Active */;
|
|
11026
11158
|
}
|
|
11027
|
-
// Stubs for other handlers
|
|
11028
11159
|
onFrame(frame) {
|
|
11160
|
+
if (frame.serverFrame > this.latestServerFrame) {
|
|
11161
|
+
this.latestServerFrame = frame.serverFrame;
|
|
11162
|
+
}
|
|
11029
11163
|
}
|
|
11164
|
+
// Stubs for other handlers
|
|
11030
11165
|
onCenterPrint(msg) {
|
|
11031
11166
|
}
|
|
11032
11167
|
onPrint(level, msg) {
|