@quake2ts/engine 0.0.753 → 0.0.756
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/dist/browser/index.global.js +20 -20
- package/dist/browser/index.global.js.map +1 -1
- package/dist/cjs/index.cjs +1188 -985
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +1012 -899
- package/dist/esm/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/assets/visibilityAnalyzer.d.ts.map +1 -1
- package/dist/types/demo/clipper.d.ts +35 -24
- package/dist/types/demo/clipper.d.ts.map +1 -1
- package/dist/types/demo/delta.d.ts +8 -2
- package/dist/types/demo/delta.d.ts.map +1 -1
- package/dist/types/demo/parser.d.ts +6 -136
- package/dist/types/demo/parser.d.ts.map +1 -1
- package/dist/types/demo/protocol/factory.d.ts +38 -0
- package/dist/types/demo/protocol/factory.d.ts.map +1 -0
- package/dist/types/demo/protocol/legacy.d.ts +25 -0
- package/dist/types/demo/protocol/legacy.d.ts.map +1 -0
- package/dist/types/demo/protocol/quake2.d.ts +24 -0
- package/dist/types/demo/protocol/quake2.d.ts.map +1 -0
- package/dist/types/demo/protocol/rerelease.d.ts +28 -0
- package/dist/types/demo/protocol/rerelease.d.ts.map +1 -0
- package/dist/types/demo/protocol/types.d.ts +26 -0
- package/dist/types/demo/protocol/types.d.ts.map +1 -0
- package/dist/types/demo/state.d.ts +97 -0
- package/dist/types/demo/state.d.ts.map +1 -0
- package/dist/types/demo/writer.d.ts +19 -21
- package/dist/types/demo/writer.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visibilityAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/assets/visibilityAnalyzer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAa,MAAM,EAAW,MAAM,UAAU,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"visibilityAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/assets/visibilityAnalyzer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAa,MAAM,EAAW,MAAM,UAAU,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACrC;AAQD,qBAAa,0BAA0B;IACnC,OAAO,CAAC,OAAO,CAAsB;;IAMxB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxG,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI5J,OAAO,CAAC,oBAAoB;IA2D5B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,gBAAgB;YAmBV,eAAe;CAoLhC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { NetworkMessageHandler } from './parser.js';
|
|
2
|
+
import { EntityState, FrameData } from './state.js';
|
|
3
|
+
export interface WorldState {
|
|
4
|
+
protocol: number;
|
|
5
|
+
currentEntities: Map<number, EntityState>;
|
|
6
|
+
entityBaselines: Map<number, EntityState>;
|
|
7
|
+
configStrings: Map<number, string>;
|
|
8
|
+
serverData?: ServerDataMessage;
|
|
9
|
+
}
|
|
3
10
|
export interface ServerDataMessage {
|
|
4
11
|
protocol: number;
|
|
5
12
|
serverCount: number;
|
|
@@ -7,28 +14,32 @@ export interface ServerDataMessage {
|
|
|
7
14
|
gameDir: string;
|
|
8
15
|
playerNum: number;
|
|
9
16
|
levelName: string;
|
|
10
|
-
tickRate?: number;
|
|
11
|
-
demoType?: number;
|
|
12
|
-
}
|
|
13
|
-
export interface WorldState {
|
|
14
|
-
serverData: ServerDataMessage;
|
|
15
|
-
configStrings: Map<number, string>;
|
|
16
|
-
entityBaselines: Map<number, EntityState>;
|
|
17
|
-
playerState: ProtocolPlayerState;
|
|
18
|
-
currentEntities: Map<number, EntityState>;
|
|
19
|
-
currentFrameNumber?: number;
|
|
20
17
|
}
|
|
21
|
-
export declare class DemoClipper {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
export declare class DemoClipper implements NetworkMessageHandler {
|
|
19
|
+
private parser;
|
|
20
|
+
private frames;
|
|
21
|
+
private serverData;
|
|
22
|
+
private configStrings;
|
|
23
|
+
private baselines;
|
|
24
|
+
private currentEntities;
|
|
25
|
+
constructor(buffer?: ArrayBuffer);
|
|
26
|
+
extractClip(demoData: Uint8Array, start: any, end: any, controller?: any): Uint8Array;
|
|
27
|
+
extractDemoRange(demoData: Uint8Array, startFrame: number, endFrame: number): Uint8Array;
|
|
28
|
+
onServerData(protocol: number, serverCount: number, attractLoop: number, gameDir: string, playerNum: number, levelName: string): void;
|
|
29
|
+
onConfigString(index: number, str: string): void;
|
|
30
|
+
onSpawnBaseline(entity: EntityState): void;
|
|
31
|
+
onFrame(frame: FrameData): void;
|
|
32
|
+
onCenterPrint(msg: string): void;
|
|
33
|
+
onStuffText(msg: string): void;
|
|
34
|
+
onPrint(level: number, msg: string): void;
|
|
35
|
+
onSound(flags: number, soundNum: number, volume?: number, attenuation?: number, offset?: number, ent?: number, pos?: any): void;
|
|
36
|
+
onTempEntity(type: number, pos: any, pos2?: any, dir?: any, cnt?: number, color?: number, ent?: number, srcEnt?: number, destEnt?: number): void;
|
|
37
|
+
onLayout(layout: string): void;
|
|
38
|
+
onInventory(inventory: number[]): void;
|
|
39
|
+
onMuzzleFlash(ent: number, weapon: number): void;
|
|
40
|
+
onMuzzleFlash2(ent: number, weapon: number): void;
|
|
41
|
+
onDisconnect(): void;
|
|
42
|
+
onReconnect(): void;
|
|
43
|
+
onDownload(size: number, percent: number, data?: Uint8Array): void;
|
|
33
44
|
}
|
|
34
45
|
//# sourceMappingURL=clipper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipper.d.ts","sourceRoot":"","sources":["../../../src/demo/clipper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clipper.d.ts","sourceRoot":"","sources":["../../../src/demo/clipper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import { EntityState } from './
|
|
2
|
-
export declare function
|
|
1
|
+
import { EntityState } from './state.js';
|
|
2
|
+
export declare function writeDeltaEntity(from: EntityState, to: EntityState, buffer: number[]): void;
|
|
3
|
+
/**
|
|
4
|
+
* Applies delta compression changes from a delta entity state to a baseline entity state.
|
|
5
|
+
* @param target The baseline state to update (in-place)
|
|
6
|
+
* @param delta The delta state containing changes and bitmask
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyEntityDelta(target: EntityState, delta: EntityState): void;
|
|
3
9
|
//# sourceMappingURL=delta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../src/demo/delta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../src/demo/delta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAE3F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+C9E"}
|
|
@@ -1,136 +1,9 @@
|
|
|
1
1
|
import { BinaryStream, Vec3 } from '@quake2ts/shared';
|
|
2
2
|
import { StreamingBuffer } from '../stream/streamingBuffer.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export declare const U_ANGLE3: number;
|
|
8
|
-
export declare const U_FRAME8: number;
|
|
9
|
-
export declare const U_EVENT: number;
|
|
10
|
-
export declare const U_REMOVE: number;
|
|
11
|
-
export declare const U_MOREBITS1: number;
|
|
12
|
-
export declare const U_NUMBER16: number;
|
|
13
|
-
export declare const U_ORIGIN3: number;
|
|
14
|
-
export declare const U_ANGLE1: number;
|
|
15
|
-
export declare const U_MODEL: number;
|
|
16
|
-
export declare const U_RENDERFX8: number;
|
|
17
|
-
export declare const U_ALPHA: number;
|
|
18
|
-
export declare const U_EFFECTS8: number;
|
|
19
|
-
export declare const U_MOREBITS2: number;
|
|
20
|
-
export declare const U_SKIN8: number;
|
|
21
|
-
export declare const U_FRAME16: number;
|
|
22
|
-
export declare const U_RENDERFX16: number;
|
|
23
|
-
export declare const U_EFFECTS16: number;
|
|
24
|
-
export declare const U_MODEL2: number;
|
|
25
|
-
export declare const U_MODEL3: number;
|
|
26
|
-
export declare const U_MODEL4: number;
|
|
27
|
-
export declare const U_MOREBITS3: number;
|
|
28
|
-
export declare const U_OLDORIGIN: number;
|
|
29
|
-
export declare const U_SKIN16: number;
|
|
30
|
-
export declare const U_SOUND: number;
|
|
31
|
-
export declare const U_SOLID: number;
|
|
32
|
-
export declare const U_SCALE: number;
|
|
33
|
-
export declare const U_INSTANCE_BITS: number;
|
|
34
|
-
export declare const U_LOOP_VOLUME: number;
|
|
35
|
-
export declare const U_MOREBITS4: number;
|
|
36
|
-
export declare const U_LOOP_ATTENUATION_HIGH: number;
|
|
37
|
-
export declare const U_OWNER_HIGH: number;
|
|
38
|
-
export declare const U_OLD_FRAME_HIGH: number;
|
|
39
|
-
export interface MutableVec3 {
|
|
40
|
-
x: number;
|
|
41
|
-
y: number;
|
|
42
|
-
z: number;
|
|
43
|
-
}
|
|
44
|
-
export interface EntityState {
|
|
45
|
-
number: number;
|
|
46
|
-
modelindex: number;
|
|
47
|
-
modelindex2: number;
|
|
48
|
-
modelindex3: number;
|
|
49
|
-
modelindex4: number;
|
|
50
|
-
frame: number;
|
|
51
|
-
skinnum: number;
|
|
52
|
-
effects: number;
|
|
53
|
-
renderfx: number;
|
|
54
|
-
origin: MutableVec3;
|
|
55
|
-
old_origin: MutableVec3;
|
|
56
|
-
angles: MutableVec3;
|
|
57
|
-
sound: number;
|
|
58
|
-
event: number;
|
|
59
|
-
solid: number;
|
|
60
|
-
bits: number;
|
|
61
|
-
bitsHigh: number;
|
|
62
|
-
alpha: number;
|
|
63
|
-
scale: number;
|
|
64
|
-
instanceBits: number;
|
|
65
|
-
loopVolume: number;
|
|
66
|
-
loopAttenuation: number;
|
|
67
|
-
owner: number;
|
|
68
|
-
oldFrame: number;
|
|
69
|
-
}
|
|
70
|
-
export declare const createEmptyEntityState: () => EntityState;
|
|
71
|
-
export interface ProtocolPlayerState {
|
|
72
|
-
pm_type: number;
|
|
73
|
-
origin: MutableVec3;
|
|
74
|
-
velocity: MutableVec3;
|
|
75
|
-
pm_time: number;
|
|
76
|
-
pm_flags: number;
|
|
77
|
-
gravity: number;
|
|
78
|
-
delta_angles: MutableVec3;
|
|
79
|
-
viewoffset: MutableVec3;
|
|
80
|
-
viewangles: MutableVec3;
|
|
81
|
-
kick_angles: MutableVec3;
|
|
82
|
-
gun_index: number;
|
|
83
|
-
gun_frame: number;
|
|
84
|
-
gun_offset: MutableVec3;
|
|
85
|
-
gun_angles: MutableVec3;
|
|
86
|
-
blend: number[];
|
|
87
|
-
fov: number;
|
|
88
|
-
rdflags: number;
|
|
89
|
-
stats: number[];
|
|
90
|
-
gunskin: number;
|
|
91
|
-
gunrate: number;
|
|
92
|
-
damage_blend: number[];
|
|
93
|
-
team_id: number;
|
|
94
|
-
watertype: number;
|
|
95
|
-
}
|
|
96
|
-
export declare const createEmptyProtocolPlayerState: () => ProtocolPlayerState;
|
|
97
|
-
export interface FrameData {
|
|
98
|
-
serverFrame: number;
|
|
99
|
-
deltaFrame: number;
|
|
100
|
-
surpressCount: number;
|
|
101
|
-
areaBytes: number;
|
|
102
|
-
areaBits: Uint8Array;
|
|
103
|
-
playerState: ProtocolPlayerState;
|
|
104
|
-
packetEntities: {
|
|
105
|
-
delta: boolean;
|
|
106
|
-
entities: EntityState[];
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
export interface FogData {
|
|
110
|
-
density?: number;
|
|
111
|
-
skyfactor?: number;
|
|
112
|
-
red?: number;
|
|
113
|
-
green?: number;
|
|
114
|
-
blue?: number;
|
|
115
|
-
time?: number;
|
|
116
|
-
hf_falloff?: number;
|
|
117
|
-
hf_density?: number;
|
|
118
|
-
hf_start_r?: number;
|
|
119
|
-
hf_start_g?: number;
|
|
120
|
-
hf_start_b?: number;
|
|
121
|
-
hf_start_dist?: number;
|
|
122
|
-
hf_end_r?: number;
|
|
123
|
-
hf_end_g?: number;
|
|
124
|
-
hf_end_b?: number;
|
|
125
|
-
hf_end_dist?: number;
|
|
126
|
-
}
|
|
127
|
-
export interface DamageIndicator {
|
|
128
|
-
damage: number;
|
|
129
|
-
health: boolean;
|
|
130
|
-
armor: boolean;
|
|
131
|
-
power: boolean;
|
|
132
|
-
dir: Vec3;
|
|
133
|
-
}
|
|
3
|
+
import { PROTOCOL_VERSION_RERELEASE } from './protocol/rerelease.js';
|
|
4
|
+
import { EntityState, ProtocolPlayerState, createEmptyEntityState, createEmptyProtocolPlayerState, MutableVec3, FrameData, FogData, DamageIndicator } from './state.js';
|
|
5
|
+
export { U_ORIGIN1, U_ORIGIN2, U_ANGLE2, U_ANGLE3, U_FRAME8, U_EVENT, U_REMOVE, U_MOREBITS1, U_NUMBER16, U_ORIGIN3, U_ANGLE1, U_MODEL, U_RENDERFX8, U_ALPHA, U_EFFECTS8, U_MOREBITS2, U_SKIN8, U_FRAME16, U_RENDERFX16, U_EFFECTS16, U_MODEL2, U_MODEL3, U_MODEL4, U_MOREBITS3, U_OLDORIGIN, U_SKIN16, U_SOUND, U_SOLID, U_SCALE, U_INSTANCE_BITS, U_LOOP_VOLUME, U_MOREBITS4, U_LOOP_ATTENUATION_HIGH, U_OWNER_HIGH, U_OLD_FRAME_HIGH } from '@quake2ts/shared';
|
|
6
|
+
export { EntityState, ProtocolPlayerState, createEmptyEntityState, createEmptyProtocolPlayerState, MutableVec3, FrameData, FogData, DamageIndicator, PROTOCOL_VERSION_RERELEASE };
|
|
134
7
|
export interface NetworkMessageHandler {
|
|
135
8
|
onServerData(protocol: number, serverCount: number, attractLoop: number, gameDir: string, playerNum: number, levelName: string, tickRate?: number, demoType?: number): void;
|
|
136
9
|
onConfigString(index: number, str: string): void;
|
|
@@ -171,16 +44,15 @@ export interface ParseResult {
|
|
|
171
44
|
}
|
|
172
45
|
export declare class NetworkMessageParser {
|
|
173
46
|
private stream;
|
|
174
|
-
private protocolVersion;
|
|
175
|
-
private isDemo;
|
|
176
47
|
private handler?;
|
|
177
48
|
private strictMode;
|
|
178
49
|
private errorCount;
|
|
50
|
+
private protocolHandler;
|
|
51
|
+
private isDemo;
|
|
179
52
|
constructor(stream: StreamingBuffer | BinaryStream, handler?: NetworkMessageHandler, strictMode?: boolean);
|
|
180
53
|
setProtocolVersion(version: number): void;
|
|
181
54
|
getProtocolVersion(): number;
|
|
182
55
|
getErrorCount(): number;
|
|
183
|
-
private translateCommand;
|
|
184
56
|
parseMessage(): void;
|
|
185
57
|
private readAngle16;
|
|
186
58
|
private readCoord;
|
|
@@ -216,7 +88,5 @@ export declare class NetworkMessageParser {
|
|
|
216
88
|
private parsePlayerState;
|
|
217
89
|
private parsePacketEntities;
|
|
218
90
|
private collectPacketEntities;
|
|
219
|
-
private parseEntityBits;
|
|
220
|
-
private parseDelta;
|
|
221
91
|
}
|
|
222
92
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/demo/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAqC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/demo/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ProtocolHandler } from './types.js';
|
|
2
|
+
import { ServerCommand } from '@quake2ts/shared';
|
|
3
|
+
import { EntityState, ProtocolPlayerState } from '../parser.js';
|
|
4
|
+
import { StreamingBuffer } from '../../stream/streamingBuffer.js';
|
|
5
|
+
export declare class BootstrapProtocolHandler implements ProtocolHandler {
|
|
6
|
+
protocolVersion: number;
|
|
7
|
+
translateCommand(cmd: number): ServerCommand;
|
|
8
|
+
parseServerData(stream: StreamingBuffer): {
|
|
9
|
+
protocol: number;
|
|
10
|
+
serverCount: number;
|
|
11
|
+
spawnCount: number;
|
|
12
|
+
attractLoop: number;
|
|
13
|
+
gameDir: string;
|
|
14
|
+
playerNum: number;
|
|
15
|
+
levelName: string;
|
|
16
|
+
tickRate: number;
|
|
17
|
+
demoType: number;
|
|
18
|
+
} | {
|
|
19
|
+
protocol: number;
|
|
20
|
+
serverCount: number;
|
|
21
|
+
attractLoop: number;
|
|
22
|
+
gameDir: string;
|
|
23
|
+
playerNum: number;
|
|
24
|
+
levelName: string;
|
|
25
|
+
spawnCount?: undefined;
|
|
26
|
+
tickRate?: undefined;
|
|
27
|
+
demoType?: undefined;
|
|
28
|
+
};
|
|
29
|
+
parseEntityBits(stream: StreamingBuffer): {
|
|
30
|
+
number: number;
|
|
31
|
+
bits: number;
|
|
32
|
+
bitsHigh: number;
|
|
33
|
+
};
|
|
34
|
+
parseDelta(from: EntityState, to: EntityState, number: number, bits: number, bitsHigh: number, stream: StreamingBuffer): void;
|
|
35
|
+
parsePlayerState(stream: StreamingBuffer): ProtocolPlayerState;
|
|
36
|
+
}
|
|
37
|
+
export declare function createProtocolHandler(version: number): ProtocolHandler;
|
|
38
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/demo/protocol/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBAAa,wBAAyB,YAAW,eAAe;IAC5D,eAAe,SAAK;IAIpB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAY5C,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;IA2DvC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAI5F,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAI7H,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB;CAGjE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAYtE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProtocolHandler } from './types.js';
|
|
2
|
+
import { ServerCommand } from '@quake2ts/shared';
|
|
3
|
+
import { EntityState, ProtocolPlayerState } from '../state.js';
|
|
4
|
+
import { StreamingBuffer } from '../../stream/streamingBuffer.js';
|
|
5
|
+
export declare class LegacyProtocolHandler implements ProtocolHandler {
|
|
6
|
+
protocolVersion: number;
|
|
7
|
+
constructor(version?: number);
|
|
8
|
+
translateCommand(cmd: number): ServerCommand;
|
|
9
|
+
parseServerData(stream: StreamingBuffer): {
|
|
10
|
+
protocol: number;
|
|
11
|
+
serverCount: number;
|
|
12
|
+
attractLoop: number;
|
|
13
|
+
gameDir: string;
|
|
14
|
+
playerNum: number;
|
|
15
|
+
levelName: string;
|
|
16
|
+
};
|
|
17
|
+
parseEntityBits(stream: StreamingBuffer): {
|
|
18
|
+
number: number;
|
|
19
|
+
bits: number;
|
|
20
|
+
bitsHigh: number;
|
|
21
|
+
};
|
|
22
|
+
parseDelta(from: EntityState, to: EntityState, number: number, bits: number, bitsHigh: number, stream: StreamingBuffer): void;
|
|
23
|
+
parsePlayerState(stream: StreamingBuffer): ProtocolPlayerState;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=legacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../../src/demo/protocol/legacy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACH,aAAa,EAKhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAkC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBAAa,qBAAsB,YAAW,eAAe;IACzD,eAAe,EAAE,MAAM,CAAC;gBAEZ,OAAO,GAAE,MAAU;IAI/B,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAM5C,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;;;;IAavC,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;IAcvC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAgD7H,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB;CA+DjE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ProtocolHandler } from './types.js';
|
|
2
|
+
import { ServerCommand } from '@quake2ts/shared';
|
|
3
|
+
import { EntityState, ProtocolPlayerState } from '../state.js';
|
|
4
|
+
import { StreamingBuffer } from '../../stream/streamingBuffer.js';
|
|
5
|
+
export declare class Quake2ProtocolHandler implements ProtocolHandler {
|
|
6
|
+
protocolVersion: number;
|
|
7
|
+
translateCommand(cmd: number): ServerCommand;
|
|
8
|
+
parseServerData(stream: StreamingBuffer): {
|
|
9
|
+
protocol: number;
|
|
10
|
+
serverCount: number;
|
|
11
|
+
attractLoop: number;
|
|
12
|
+
gameDir: string;
|
|
13
|
+
playerNum: number;
|
|
14
|
+
levelName: string;
|
|
15
|
+
};
|
|
16
|
+
parseEntityBits(stream: StreamingBuffer): {
|
|
17
|
+
number: number;
|
|
18
|
+
bits: number;
|
|
19
|
+
bitsHigh: number;
|
|
20
|
+
};
|
|
21
|
+
parseDelta(from: EntityState, to: EntityState, number: number, bits: number, bitsHigh: number, stream: StreamingBuffer): void;
|
|
22
|
+
parsePlayerState(stream: StreamingBuffer): ProtocolPlayerState;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=quake2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quake2.d.ts","sourceRoot":"","sources":["../../../../src/demo/protocol/quake2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAU,MAAM,kBAAkB,CAAC;AAOzD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAA0D,MAAM,aAAa,CAAC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA2BlE,qBAAa,qBAAsB,YAAW,eAAe;IACzD,eAAe,SAAM;IAErB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAO5C,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;;;;IAYvC,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;IAavC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IA+C7H,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB;CA+DjE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ProtocolHandler } from './types.js';
|
|
2
|
+
import { ServerCommand } from '@quake2ts/shared';
|
|
3
|
+
import { EntityState, ProtocolPlayerState } from '../state.js';
|
|
4
|
+
import { StreamingBuffer } from '../../stream/streamingBuffer.js';
|
|
5
|
+
export declare const PROTOCOL_VERSION_RERELEASE = 2023;
|
|
6
|
+
export declare class RereleaseProtocolHandler implements ProtocolHandler {
|
|
7
|
+
protocolVersion: number;
|
|
8
|
+
translateCommand(cmd: number): ServerCommand;
|
|
9
|
+
parseServerData(stream: StreamingBuffer): {
|
|
10
|
+
protocol: number;
|
|
11
|
+
serverCount: number;
|
|
12
|
+
spawnCount: number;
|
|
13
|
+
attractLoop: number;
|
|
14
|
+
gameDir: string;
|
|
15
|
+
playerNum: number;
|
|
16
|
+
levelName: string;
|
|
17
|
+
tickRate: number;
|
|
18
|
+
demoType: number;
|
|
19
|
+
};
|
|
20
|
+
parseEntityBits(stream: StreamingBuffer): {
|
|
21
|
+
number: number;
|
|
22
|
+
bits: number;
|
|
23
|
+
bitsHigh: number;
|
|
24
|
+
};
|
|
25
|
+
parseDelta(from: EntityState, to: EntityState, number: number, bits: number, bitsHigh: number, stream: StreamingBuffer): void;
|
|
26
|
+
parsePlayerState(stream: StreamingBuffer): ProtocolPlayerState;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=rerelease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerelease.d.ts","sourceRoot":"","sources":["../../../../src/demo/protocol/rerelease.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACH,aAAa,EAMhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAkC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,qBAAa,wBAAyB,YAAW,eAAe;IAC5D,eAAe,SAA8B;IAE7C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAM5C,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;;;;;;;IA6BvC,eAAe,CAAC,MAAM,EAAE,eAAe;;;;;IAgBvC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAyD7H,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB;CAiEjE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EntityState, ProtocolPlayerState } from '../state.js';
|
|
2
|
+
import { ServerCommand } from '@quake2ts/shared';
|
|
3
|
+
import { StreamingBuffer } from '../../stream/streamingBuffer.js';
|
|
4
|
+
export interface ProtocolHandler {
|
|
5
|
+
protocolVersion: number;
|
|
6
|
+
translateCommand(cmd: number): ServerCommand;
|
|
7
|
+
parseServerData(stream: StreamingBuffer): {
|
|
8
|
+
protocol: number;
|
|
9
|
+
serverCount: number;
|
|
10
|
+
attractLoop: number;
|
|
11
|
+
gameDir: string;
|
|
12
|
+
playerNum: number;
|
|
13
|
+
levelName: string;
|
|
14
|
+
tickRate?: number;
|
|
15
|
+
demoType?: number;
|
|
16
|
+
spawnCount?: number;
|
|
17
|
+
};
|
|
18
|
+
parseEntityBits(stream: StreamingBuffer): {
|
|
19
|
+
number: number;
|
|
20
|
+
bits: number;
|
|
21
|
+
bitsHigh: number;
|
|
22
|
+
};
|
|
23
|
+
parseDelta(from: EntityState, to: EntityState, number: number, bits: number, bitsHigh: number, stream: StreamingBuffer): void;
|
|
24
|
+
parsePlayerState(stream: StreamingBuffer): ProtocolPlayerState;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/demo/protocol/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAa,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAQ,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC5B,eAAe,EAAE,MAAM,CAAC;IAExB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;IAE7C,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7F,UAAU,CACN,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACxB,IAAI,CAAC;IAER,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAAC;CAClE"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Vec3 } from '@quake2ts/shared';
|
|
2
|
+
export interface MutableVec3 {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
}
|
|
7
|
+
export interface EntityState {
|
|
8
|
+
number: number;
|
|
9
|
+
modelindex: number;
|
|
10
|
+
modelindex2: number;
|
|
11
|
+
modelindex3: number;
|
|
12
|
+
modelindex4: number;
|
|
13
|
+
frame: number;
|
|
14
|
+
skinnum: number;
|
|
15
|
+
effects: number;
|
|
16
|
+
renderfx: number;
|
|
17
|
+
origin: MutableVec3;
|
|
18
|
+
old_origin: MutableVec3;
|
|
19
|
+
angles: MutableVec3;
|
|
20
|
+
sound: number;
|
|
21
|
+
event: number;
|
|
22
|
+
solid: number;
|
|
23
|
+
bits: number;
|
|
24
|
+
bitsHigh: number;
|
|
25
|
+
alpha: number;
|
|
26
|
+
scale: number;
|
|
27
|
+
instanceBits: number;
|
|
28
|
+
loopVolume: number;
|
|
29
|
+
loopAttenuation: number;
|
|
30
|
+
owner: number;
|
|
31
|
+
oldFrame: number;
|
|
32
|
+
}
|
|
33
|
+
export declare const createEmptyEntityState: () => EntityState;
|
|
34
|
+
export interface ProtocolPlayerState {
|
|
35
|
+
pm_type: number;
|
|
36
|
+
origin: MutableVec3;
|
|
37
|
+
velocity: MutableVec3;
|
|
38
|
+
pm_time: number;
|
|
39
|
+
pm_flags: number;
|
|
40
|
+
gravity: number;
|
|
41
|
+
delta_angles: MutableVec3;
|
|
42
|
+
viewoffset: MutableVec3;
|
|
43
|
+
viewangles: MutableVec3;
|
|
44
|
+
kick_angles: MutableVec3;
|
|
45
|
+
gun_index: number;
|
|
46
|
+
gun_frame: number;
|
|
47
|
+
gun_offset: MutableVec3;
|
|
48
|
+
gun_angles: MutableVec3;
|
|
49
|
+
blend: number[];
|
|
50
|
+
fov: number;
|
|
51
|
+
rdflags: number;
|
|
52
|
+
stats: number[];
|
|
53
|
+
gunskin: number;
|
|
54
|
+
gunrate: number;
|
|
55
|
+
damage_blend: number[];
|
|
56
|
+
team_id: number;
|
|
57
|
+
watertype: number;
|
|
58
|
+
}
|
|
59
|
+
export declare const createEmptyProtocolPlayerState: () => ProtocolPlayerState;
|
|
60
|
+
export interface FrameData {
|
|
61
|
+
serverFrame: number;
|
|
62
|
+
deltaFrame: number;
|
|
63
|
+
surpressCount: number;
|
|
64
|
+
areaBytes: number;
|
|
65
|
+
areaBits: Uint8Array;
|
|
66
|
+
playerState: ProtocolPlayerState;
|
|
67
|
+
packetEntities: {
|
|
68
|
+
delta: boolean;
|
|
69
|
+
entities: EntityState[];
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export interface FogData {
|
|
73
|
+
density?: number;
|
|
74
|
+
skyfactor?: number;
|
|
75
|
+
red?: number;
|
|
76
|
+
green?: number;
|
|
77
|
+
blue?: number;
|
|
78
|
+
time?: number;
|
|
79
|
+
hf_falloff?: number;
|
|
80
|
+
hf_density?: number;
|
|
81
|
+
hf_start_r?: number;
|
|
82
|
+
hf_start_g?: number;
|
|
83
|
+
hf_start_b?: number;
|
|
84
|
+
hf_start_dist?: number;
|
|
85
|
+
hf_end_r?: number;
|
|
86
|
+
hf_end_g?: number;
|
|
87
|
+
hf_end_b?: number;
|
|
88
|
+
hf_end_dist?: number;
|
|
89
|
+
}
|
|
90
|
+
export interface DamageIndicator {
|
|
91
|
+
damage: number;
|
|
92
|
+
health: boolean;
|
|
93
|
+
armor: boolean;
|
|
94
|
+
power: boolean;
|
|
95
|
+
dir: Vec3;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/demo/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import { EntityState, ProtocolPlayerState, FrameData } from './
|
|
2
|
-
import {
|
|
1
|
+
import { EntityState, ProtocolPlayerState, FrameData } from './state.js';
|
|
2
|
+
import { BinaryWriter, ServerCommand } from '@quake2ts/shared';
|
|
3
3
|
export declare class MessageWriter {
|
|
4
4
|
private writer;
|
|
5
|
-
|
|
5
|
+
private protocol;
|
|
6
|
+
constructor(writer?: BinaryWriter, protocol?: number);
|
|
6
7
|
getData(): Uint8Array;
|
|
7
|
-
private
|
|
8
|
+
private getOpcode;
|
|
9
|
+
writeCommand(cmd: ServerCommand, protocol?: number): void;
|
|
8
10
|
writeServerData(protocol: number, serverCount: number, attractLoop: number, gameDir: string, playerNum: number, levelName: string): void;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
writeTempEntity(type: number, pos: Vec3, pos2?: Vec3, dir?: Vec3, cnt?: number, color?: number, ent?: number, srcEnt?: number, destEnt?: number, protocolVersion?: number): void;
|
|
20
|
-
writeSound(mask: number, soundNum: number, volume?: number, attenuation?: number, offset?: number, ent?: number, pos?: Vec3, protocolVersion?: number): void;
|
|
21
|
-
writeDisconnect(protocolVersion?: number): void;
|
|
22
|
-
writeReconnect(protocolVersion?: number): void;
|
|
23
|
-
writeFrame(frame: FrameData, protocolVersion: number): void;
|
|
11
|
+
writeConfigString(index: number, str: string): void;
|
|
12
|
+
writeStuffText(text: string): void;
|
|
13
|
+
writeCenterPrint(msg: string): void;
|
|
14
|
+
writePrint(level: number, msg: string): void;
|
|
15
|
+
writeLayout(layout: string): void;
|
|
16
|
+
writeInventory(inventory: number[]): void;
|
|
17
|
+
writeMuzzleFlash(ent: number, weapon: number): void;
|
|
18
|
+
writeMuzzleFlash2(ent: number, weapon: number): void;
|
|
19
|
+
writeSound(mask: number, soundNum: number, volume: number, attenuation: number, offset: number, ent: number, pos: any, protocol: number): void;
|
|
20
|
+
writeTempEntity(type: number, pos: any, pos2?: any, dir?: any, cnt?: number, color?: number, ent?: number, srcEnt?: number, destEnt?: number): void;
|
|
24
21
|
writePlayerState(ps: ProtocolPlayerState): void;
|
|
25
|
-
writePacketEntities(entities: EntityState[], delta: boolean,
|
|
26
|
-
|
|
22
|
+
writePacketEntities(entities: EntityState[], delta: boolean, protocol: number): void;
|
|
23
|
+
writeFrame(frame: FrameData, protocol: number): void;
|
|
24
|
+
writeDeltaEntity(from: EntityState, to: EntityState, force: boolean): void;
|
|
27
25
|
}
|
|
28
26
|
//# sourceMappingURL=writer.d.ts.map
|