quake2ts 0.0.557 → 0.0.562
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 +3 -1
- package/packages/client/dist/browser/index.global.js +15 -15
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +343 -1
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +343 -1
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/client/dist/types/index.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/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/render/bloom.d.ts +19 -0
- package/packages/engine/dist/types/render/bloom.d.ts.map +1 -0
- package/packages/engine/dist/types/render/frame.d.ts +2 -0
- package/packages/engine/dist/types/render/frame.d.ts.map +1 -1
- package/packages/engine/dist/types/render/renderer.d.ts +2 -0
- package/packages/engine/dist/types/render/renderer.d.ts.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/server/dist/client.d.ts +51 -0
- package/packages/server/dist/client.js +100 -0
- package/packages/server/dist/dedicated.d.ts +69 -0
- package/packages/server/dist/dedicated.js +1013 -0
- package/packages/server/dist/index.cjs +27 -2
- package/packages/server/dist/index.d.ts +7 -161
- package/packages/server/dist/index.js +26 -2
- package/packages/server/dist/net/nodeWsDriver.d.ts +16 -0
- package/packages/server/dist/net/nodeWsDriver.js +122 -0
- package/packages/server/dist/protocol/player.d.ts +23 -0
- package/packages/server/dist/protocol/player.js +137 -0
- package/packages/server/dist/protocol/write.d.ts +7 -0
- package/packages/server/dist/protocol/write.js +167 -0
- package/packages/server/dist/protocol.d.ts +17 -0
- package/packages/server/dist/protocol.js +71 -0
- package/packages/server/dist/server.d.ts +50 -0
- package/packages/server/dist/server.js +12 -0
- package/packages/server/dist/server.test.d.ts +1 -0
- package/packages/server/dist/server.test.js +69 -0
- package/packages/server/dist/transport.d.ts +7 -0
- package/packages/server/dist/transport.js +1 -0
- package/packages/server/dist/transports/websocket.d.ts +11 -0
- package/packages/server/dist/transports/websocket.js +38 -0
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/test-utils/dist/index.cjs +498 -284
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +215 -146
- package/packages/test-utils/dist/index.d.ts +215 -146
- package/packages/test-utils/dist/index.js +488 -278
- package/packages/test-utils/dist/index.js.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/server/dist/index.d.cts +0 -161
|
@@ -11444,6 +11444,271 @@ var RenderFx = /* @__PURE__ */ ((RenderFx22) => {
|
|
|
11444
11444
|
RenderFx22[RenderFx22["Flashlight"] = 2097152] = "Flashlight";
|
|
11445
11445
|
return RenderFx22;
|
|
11446
11446
|
})(RenderFx || {});
|
|
11447
|
+
var crc_table = [
|
|
11448
|
+
0,
|
|
11449
|
+
145,
|
|
11450
|
+
227,
|
|
11451
|
+
114,
|
|
11452
|
+
7,
|
|
11453
|
+
150,
|
|
11454
|
+
228,
|
|
11455
|
+
117,
|
|
11456
|
+
14,
|
|
11457
|
+
159,
|
|
11458
|
+
237,
|
|
11459
|
+
124,
|
|
11460
|
+
9,
|
|
11461
|
+
152,
|
|
11462
|
+
234,
|
|
11463
|
+
123,
|
|
11464
|
+
28,
|
|
11465
|
+
141,
|
|
11466
|
+
255,
|
|
11467
|
+
110,
|
|
11468
|
+
27,
|
|
11469
|
+
138,
|
|
11470
|
+
248,
|
|
11471
|
+
105,
|
|
11472
|
+
18,
|
|
11473
|
+
131,
|
|
11474
|
+
241,
|
|
11475
|
+
96,
|
|
11476
|
+
21,
|
|
11477
|
+
132,
|
|
11478
|
+
246,
|
|
11479
|
+
103,
|
|
11480
|
+
56,
|
|
11481
|
+
169,
|
|
11482
|
+
219,
|
|
11483
|
+
74,
|
|
11484
|
+
63,
|
|
11485
|
+
174,
|
|
11486
|
+
220,
|
|
11487
|
+
77,
|
|
11488
|
+
54,
|
|
11489
|
+
167,
|
|
11490
|
+
213,
|
|
11491
|
+
68,
|
|
11492
|
+
49,
|
|
11493
|
+
160,
|
|
11494
|
+
210,
|
|
11495
|
+
67,
|
|
11496
|
+
36,
|
|
11497
|
+
181,
|
|
11498
|
+
199,
|
|
11499
|
+
86,
|
|
11500
|
+
35,
|
|
11501
|
+
178,
|
|
11502
|
+
192,
|
|
11503
|
+
81,
|
|
11504
|
+
42,
|
|
11505
|
+
187,
|
|
11506
|
+
201,
|
|
11507
|
+
88,
|
|
11508
|
+
45,
|
|
11509
|
+
188,
|
|
11510
|
+
206,
|
|
11511
|
+
95,
|
|
11512
|
+
112,
|
|
11513
|
+
225,
|
|
11514
|
+
147,
|
|
11515
|
+
2,
|
|
11516
|
+
119,
|
|
11517
|
+
230,
|
|
11518
|
+
148,
|
|
11519
|
+
5,
|
|
11520
|
+
126,
|
|
11521
|
+
239,
|
|
11522
|
+
157,
|
|
11523
|
+
12,
|
|
11524
|
+
121,
|
|
11525
|
+
232,
|
|
11526
|
+
154,
|
|
11527
|
+
11,
|
|
11528
|
+
108,
|
|
11529
|
+
253,
|
|
11530
|
+
143,
|
|
11531
|
+
30,
|
|
11532
|
+
107,
|
|
11533
|
+
250,
|
|
11534
|
+
136,
|
|
11535
|
+
25,
|
|
11536
|
+
98,
|
|
11537
|
+
243,
|
|
11538
|
+
129,
|
|
11539
|
+
16,
|
|
11540
|
+
101,
|
|
11541
|
+
244,
|
|
11542
|
+
134,
|
|
11543
|
+
23,
|
|
11544
|
+
72,
|
|
11545
|
+
217,
|
|
11546
|
+
171,
|
|
11547
|
+
58,
|
|
11548
|
+
79,
|
|
11549
|
+
222,
|
|
11550
|
+
172,
|
|
11551
|
+
61,
|
|
11552
|
+
70,
|
|
11553
|
+
215,
|
|
11554
|
+
165,
|
|
11555
|
+
52,
|
|
11556
|
+
65,
|
|
11557
|
+
208,
|
|
11558
|
+
162,
|
|
11559
|
+
51,
|
|
11560
|
+
84,
|
|
11561
|
+
197,
|
|
11562
|
+
183,
|
|
11563
|
+
38,
|
|
11564
|
+
83,
|
|
11565
|
+
194,
|
|
11566
|
+
176,
|
|
11567
|
+
33,
|
|
11568
|
+
90,
|
|
11569
|
+
203,
|
|
11570
|
+
185,
|
|
11571
|
+
40,
|
|
11572
|
+
93,
|
|
11573
|
+
204,
|
|
11574
|
+
190,
|
|
11575
|
+
47,
|
|
11576
|
+
224,
|
|
11577
|
+
113,
|
|
11578
|
+
3,
|
|
11579
|
+
146,
|
|
11580
|
+
231,
|
|
11581
|
+
118,
|
|
11582
|
+
4,
|
|
11583
|
+
149,
|
|
11584
|
+
238,
|
|
11585
|
+
127,
|
|
11586
|
+
13,
|
|
11587
|
+
156,
|
|
11588
|
+
233,
|
|
11589
|
+
120,
|
|
11590
|
+
10,
|
|
11591
|
+
155,
|
|
11592
|
+
252,
|
|
11593
|
+
109,
|
|
11594
|
+
31,
|
|
11595
|
+
142,
|
|
11596
|
+
251,
|
|
11597
|
+
106,
|
|
11598
|
+
24,
|
|
11599
|
+
137,
|
|
11600
|
+
242,
|
|
11601
|
+
99,
|
|
11602
|
+
17,
|
|
11603
|
+
128,
|
|
11604
|
+
245,
|
|
11605
|
+
100,
|
|
11606
|
+
22,
|
|
11607
|
+
135,
|
|
11608
|
+
216,
|
|
11609
|
+
73,
|
|
11610
|
+
59,
|
|
11611
|
+
170,
|
|
11612
|
+
223,
|
|
11613
|
+
78,
|
|
11614
|
+
60,
|
|
11615
|
+
173,
|
|
11616
|
+
214,
|
|
11617
|
+
71,
|
|
11618
|
+
53,
|
|
11619
|
+
164,
|
|
11620
|
+
209,
|
|
11621
|
+
64,
|
|
11622
|
+
50,
|
|
11623
|
+
163,
|
|
11624
|
+
196,
|
|
11625
|
+
85,
|
|
11626
|
+
39,
|
|
11627
|
+
182,
|
|
11628
|
+
195,
|
|
11629
|
+
82,
|
|
11630
|
+
32,
|
|
11631
|
+
177,
|
|
11632
|
+
202,
|
|
11633
|
+
91,
|
|
11634
|
+
41,
|
|
11635
|
+
184,
|
|
11636
|
+
205,
|
|
11637
|
+
92,
|
|
11638
|
+
46,
|
|
11639
|
+
191,
|
|
11640
|
+
144,
|
|
11641
|
+
1,
|
|
11642
|
+
115,
|
|
11643
|
+
226,
|
|
11644
|
+
151,
|
|
11645
|
+
6,
|
|
11646
|
+
116,
|
|
11647
|
+
229,
|
|
11648
|
+
158,
|
|
11649
|
+
15,
|
|
11650
|
+
125,
|
|
11651
|
+
236,
|
|
11652
|
+
153,
|
|
11653
|
+
8,
|
|
11654
|
+
122,
|
|
11655
|
+
235,
|
|
11656
|
+
140,
|
|
11657
|
+
29,
|
|
11658
|
+
111,
|
|
11659
|
+
254,
|
|
11660
|
+
139,
|
|
11661
|
+
26,
|
|
11662
|
+
104,
|
|
11663
|
+
249,
|
|
11664
|
+
130,
|
|
11665
|
+
19,
|
|
11666
|
+
97,
|
|
11667
|
+
240,
|
|
11668
|
+
133,
|
|
11669
|
+
20,
|
|
11670
|
+
102,
|
|
11671
|
+
247,
|
|
11672
|
+
168,
|
|
11673
|
+
57,
|
|
11674
|
+
75,
|
|
11675
|
+
218,
|
|
11676
|
+
175,
|
|
11677
|
+
62,
|
|
11678
|
+
76,
|
|
11679
|
+
221,
|
|
11680
|
+
166,
|
|
11681
|
+
55,
|
|
11682
|
+
69,
|
|
11683
|
+
212,
|
|
11684
|
+
161,
|
|
11685
|
+
48,
|
|
11686
|
+
66,
|
|
11687
|
+
211,
|
|
11688
|
+
180,
|
|
11689
|
+
37,
|
|
11690
|
+
86,
|
|
11691
|
+
199,
|
|
11692
|
+
179,
|
|
11693
|
+
34,
|
|
11694
|
+
80,
|
|
11695
|
+
193,
|
|
11696
|
+
186,
|
|
11697
|
+
43,
|
|
11698
|
+
89,
|
|
11699
|
+
200,
|
|
11700
|
+
189,
|
|
11701
|
+
44,
|
|
11702
|
+
94,
|
|
11703
|
+
207
|
|
11704
|
+
];
|
|
11705
|
+
function crc8(data) {
|
|
11706
|
+
let crc = 0;
|
|
11707
|
+
for (let i = 0; i < data.length; i++) {
|
|
11708
|
+
crc = crc_table[(crc ^ data[i]) & 255];
|
|
11709
|
+
}
|
|
11710
|
+
return crc;
|
|
11711
|
+
}
|
|
11447
11712
|
var EntityEffects = /* @__PURE__ */ ((EntityEffects2) => {
|
|
11448
11713
|
EntityEffects2[EntityEffects2["Rotate"] = 4] = "Rotate";
|
|
11449
11714
|
EntityEffects2[EntityEffects2["Gib"] = 8] = "Gib";
|
|
@@ -16235,6 +16500,9 @@ var MultiplayerConnection = class {
|
|
|
16235
16500
|
// Ping calculation
|
|
16236
16501
|
this.lastPingTime = 0;
|
|
16237
16502
|
this.currentPing = 0;
|
|
16503
|
+
// Frame CRC
|
|
16504
|
+
this.frameCRCs = /* @__PURE__ */ new Map();
|
|
16505
|
+
this.currentPacketCRC = 0;
|
|
16238
16506
|
this.driver = new BrowserWebSocketNetDriver();
|
|
16239
16507
|
this.options = options;
|
|
16240
16508
|
this.netchan = options.netchan ?? new NetChan();
|
|
@@ -16295,6 +16563,7 @@ var MultiplayerConnection = class {
|
|
|
16295
16563
|
this.commandHistory = [];
|
|
16296
16564
|
this.latestServerFrame = 0;
|
|
16297
16565
|
this.parser = null;
|
|
16566
|
+
this.frameCRCs.clear();
|
|
16298
16567
|
}
|
|
16299
16568
|
setState(newState) {
|
|
16300
16569
|
if (this.state !== newState) {
|
|
@@ -16322,7 +16591,8 @@ var MultiplayerConnection = class {
|
|
|
16322
16591
|
}
|
|
16323
16592
|
const writer = new BinaryWriter2();
|
|
16324
16593
|
writer.writeByte(ClientCommand.move);
|
|
16325
|
-
|
|
16594
|
+
const checksum = this.frameCRCs.get(this.latestServerFrame) || 0;
|
|
16595
|
+
writer.writeByte(checksum);
|
|
16326
16596
|
writer.writeLong(this.latestServerFrame);
|
|
16327
16597
|
writeUserCommand(writer, commandWithFrame);
|
|
16328
16598
|
const packet = this.netchan.transmit(writer.getData());
|
|
@@ -16343,6 +16613,7 @@ var MultiplayerConnection = class {
|
|
|
16343
16613
|
if (this.demoRecorder && this.demoRecorder.getIsRecording()) {
|
|
16344
16614
|
this.demoRecorder.recordMessage(processedData);
|
|
16345
16615
|
}
|
|
16616
|
+
this.currentPacketCRC = crc8(processedData);
|
|
16346
16617
|
const stream = new BinaryStream2(processedData.buffer);
|
|
16347
16618
|
this.parser = new NetworkMessageParser(stream, this);
|
|
16348
16619
|
this.parser.parseMessage();
|
|
@@ -16426,6 +16697,7 @@ var MultiplayerConnection = class {
|
|
|
16426
16697
|
if (frame.serverFrame > this.latestServerFrame) {
|
|
16427
16698
|
this.latestServerFrame = frame.serverFrame;
|
|
16428
16699
|
}
|
|
16700
|
+
this.frameCRCs.set(frame.serverFrame, this.currentPacketCRC);
|
|
16429
16701
|
const packetEntities = frame.packetEntities;
|
|
16430
16702
|
if (!packetEntities.delta) {
|
|
16431
16703
|
this.entities.clear();
|
|
@@ -18605,6 +18877,53 @@ function createClient(imports) {
|
|
|
18605
18877
|
},
|
|
18606
18878
|
description: "Music volume"
|
|
18607
18879
|
});
|
|
18880
|
+
imports.host.cvars.register({
|
|
18881
|
+
name: "vid_gamma",
|
|
18882
|
+
defaultValue: "1.0",
|
|
18883
|
+
flags: CvarFlags2.Archive,
|
|
18884
|
+
onChange: (cvar) => {
|
|
18885
|
+
const val = cvar.number;
|
|
18886
|
+
if (!isNaN(val) && imports.engine.renderer) {
|
|
18887
|
+
imports.engine.renderer.setGamma(val);
|
|
18888
|
+
}
|
|
18889
|
+
},
|
|
18890
|
+
description: "Gamma correction"
|
|
18891
|
+
});
|
|
18892
|
+
imports.host.cvars.register({
|
|
18893
|
+
name: "r_brightness",
|
|
18894
|
+
defaultValue: "1.0",
|
|
18895
|
+
flags: CvarFlags2.Archive,
|
|
18896
|
+
onChange: (cvar) => {
|
|
18897
|
+
const val = cvar.number;
|
|
18898
|
+
if (!isNaN(val) && imports.engine.renderer) {
|
|
18899
|
+
imports.engine.renderer.setBrightness(val);
|
|
18900
|
+
}
|
|
18901
|
+
},
|
|
18902
|
+
description: "Brightness control"
|
|
18903
|
+
});
|
|
18904
|
+
imports.host.cvars.register({
|
|
18905
|
+
name: "r_bloom",
|
|
18906
|
+
defaultValue: "0",
|
|
18907
|
+
flags: CvarFlags2.Archive,
|
|
18908
|
+
onChange: (cvar) => {
|
|
18909
|
+
if (imports.engine.renderer) {
|
|
18910
|
+
imports.engine.renderer.setBloom(cvar.number !== 0);
|
|
18911
|
+
}
|
|
18912
|
+
},
|
|
18913
|
+
description: "Enable bloom effect"
|
|
18914
|
+
});
|
|
18915
|
+
imports.host.cvars.register({
|
|
18916
|
+
name: "r_bloom_intensity",
|
|
18917
|
+
defaultValue: "0.5",
|
|
18918
|
+
flags: CvarFlags2.Archive,
|
|
18919
|
+
onChange: (cvar) => {
|
|
18920
|
+
const val = cvar.number;
|
|
18921
|
+
if (!isNaN(val) && imports.engine.renderer) {
|
|
18922
|
+
imports.engine.renderer.setBloomIntensity(val);
|
|
18923
|
+
}
|
|
18924
|
+
},
|
|
18925
|
+
description: "Bloom intensity"
|
|
18926
|
+
});
|
|
18608
18927
|
const initialFov = imports.host.cvars.get("fov");
|
|
18609
18928
|
if (initialFov) {
|
|
18610
18929
|
const f = initialFov.number;
|
|
@@ -18643,6 +18962,24 @@ function createClient(imports) {
|
|
|
18643
18962
|
loadingScreen.finish();
|
|
18644
18963
|
});
|
|
18645
18964
|
}
|
|
18965
|
+
if (imports.engine.renderer && imports.host?.cvars) {
|
|
18966
|
+
const gamma = imports.host.cvars.get("vid_gamma");
|
|
18967
|
+
if (gamma && !isNaN(gamma.number)) {
|
|
18968
|
+
imports.engine.renderer.setGamma(gamma.number);
|
|
18969
|
+
}
|
|
18970
|
+
const brightness = imports.host.cvars.get("r_brightness");
|
|
18971
|
+
if (brightness && !isNaN(brightness.number)) {
|
|
18972
|
+
imports.engine.renderer.setBrightness(brightness.number);
|
|
18973
|
+
}
|
|
18974
|
+
const bloom = imports.host.cvars.get("r_bloom");
|
|
18975
|
+
if (bloom) {
|
|
18976
|
+
imports.engine.renderer.setBloom(bloom.number !== 0);
|
|
18977
|
+
}
|
|
18978
|
+
const bloomIntensity = imports.host.cvars.get("r_bloom_intensity");
|
|
18979
|
+
if (bloomIntensity && !isNaN(bloomIntensity.number)) {
|
|
18980
|
+
imports.engine.renderer.setBloomIntensity(bloomIntensity.number);
|
|
18981
|
+
}
|
|
18982
|
+
}
|
|
18646
18983
|
void imports.engine.trace({ x: 0, y: 0, z: 0 }, { x: 1, y: 0, z: 0 });
|
|
18647
18984
|
if (typeof document !== "undefined") {
|
|
18648
18985
|
document.addEventListener("fullscreenchange", () => {
|
|
@@ -18961,13 +19298,18 @@ function createClient(imports) {
|
|
|
18961
19298
|
}
|
|
18962
19299
|
const cameraContents = pointContents({ x: camera.position[0], y: camera.position[1], z: camera.position[2] });
|
|
18963
19300
|
let waterTint;
|
|
19301
|
+
let underwaterWarp = false;
|
|
18964
19302
|
if ((cameraContents & CONTENTS_WATER2) !== 0) {
|
|
18965
19303
|
waterTint = [0.5, 0.5, 0.6, 0.6];
|
|
19304
|
+
underwaterWarp = true;
|
|
18966
19305
|
} else if ((cameraContents & CONTENTS_SLIME2) !== 0) {
|
|
18967
19306
|
waterTint = [0, 0.1, 0.05, 0.6];
|
|
19307
|
+
underwaterWarp = true;
|
|
18968
19308
|
} else if ((cameraContents & CONTENTS_LAVA2) !== 0) {
|
|
18969
19309
|
waterTint = [1, 0.3, 0, 0.6];
|
|
19310
|
+
underwaterWarp = true;
|
|
18970
19311
|
}
|
|
19312
|
+
imports.engine.renderer.setUnderwaterWarp(underwaterWarp);
|
|
18971
19313
|
imports.engine.renderer.renderFrame({
|
|
18972
19314
|
camera,
|
|
18973
19315
|
world,
|