quake2ts 0.0.256 → 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 +155 -6
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +174 -25
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/client/dist/types/hud/icons.d.ts.map +1 -1
- package/packages/client/dist/types/hud/statusbar.d.ts.map +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 +4118 -2942
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +4117 -2940
- 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 +17 -0
- package/packages/game/dist/types/combat/weapons/projectSource.d.ts.map +1 -0
- package/packages/game/dist/types/combat/weapons/rogue.d.ts +4 -4
- package/packages/game/dist/types/combat/weapons/rogue.d.ts.map +1 -1
- package/packages/game/dist/types/combat/weapons/state.d.ts +6 -0
- package/packages/game/dist/types/combat/weapons/state.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/playerStats.d.ts.map +1 -1
- 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/game/dist/types/inventory/ammo.d.ts.map +1 -1
- package/packages/game/dist/types/inventory/playerInventory.d.ts +91 -38
- package/packages/game/dist/types/inventory/playerInventory.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 +28 -4
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +25 -3
- 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/stats.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;
|
|
@@ -8604,7 +8605,16 @@ var POWERUP_STAT_MAP = {
|
|
|
8604
8605
|
"enviro_suit"
|
|
8605
8606
|
/* EnviroSuit */
|
|
8606
8607
|
]: 9,
|
|
8607
|
-
|
|
8608
|
+
[
|
|
8609
|
+
"bandolier"
|
|
8610
|
+
/* Bandolier */
|
|
8611
|
+
]: 10,
|
|
8612
|
+
// Placeholder/Map mismatch handling?
|
|
8613
|
+
[
|
|
8614
|
+
"ammo_pack"
|
|
8615
|
+
/* AmmoPack */
|
|
8616
|
+
]: 10,
|
|
8617
|
+
// Original reused indices or had gaps?
|
|
8608
8618
|
[
|
|
8609
8619
|
"ir_goggles"
|
|
8610
8620
|
/* IRGoggles */
|
|
@@ -8652,7 +8662,12 @@ var POWERUP_STAT_MAP = {
|
|
|
8652
8662
|
[
|
|
8653
8663
|
"tech_regeneration"
|
|
8654
8664
|
/* TechRegeneration */
|
|
8655
|
-
]: 22
|
|
8665
|
+
]: 22,
|
|
8666
|
+
// Add missing mappings to avoid runtime lookups failing for new types
|
|
8667
|
+
[
|
|
8668
|
+
"tag_token"
|
|
8669
|
+
/* TagToken */
|
|
8670
|
+
]: -1
|
|
8656
8671
|
};
|
|
8657
8672
|
function G_GetPowerupStat(stats, powerupId) {
|
|
8658
8673
|
let index;
|
|
@@ -8664,6 +8679,18 @@ function G_GetPowerupStat(stats, powerupId) {
|
|
|
8664
8679
|
if (index === void 0 || index < 0 || index >= POWERUP_MAX2) return 0;
|
|
8665
8680
|
return getCompressedInteger(stats, 41, index, NUM_BITS_FOR_POWERUP2);
|
|
8666
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
|
+
}
|
|
8667
8694
|
var entityFlags_exports2 = {};
|
|
8668
8695
|
__export3(entityFlags_exports2, {
|
|
8669
8696
|
U_ANGLE1: () => U_ANGLE13,
|
|
@@ -8822,6 +8849,108 @@ var BinaryStream2 = class {
|
|
|
8822
8849
|
out.z = norm[2];
|
|
8823
8850
|
}
|
|
8824
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
|
+
};
|
|
8825
8954
|
var NetworkMessageBuilder = class {
|
|
8826
8955
|
constructor(initialSize = 1024) {
|
|
8827
8956
|
this.buffer = new Uint8Array(initialSize);
|
|
@@ -10897,6 +11026,8 @@ var MultiplayerConnection = class {
|
|
|
10897
11026
|
this.challenge = 0;
|
|
10898
11027
|
this.connectPacketCount = 0;
|
|
10899
11028
|
this.connectPacketTime = 0;
|
|
11029
|
+
this.latestServerFrame = 0;
|
|
11030
|
+
this.commandHistory = [];
|
|
10900
11031
|
this.driver = new BrowserWebSocketNetDriver();
|
|
10901
11032
|
this.options = options;
|
|
10902
11033
|
this.driver.onMessage((data) => this.handleMessage(data));
|
|
@@ -10926,12 +11057,27 @@ var MultiplayerConnection = class {
|
|
|
10926
11057
|
this.state = 0 /* Disconnected */;
|
|
10927
11058
|
this.configStrings.clear();
|
|
10928
11059
|
this.baselines.clear();
|
|
11060
|
+
this.commandHistory = [];
|
|
11061
|
+
this.latestServerFrame = 0;
|
|
10929
11062
|
}
|
|
10930
11063
|
sendCommand(cmd) {
|
|
10931
11064
|
if (this.state !== 5 /* Active */) return;
|
|
10932
|
-
const
|
|
10933
|
-
|
|
10934
|
-
|
|
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());
|
|
10935
11081
|
}
|
|
10936
11082
|
handleMessage(data) {
|
|
10937
11083
|
let buffer = data.buffer;
|
|
@@ -11010,9 +11156,12 @@ var MultiplayerConnection = class {
|
|
|
11010
11156
|
this.driver.send(builder.getData());
|
|
11011
11157
|
this.state = 5 /* Active */;
|
|
11012
11158
|
}
|
|
11013
|
-
// Stubs for other handlers
|
|
11014
11159
|
onFrame(frame) {
|
|
11160
|
+
if (frame.serverFrame > this.latestServerFrame) {
|
|
11161
|
+
this.latestServerFrame = frame.serverFrame;
|
|
11162
|
+
}
|
|
11015
11163
|
}
|
|
11164
|
+
// Stubs for other handlers
|
|
11016
11165
|
onCenterPrint(msg) {
|
|
11017
11166
|
}
|
|
11018
11167
|
onPrint(level, msg) {
|