@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.
@@ -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;IAE/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEpC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACrC;AASD,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;IAyBtB,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,gBAAgB;YAsBV,eAAe;CAgMhC"}
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 { ProtocolPlayerState, EntityState } from './parser.js';
2
- import { PlaybackOffset, DemoPlaybackController } from './playback.js';
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
- * Extracts a raw clip from a demo between two offsets.
24
- * Simply copies the message blocks.
25
- */
26
- extractClip(demo: Uint8Array, start: PlaybackOffset, end: PlaybackOffset, controller: DemoPlaybackController): Uint8Array;
27
- extractDemoRange(demo: Uint8Array, startFrame: number, endFrame: number): Uint8Array;
28
- /**
29
- * Captures the world state at a specific offset by playing the demo up to that point.
30
- */
31
- captureWorldState(demo: Uint8Array, atOffset: PlaybackOffset): Promise<WorldState>;
32
- extractStandaloneClip(demo: Uint8Array, start: PlaybackOffset, end: PlaybackOffset, worldState: WorldState): Uint8Array;
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":"AAEA,OAAO,EAA+C,mBAAmB,EAAE,WAAW,EAAgc,MAAM,aAAa,CAAC;AAG1iB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAiB,MAAM,eAAe,CAAC;AAGtF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,CAAC;IAEjC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IAEpB;;;OAGG;IACI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,sBAAsB,GAAG,UAAU;IAqCzH,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAU3F;;OAEG;IACU,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA+GxF,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;CA2JjI"}
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 './parser.js';
2
- export declare function applyEntityDelta(to: EntityState, from: EntityState): void;
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":"AAAA,OAAO,EAAE,WAAW,EAAuV,MAAM,aAAa,CAAC;AAE/X,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAgDzE"}
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
- export declare const PROTOCOL_VERSION_RERELEASE = 2023;
4
- export declare const U_ORIGIN1: number;
5
- export declare const U_ORIGIN2: number;
6
- export declare const U_ANGLE2: number;
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;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAG/C,eAAO,MAAM,SAAS,QAAa,CAAC;AACpC,eAAO,MAAM,SAAS,QAAa,CAAC;AACpC,eAAO,MAAM,QAAQ,QAAc,CAAC;AACpC,eAAO,MAAM,QAAQ,QAAc,CAAC;AACpC,eAAO,MAAM,QAAQ,QAAc,CAAC;AACpC,eAAO,MAAM,OAAO,QAAe,CAAC;AACpC,eAAO,MAAM,QAAQ,QAAc,CAAC;AACpC,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,eAAO,MAAM,UAAU,QAAY,CAAC;AACpC,eAAO,MAAM,SAAS,QAAa,CAAC;AACpC,eAAO,MAAM,QAAQ,QAAe,CAAC;AACrC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,WAAW,QAAY,CAAC;AACrC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,UAAU,QAAa,CAAC;AACrC,eAAO,MAAM,WAAW,QAAY,CAAC;AAErC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,SAAS,QAAc,CAAC;AACrC,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,eAAO,MAAM,WAAW,QAAY,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAe,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAe,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAe,CAAC;AACrC,eAAO,MAAM,WAAW,QAAY,CAAC;AAErC,eAAO,MAAM,WAAW,QAAY,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAe,CAAC;AACrC,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,OAAO,QAAgB,CAAC;AAErC,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,eAAO,MAAM,eAAe,QAAY,CAAC;AACzC,eAAO,MAAM,aAAa,QAAc,CAAC;AACzC,eAAO,MAAM,WAAW,QAAqB,CAAC;AAE9C,eAAO,MAAM,uBAAuB,QAAW,CAAC;AAChD,eAAO,MAAM,YAAY,QAAsB,CAAC;AAChD,eAAO,MAAM,gBAAgB,QAAkB,CAAC;AAOhD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,sBAAsB,QAAO,WAyBxC,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,8BAA8B,QAAO,mBAwBhD,CAAC;AAEH,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;KAC3B,CAAC;CACL;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IAClC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5K,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACjI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpJ,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,CAAC;IACrB,WAAW,IAAI,IAAI,CAAC;IACpB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,cAAc,CAAC,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACtD,oBAAoB,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,IAAI,IAAI,CAAC;IACxB,QAAQ,CAAC,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAC/C,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,mBAAmB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;CACzB;AAmDD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAC,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,eAAe,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE,qBAAqB,EAAE,UAAU,GAAE,OAAe;IAUzG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,kBAAkB,IAAI,MAAM;IAI5B,aAAa,IAAI,MAAM;IAI9B,OAAO,CAAC,gBAAgB;IAkCjB,YAAY,IAAI,IAAI;IAgF3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;IAqDvB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU;IA4ClB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,UAAU;CA+CnB"}
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":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,sBAAsB,QAAO,WAyBxC,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,8BAA8B,QAAO,mBAwBhD,CAAC;AAEH,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;KAC3B,CAAC;CACL;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,IAAI,CAAC;CACb"}
@@ -1,28 +1,26 @@
1
- import { EntityState, ProtocolPlayerState, FrameData } from './parser.js';
2
- import { Vec3 } from '@quake2ts/shared';
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
- constructor();
5
+ private protocol;
6
+ constructor(writer?: BinaryWriter, protocol?: number);
6
7
  getData(): Uint8Array;
7
- private writeCommand;
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
- writeServerDataRerelease(protocol: number, spawnCount: number, demoType: number, tickRate: number, gameDir: string, playerNum: number, levelName: string): void;
10
- writeConfigString(index: number, str: string, protocolVersion?: number): void;
11
- writeSpawnBaseline(entity: EntityState, protocolVersion: number): void;
12
- writeStuffText(text: string, protocolVersion?: number): void;
13
- writeCenterPrint(text: string, protocolVersion?: number): void;
14
- writePrint(level: number, text: string, protocolVersion?: number): void;
15
- writeLayout(layout: string, protocolVersion?: number): void;
16
- writeInventory(inventory: number[], protocolVersion?: number): void;
17
- writeMuzzleFlash(ent: number, weapon: number, protocolVersion?: number): void;
18
- writeMuzzleFlash2(ent: number, weapon: number, protocolVersion?: number): void;
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, protocolVersion: number): void;
26
- writeEntityState(to: EntityState, from: EntityState | null, force: boolean, protocolVersion: number): void;
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