@quake2ts/shared 0.0.1
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 +2 -0
- package/dist/browser/index.global.js.map +1 -0
- package/dist/cjs/index.cjs +6569 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +6200 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/audio/constants.d.ts +24 -0
- package/dist/types/audio/constants.d.ts.map +1 -0
- package/dist/types/bsp/collision.d.ts +201 -0
- package/dist/types/bsp/collision.d.ts.map +1 -0
- package/dist/types/bsp/contents.d.ts +72 -0
- package/dist/types/bsp/contents.d.ts.map +1 -0
- package/dist/types/bsp/spatial.d.ts +13 -0
- package/dist/types/bsp/spatial.d.ts.map +1 -0
- package/dist/types/index.d.ts +38 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/inventory-helpers.d.ts +19 -0
- package/dist/types/inventory-helpers.d.ts.map +1 -0
- package/dist/types/io/binaryStream.d.ts +38 -0
- package/dist/types/io/binaryStream.d.ts.map +1 -0
- package/dist/types/io/binaryWriter.d.ts +26 -0
- package/dist/types/io/binaryWriter.d.ts.map +1 -0
- package/dist/types/io/index.d.ts +4 -0
- package/dist/types/io/index.d.ts.map +1 -0
- package/dist/types/io/messageBuilder.d.ts +21 -0
- package/dist/types/io/messageBuilder.d.ts.map +1 -0
- package/dist/types/items/ammo.d.ts +40 -0
- package/dist/types/items/ammo.d.ts.map +1 -0
- package/dist/types/items/index.d.ts +8 -0
- package/dist/types/items/index.d.ts.map +1 -0
- package/dist/types/items/powerups.d.ts +31 -0
- package/dist/types/items/powerups.d.ts.map +1 -0
- package/dist/types/items/weaponInfo.d.ts +5 -0
- package/dist/types/items/weaponInfo.d.ts.map +1 -0
- package/dist/types/items/weapons.d.ts +27 -0
- package/dist/types/items/weapons.d.ts.map +1 -0
- package/dist/types/math/angles.d.ts +19 -0
- package/dist/types/math/angles.d.ts.map +1 -0
- package/dist/types/math/anorms.d.ts +2 -0
- package/dist/types/math/anorms.d.ts.map +1 -0
- package/dist/types/math/color.d.ts +12 -0
- package/dist/types/math/color.d.ts.map +1 -0
- package/dist/types/math/mat4.d.ts +7 -0
- package/dist/types/math/mat4.d.ts.map +1 -0
- package/dist/types/math/random.d.ts +60 -0
- package/dist/types/math/random.d.ts.map +1 -0
- package/dist/types/math/vec3.d.ts +79 -0
- package/dist/types/math/vec3.d.ts.map +1 -0
- package/dist/types/net/driver.d.ts +10 -0
- package/dist/types/net/driver.d.ts.map +1 -0
- package/dist/types/net/index.d.ts +3 -0
- package/dist/types/net/index.d.ts.map +1 -0
- package/dist/types/net/netchan.d.ts +85 -0
- package/dist/types/net/netchan.d.ts.map +1 -0
- package/dist/types/pmove/apply.d.ts +5 -0
- package/dist/types/pmove/apply.d.ts.map +1 -0
- package/dist/types/pmove/categorize.d.ts +36 -0
- package/dist/types/pmove/categorize.d.ts.map +1 -0
- package/dist/types/pmove/config.d.ts +5 -0
- package/dist/types/pmove/config.d.ts.map +1 -0
- package/dist/types/pmove/constants.d.ts +76 -0
- package/dist/types/pmove/constants.d.ts.map +1 -0
- package/dist/types/pmove/currents.d.ts +58 -0
- package/dist/types/pmove/currents.d.ts.map +1 -0
- package/dist/types/pmove/dimensions.d.ts +14 -0
- package/dist/types/pmove/dimensions.d.ts.map +1 -0
- package/dist/types/pmove/duck.d.ts +39 -0
- package/dist/types/pmove/duck.d.ts.map +1 -0
- package/dist/types/pmove/fly.d.ts +34 -0
- package/dist/types/pmove/fly.d.ts.map +1 -0
- package/dist/types/pmove/index.d.ts +18 -0
- package/dist/types/pmove/index.d.ts.map +1 -0
- package/dist/types/pmove/jump.d.ts +28 -0
- package/dist/types/pmove/jump.d.ts.map +1 -0
- package/dist/types/pmove/move.d.ts +78 -0
- package/dist/types/pmove/move.d.ts.map +1 -0
- package/dist/types/pmove/pmove.d.ts +40 -0
- package/dist/types/pmove/pmove.d.ts.map +1 -0
- package/dist/types/pmove/slide.d.ts +63 -0
- package/dist/types/pmove/slide.d.ts.map +1 -0
- package/dist/types/pmove/snap.d.ts +40 -0
- package/dist/types/pmove/snap.d.ts.map +1 -0
- package/dist/types/pmove/special.d.ts +39 -0
- package/dist/types/pmove/special.d.ts.map +1 -0
- package/dist/types/pmove/stuck.d.ts +21 -0
- package/dist/types/pmove/stuck.d.ts.map +1 -0
- package/dist/types/pmove/types.d.ts +72 -0
- package/dist/types/pmove/types.d.ts.map +1 -0
- package/dist/types/pmove/view.d.ts +19 -0
- package/dist/types/pmove/view.d.ts.map +1 -0
- package/dist/types/pmove/water.d.ts +21 -0
- package/dist/types/pmove/water.d.ts.map +1 -0
- package/dist/types/protocol/bitpack.d.ts +17 -0
- package/dist/types/protocol/bitpack.d.ts.map +1 -0
- package/dist/types/protocol/configstrings.d.ts +73 -0
- package/dist/types/protocol/configstrings.d.ts.map +1 -0
- package/dist/types/protocol/constants.d.ts +36 -0
- package/dist/types/protocol/constants.d.ts.map +1 -0
- package/dist/types/protocol/contracts.d.ts +17 -0
- package/dist/types/protocol/contracts.d.ts.map +1 -0
- package/dist/types/protocol/crc.d.ts +5 -0
- package/dist/types/protocol/crc.d.ts.map +1 -0
- package/dist/types/protocol/cvar.d.ts +15 -0
- package/dist/types/protocol/cvar.d.ts.map +1 -0
- package/dist/types/protocol/effects.d.ts +33 -0
- package/dist/types/protocol/effects.d.ts.map +1 -0
- package/dist/types/protocol/entity.d.ts +46 -0
- package/dist/types/protocol/entity.d.ts.map +1 -0
- package/dist/types/protocol/entityEvent.d.ts +13 -0
- package/dist/types/protocol/entityEvent.d.ts.map +1 -0
- package/dist/types/protocol/entityState.d.ts +26 -0
- package/dist/types/protocol/entityState.d.ts.map +1 -0
- package/dist/types/protocol/index.d.ts +19 -0
- package/dist/types/protocol/index.d.ts.map +1 -0
- package/dist/types/protocol/layout.d.ts +9 -0
- package/dist/types/protocol/layout.d.ts.map +1 -0
- package/dist/types/protocol/ops.d.ts +44 -0
- package/dist/types/protocol/ops.d.ts.map +1 -0
- package/dist/types/protocol/player-state.d.ts +40 -0
- package/dist/types/protocol/player-state.d.ts.map +1 -0
- package/dist/types/protocol/player.d.ts +28 -0
- package/dist/types/protocol/player.d.ts.map +1 -0
- package/dist/types/protocol/renderFx.d.ts +23 -0
- package/dist/types/protocol/renderFx.d.ts.map +1 -0
- package/dist/types/protocol/stats.d.ts +61 -0
- package/dist/types/protocol/stats.d.ts.map +1 -0
- package/dist/types/protocol/tempEntity.d.ts +67 -0
- package/dist/types/protocol/tempEntity.d.ts.map +1 -0
- package/dist/types/protocol/usercmd.d.ts +33 -0
- package/dist/types/protocol/usercmd.d.ts.map +1 -0
- package/dist/types/protocol/writeUserCmd.d.ts +4 -0
- package/dist/types/protocol/writeUserCmd.d.ts.map +1 -0
- package/dist/types/replay/index.d.ts +3 -0
- package/dist/types/replay/index.d.ts.map +1 -0
- package/dist/types/replay/io.d.ts +7 -0
- package/dist/types/replay/io.d.ts.map +1 -0
- package/dist/types/replay/schema.d.ts +41 -0
- package/dist/types/replay/schema.d.ts.map +1 -0
- package/dist/types/testing.d.ts +6 -0
- package/dist/types/testing.d.ts.map +1 -0
- package/package.json +43 -0
- package/src/audio/constants.ts +35 -0
- package/src/bsp/collision.ts +1075 -0
- package/src/bsp/contents.ts +108 -0
- package/src/bsp/spatial.ts +116 -0
- package/src/index.ts +37 -0
- package/src/inventory-helpers.ts +81 -0
- package/src/io/binaryStream.ts +159 -0
- package/src/io/binaryWriter.ts +146 -0
- package/src/io/index.ts +3 -0
- package/src/io/messageBuilder.ts +117 -0
- package/src/items/ammo.ts +47 -0
- package/src/items/index.ts +8 -0
- package/src/items/powerups.ts +32 -0
- package/src/items/weaponInfo.ts +45 -0
- package/src/items/weapons.ts +28 -0
- package/src/math/angles.ts +135 -0
- package/src/math/anorms.ts +165 -0
- package/src/math/color.ts +42 -0
- package/src/math/mat4.ts +58 -0
- package/src/math/random.ts +182 -0
- package/src/math/vec3.ts +379 -0
- package/src/net/driver.ts +9 -0
- package/src/net/index.ts +2 -0
- package/src/net/netchan.ts +451 -0
- package/src/pmove/apply.ts +151 -0
- package/src/pmove/categorize.ts +162 -0
- package/src/pmove/config.ts +5 -0
- package/src/pmove/constants.ts +94 -0
- package/src/pmove/currents.ts +287 -0
- package/src/pmove/dimensions.ts +40 -0
- package/src/pmove/duck.ts +154 -0
- package/src/pmove/fly.ts +197 -0
- package/src/pmove/index.ts +18 -0
- package/src/pmove/jump.ts +92 -0
- package/src/pmove/move.ts +527 -0
- package/src/pmove/pmove.ts +446 -0
- package/src/pmove/slide.ts +267 -0
- package/src/pmove/snap.ts +89 -0
- package/src/pmove/special.ts +207 -0
- package/src/pmove/stuck.ts +258 -0
- package/src/pmove/types.ts +82 -0
- package/src/pmove/view.ts +57 -0
- package/src/pmove/water.ts +56 -0
- package/src/protocol/bitpack.ts +139 -0
- package/src/protocol/configstrings.ts +104 -0
- package/src/protocol/constants.ts +40 -0
- package/src/protocol/contracts.ts +149 -0
- package/src/protocol/crc.ts +32 -0
- package/src/protocol/cvar.ts +15 -0
- package/src/protocol/effects.ts +33 -0
- package/src/protocol/entity.ts +304 -0
- package/src/protocol/entityEvent.ts +14 -0
- package/src/protocol/entityState.ts +28 -0
- package/src/protocol/index.ts +19 -0
- package/src/protocol/layout.ts +9 -0
- package/src/protocol/ops.ts +49 -0
- package/src/protocol/player-state.ts +51 -0
- package/src/protocol/player.ts +165 -0
- package/src/protocol/renderFx.ts +22 -0
- package/src/protocol/stats.ts +161 -0
- package/src/protocol/tempEntity.ts +69 -0
- package/src/protocol/usercmd.ts +63 -0
- package/src/protocol/writeUserCmd.ts +30 -0
- package/src/replay/index.ts +2 -0
- package/src/replay/io.ts +37 -0
- package/src/replay/schema.ts +42 -0
- package/src/testing.ts +200 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare enum RenderFx {
|
|
2
|
+
MinLight = 1,
|
|
3
|
+
ViewerModel = 2,
|
|
4
|
+
WeaponModel = 4,
|
|
5
|
+
FullBright = 8,
|
|
6
|
+
DepthHack = 16,
|
|
7
|
+
Translucent = 32,
|
|
8
|
+
FrameLerp = 64,
|
|
9
|
+
Beam = 128,
|
|
10
|
+
CustomLight = 256,
|
|
11
|
+
Glow = 512,
|
|
12
|
+
ShellRed = 1024,
|
|
13
|
+
ShellGreen = 2048,
|
|
14
|
+
ShellBlue = 4096,
|
|
15
|
+
IrVisible = 32768,
|
|
16
|
+
ShellDouble = 65536,
|
|
17
|
+
ShellHalfDam = 131072,
|
|
18
|
+
MinLightPlus = 262144,
|
|
19
|
+
ExtraLight = 524288,
|
|
20
|
+
BeamLightning = 1048576,
|
|
21
|
+
Flashlight = 2097152
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=renderFx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderFx.d.ts","sourceRoot":"","sources":["../../../src/protocol/renderFx.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,QAAQ,IAAI;IACZ,WAAW,IAAI;IACf,WAAW,IAAI;IACf,UAAU,IAAI;IACd,SAAS,KAAK;IACd,WAAW,KAAK;IAChB,SAAS,KAAK;IACd,IAAI,MAAM;IACV,WAAW,MAAM;IACjB,IAAI,MAAM;IACV,QAAQ,OAAO;IACf,UAAU,OAAO;IACjB,SAAS,OAAO;IAChB,SAAS,QAAQ;IACjB,WAAW,QAAQ;IACnB,YAAY,SAAS;IACrB,YAAY,SAAS;IACrB,UAAU,SAAS;IACnB,aAAa,UAAU;IACvB,UAAU,UAAU;CACrB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { PowerupId } from '../items/powerups.js';
|
|
2
|
+
export declare enum PlayerStat {
|
|
3
|
+
STAT_HEALTH_ICON = 0,
|
|
4
|
+
STAT_HEALTH = 1,
|
|
5
|
+
STAT_AMMO_ICON = 2,
|
|
6
|
+
STAT_AMMO = 3,
|
|
7
|
+
STAT_ARMOR_ICON = 4,
|
|
8
|
+
STAT_ARMOR = 5,
|
|
9
|
+
STAT_SELECTED_ICON = 6,
|
|
10
|
+
STAT_PICKUP_ICON = 7,
|
|
11
|
+
STAT_PICKUP_STRING = 8,
|
|
12
|
+
STAT_TIMER_ICON = 9,
|
|
13
|
+
STAT_TIMER = 10,
|
|
14
|
+
STAT_HELPICON = 11,
|
|
15
|
+
STAT_SELECTED_ITEM = 12,
|
|
16
|
+
STAT_LAYOUTS = 13,
|
|
17
|
+
STAT_FRAGS = 14,
|
|
18
|
+
STAT_FLASHES = 15,
|
|
19
|
+
STAT_CHASE = 16,
|
|
20
|
+
STAT_SPECTATOR = 17,
|
|
21
|
+
STAT_CTF_TEAM1_PIC = 18,
|
|
22
|
+
STAT_CTF_TEAM1_CAPS = 19,
|
|
23
|
+
STAT_CTF_TEAM2_PIC = 20,
|
|
24
|
+
STAT_CTF_TEAM2_CAPS = 21,
|
|
25
|
+
STAT_CTF_FLAG_PIC = 22,
|
|
26
|
+
STAT_CTF_JOINED_TEAM1_PIC = 23,
|
|
27
|
+
STAT_CTF_JOINED_TEAM2_PIC = 24,
|
|
28
|
+
STAT_CTF_TEAM1_HEADER = 25,
|
|
29
|
+
STAT_CTF_TEAM2_HEADER = 26,
|
|
30
|
+
STAT_CTF_TECH = 27,
|
|
31
|
+
STAT_CTF_ID_VIEW = 28,
|
|
32
|
+
STAT_CTF_MATCH = 29,
|
|
33
|
+
STAT_CTF_ID_VIEW_COLOR = 30,
|
|
34
|
+
STAT_CTF_TEAMINFO = 31,
|
|
35
|
+
STAT_WEAPONS_OWNED_1 = 32,
|
|
36
|
+
STAT_WEAPONS_OWNED_2 = 33,
|
|
37
|
+
STAT_AMMO_INFO_START = 34,
|
|
38
|
+
STAT_POWERUP_INFO_START = 41,
|
|
39
|
+
STAT_KEY_A = 44,
|
|
40
|
+
STAT_KEY_B = 45,
|
|
41
|
+
STAT_KEY_C = 46,
|
|
42
|
+
STAT_ACTIVE_WHEEL_WEAPON = 47,
|
|
43
|
+
STAT_COOP_RESPAWN = 48,
|
|
44
|
+
STAT_LIVES = 49,
|
|
45
|
+
STAT_HIT_MARKER = 50,
|
|
46
|
+
STAT_SELECTED_ITEM_NAME = 51,
|
|
47
|
+
STAT_HEALTH_BARS = 52,
|
|
48
|
+
STAT_ACTIVE_WEAPON = 53,
|
|
49
|
+
STAT_LAST = 54
|
|
50
|
+
}
|
|
51
|
+
export declare const AMMO_MAX = 12;
|
|
52
|
+
export declare const NUM_BITS_FOR_AMMO = 9;
|
|
53
|
+
export declare const NUM_AMMO_STATS: number;
|
|
54
|
+
export declare const POWERUP_MAX = 23;
|
|
55
|
+
export declare const NUM_BITS_FOR_POWERUP = 2;
|
|
56
|
+
export declare const NUM_POWERUP_STATS: number;
|
|
57
|
+
export declare function G_SetAmmoStat(stats: number[], ammoId: number, count: number): void;
|
|
58
|
+
export declare function G_GetAmmoStat(stats: number[], ammoId: number): number;
|
|
59
|
+
export declare function G_SetPowerupStat(stats: number[], powerupId: PowerupId | number, val: number): void;
|
|
60
|
+
export declare function G_GetPowerupStat(stats: number[], powerupId: PowerupId | number): number;
|
|
61
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/protocol/stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,oBAAY,UAAU;IAClB,gBAAgB,IAAI;IACpB,WAAW,IAAA;IACX,cAAc,IAAA;IACd,SAAS,IAAA;IACT,eAAe,IAAA;IACf,UAAU,IAAA;IACV,kBAAkB,IAAA;IAClB,gBAAgB,IAAA;IAChB,kBAAkB,IAAA;IAClB,eAAe,IAAA;IACf,UAAU,KAAA;IACV,aAAa,KAAA;IACb,kBAAkB,KAAA;IAClB,YAAY,KAAA;IACZ,UAAU,KAAA;IACV,YAAY,KAAA;IACZ,UAAU,KAAA;IACV,cAAc,KAAA;IAGd,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,iBAAiB,KAAK;IACtB,yBAAyB,KAAK;IAC9B,yBAAyB,KAAK;IAC9B,qBAAqB,KAAK;IAC1B,qBAAqB,KAAK;IAC1B,aAAa,KAAK;IAClB,gBAAgB,KAAK;IACrB,cAAc,KAAK;IACnB,sBAAsB,KAAK;IAC3B,iBAAiB,KAAK;IAGtB,oBAAoB,KAAK;IACzB,oBAAoB,KAAK;IAGzB,oBAAoB,KAAK;IAOzB,uBAAuB,KAAK;IAK5B,UAAU,KAAK;IACf,UAAU,KAAK;IACf,UAAU,KAAK;IAEf,wBAAwB,KAAK;IAC7B,iBAAiB,KAAK;IACtB,UAAU,KAAK;IACf,eAAe,KAAK;IACpB,uBAAuB,KAAK;IAC5B,gBAAgB,KAAK;IACrB,kBAAkB,KAAK;IAEvB,SAAS,KAAA;CACZ;AAGD,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,cAAc,QAAiD,CAAC;AAE7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,iBAAiB,QAAuD,CAAC;AAiCtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrE;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBlG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAYvF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare enum TempEntity {
|
|
2
|
+
GUNSHOT = 0,
|
|
3
|
+
BLOOD = 1,
|
|
4
|
+
BLASTER = 2,
|
|
5
|
+
RAILTRAIL = 3,
|
|
6
|
+
SHOTGUN = 4,
|
|
7
|
+
EXPLOSION1 = 5,
|
|
8
|
+
EXPLOSION2 = 6,
|
|
9
|
+
ROCKET_EXPLOSION = 7,
|
|
10
|
+
GRENADE_EXPLOSION = 8,
|
|
11
|
+
SPARKS = 9,
|
|
12
|
+
SPLASH = 10,
|
|
13
|
+
BUBBLETRAIL = 11,
|
|
14
|
+
SCREEN_SPARKS = 12,
|
|
15
|
+
SHIELD_SPARKS = 13,
|
|
16
|
+
BULLET_SPARKS = 14,
|
|
17
|
+
LASER_SPARKS = 15,
|
|
18
|
+
PARASITE_ATTACK = 16,
|
|
19
|
+
ROCKET_EXPLOSION_WATER = 17,
|
|
20
|
+
GRENADE_EXPLOSION_WATER = 18,
|
|
21
|
+
MEDIC_CABLE_ATTACK = 19,
|
|
22
|
+
BFG_EXPLOSION = 20,
|
|
23
|
+
BFG_BIGEXPLOSION = 21,
|
|
24
|
+
BOSSTPORT = 22,
|
|
25
|
+
BFG_LASER = 23,
|
|
26
|
+
GRAPPLE_CABLE = 24,
|
|
27
|
+
WELDING_SPARKS = 25,
|
|
28
|
+
GREENBLOOD = 26,
|
|
29
|
+
BLUEHYPERBLASTER = 27,
|
|
30
|
+
PLASMA_EXPLOSION = 28,
|
|
31
|
+
TUNNEL_SPARKS = 29,
|
|
32
|
+
BLASTER2 = 30,
|
|
33
|
+
RAILTRAIL2 = 31,
|
|
34
|
+
FLAME = 32,
|
|
35
|
+
LIGHTNING = 33,
|
|
36
|
+
DEBUGTRAIL = 34,
|
|
37
|
+
PLAIN_EXPLOSION = 35,
|
|
38
|
+
FLASHLIGHT = 36,
|
|
39
|
+
FORCEWALL = 37,
|
|
40
|
+
HEATBEAM = 38,
|
|
41
|
+
MONSTER_HEATBEAM = 39,
|
|
42
|
+
STEAM = 40,
|
|
43
|
+
BUBBLETRAIL2 = 41,
|
|
44
|
+
MOREBLOOD = 42,
|
|
45
|
+
HEATBEAM_SPARKS = 43,
|
|
46
|
+
HEATBEAM_STEAM = 44,
|
|
47
|
+
CHAINFIST_SMOKE = 45,
|
|
48
|
+
ELECTRIC_SPARKS = 46,
|
|
49
|
+
TRACKER_EXPLOSION = 47,
|
|
50
|
+
TELEPORT_EFFECT = 48,
|
|
51
|
+
DBALL_GOAL = 49,
|
|
52
|
+
WIDOWBEAMOUT = 50,
|
|
53
|
+
NUKEBLAST = 51,
|
|
54
|
+
WIDOWSPLASH = 52,
|
|
55
|
+
EXPLOSION1_BIG = 53,
|
|
56
|
+
EXPLOSION1_NP = 54,
|
|
57
|
+
FLECHETTE = 55,
|
|
58
|
+
BLUEHYPERBLASTER_KEX = 56,
|
|
59
|
+
BFG_ZAP = 57,
|
|
60
|
+
BERSERK_SLAM = 58,
|
|
61
|
+
GRAPPLE_CABLE_2 = 59,
|
|
62
|
+
POWER_SPLASH = 60,
|
|
63
|
+
LIGHTNING_BEAM = 61,
|
|
64
|
+
EXPLOSION1_NL = 62,
|
|
65
|
+
EXPLOSION2_NL = 63
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=tempEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tempEntity.d.ts","sourceRoot":"","sources":["../../../src/protocol/tempEntity.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU;IACpB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,OAAO,IAAI;IACX,SAAS,IAAI;IACb,OAAO,IAAI;IACX,UAAU,IAAI;IACd,UAAU,IAAI;IACd,gBAAgB,IAAI;IACpB,iBAAiB,IAAI;IACrB,MAAM,IAAI;IACV,MAAM,KAAK;IACX,WAAW,KAAK;IAChB,aAAa,KAAK;IAClB,aAAa,KAAK;IAClB,aAAa,KAAK;IAClB,YAAY,KAAK;IACjB,eAAe,KAAK;IACpB,sBAAsB,KAAK;IAC3B,uBAAuB,KAAK;IAC5B,kBAAkB,KAAK;IACvB,aAAa,KAAK;IAClB,gBAAgB,KAAK;IACrB,SAAS,KAAK;IACd,SAAS,KAAK;IACd,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,UAAU,KAAK;IACf,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IACrB,aAAa,KAAK;IAElB,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,KAAK,KAAK;IACV,SAAS,KAAK;IACd,UAAU,KAAK;IACf,eAAe,KAAK;IACpB,UAAU,KAAK;IACf,SAAS,KAAK;IACd,QAAQ,KAAK;IACb,gBAAgB,KAAK;IACrB,KAAK,KAAK;IACV,YAAY,KAAK;IACjB,SAAS,KAAK;IACd,eAAe,KAAK;IACpB,cAAc,KAAK;IACnB,eAAe,KAAK;IACpB,eAAe,KAAK;IACpB,iBAAiB,KAAK;IACtB,eAAe,KAAK;IACpB,UAAU,KAAK;IACf,YAAY,KAAK;IACjB,SAAS,KAAK;IACd,WAAW,KAAK;IAChB,cAAc,KAAK;IACnB,aAAa,KAAK;IAClB,SAAS,KAAK;IACd,oBAAoB,KAAK;IACzB,OAAO,KAAK;IACZ,YAAY,KAAK;IACjB,eAAe,KAAK;IACpB,YAAY,KAAK;IACjB,cAAc,KAAK;IACnB,aAAa,KAAK;IAClB,aAAa,KAAK;CACnB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Vec3 } from '../math/vec3.js';
|
|
2
|
+
import { PlayerButton } from '../pmove/constants.js';
|
|
3
|
+
export interface UserCommand {
|
|
4
|
+
readonly msec: number;
|
|
5
|
+
readonly buttons: PlayerButton;
|
|
6
|
+
readonly angles: Vec3;
|
|
7
|
+
readonly forwardmove: number;
|
|
8
|
+
readonly sidemove: number;
|
|
9
|
+
readonly upmove: number;
|
|
10
|
+
readonly serverFrame?: number;
|
|
11
|
+
readonly sequence: number;
|
|
12
|
+
readonly lightlevel: number;
|
|
13
|
+
readonly impulse: number;
|
|
14
|
+
}
|
|
15
|
+
export interface MouseDelta {
|
|
16
|
+
readonly deltaX: number;
|
|
17
|
+
readonly deltaY: number;
|
|
18
|
+
}
|
|
19
|
+
export interface MouseLookOptions {
|
|
20
|
+
readonly sensitivity: number;
|
|
21
|
+
readonly invertY: boolean;
|
|
22
|
+
readonly sensitivityX?: number;
|
|
23
|
+
readonly sensitivityY?: number;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_FORWARD_SPEED = 200;
|
|
26
|
+
export declare const DEFAULT_SIDE_SPEED = 200;
|
|
27
|
+
export declare const DEFAULT_UP_SPEED = 200;
|
|
28
|
+
export declare const DEFAULT_YAW_SPEED = 140;
|
|
29
|
+
export declare const DEFAULT_PITCH_SPEED = 150;
|
|
30
|
+
export declare const DEFAULT_MOUSE_SENSITIVITY = 3;
|
|
31
|
+
export declare function addViewAngles(current: Vec3, delta: Vec3): Vec3;
|
|
32
|
+
export declare function mouseDeltaToViewDelta(delta: MouseDelta, options: MouseLookOptions): Vec3;
|
|
33
|
+
//# sourceMappingURL=usercmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usercmd.d.ts","sourceRoot":"","sources":["../../../src/protocol/usercmd.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAW3C,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAM9D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CASxF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeUserCmd.d.ts","sourceRoot":"","sources":["../../../src/protocol/writeUserCmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA0B7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/replay/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReplaySession } from './schema.js';
|
|
2
|
+
import { UserCommand } from '../protocol/usercmd.js';
|
|
3
|
+
export declare function serializeReplay(session: ReplaySession): string;
|
|
4
|
+
export declare function deserializeReplay(json: string): ReplaySession;
|
|
5
|
+
export declare function createReplaySession(map: string, seed?: number): ReplaySession;
|
|
6
|
+
export declare function addReplayFrame(session: ReplaySession, cmd: UserCommand, serverFrame: number, startTime: number): void;
|
|
7
|
+
//# sourceMappingURL=io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/replay/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE9D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAS7D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAU7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAM9G"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { UserCommand } from '../protocol/usercmd.js';
|
|
2
|
+
export interface ReplayFrame {
|
|
3
|
+
/**
|
|
4
|
+
* The server frame number this command was executed on.
|
|
5
|
+
*/
|
|
6
|
+
serverFrame: number;
|
|
7
|
+
/**
|
|
8
|
+
* The command sent by the client.
|
|
9
|
+
*/
|
|
10
|
+
cmd: UserCommand;
|
|
11
|
+
/**
|
|
12
|
+
* The timestamp (in ms) relative to start of recording.
|
|
13
|
+
*/
|
|
14
|
+
timestamp: number;
|
|
15
|
+
/**
|
|
16
|
+
* The hash of the game state AFTER this frame was executed.
|
|
17
|
+
* Optional for backward compatibility or lightweight recording.
|
|
18
|
+
*/
|
|
19
|
+
stateHash?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ReplaySession {
|
|
22
|
+
/**
|
|
23
|
+
* Metadata about the recording.
|
|
24
|
+
*/
|
|
25
|
+
metadata: {
|
|
26
|
+
map: string;
|
|
27
|
+
date: string;
|
|
28
|
+
version: string;
|
|
29
|
+
seed?: number;
|
|
30
|
+
gravity?: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
z: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The sequence of inputs.
|
|
38
|
+
*/
|
|
39
|
+
frames: ReplayFrame[];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/replay/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,GAAG,EAAE,WAAW,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,QAAQ,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,CAAC;IAEF;;OAEG;IACH,MAAM,EAAE,WAAW,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PmoveTraceFn } from './pmove/types.js';
|
|
2
|
+
import type { Vec3 } from './math/vec3.js';
|
|
3
|
+
export declare const intersects: (end: Vec3, maxs: Vec3, mins: Vec3, boxMins: Vec3, boxMaxs: Vec3) => boolean;
|
|
4
|
+
export declare const stairTrace: PmoveTraceFn;
|
|
5
|
+
export declare const ladderTrace: PmoveTraceFn;
|
|
6
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAG3C,eAAO,MAAM,UAAU,GAAI,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,SAAS,IAAI,EAAE,SAAS,IAAI,KAAG,OAS5F,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAiHxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAqEzB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quake2ts/shared",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Shared math, physics, and protocol helpers for the Quake II TypeScript port.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/cjs/index.cjs",
|
|
7
|
+
"module": "./dist/esm/index.js",
|
|
8
|
+
"types": "./dist/types/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/types/index.d.ts",
|
|
12
|
+
"import": "./dist/esm/index.js",
|
|
13
|
+
"require": "./dist/cjs/index.cjs",
|
|
14
|
+
"default": "./dist/esm/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./browser": {
|
|
17
|
+
"types": "./dist/types/index.d.ts",
|
|
18
|
+
"default": "./dist/browser/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./testing": "./src/testing.ts",
|
|
21
|
+
"./bsp/collision": "./src/bsp/collision.ts",
|
|
22
|
+
"./math/vec3": "./src/math/vec3.ts"
|
|
23
|
+
},
|
|
24
|
+
"unpkg": "./dist/browser/index.js",
|
|
25
|
+
"jsdelivr": "./dist/browser/index.js",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"src"
|
|
29
|
+
],
|
|
30
|
+
"sideEffects": false,
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"gl-matrix": "^3.4.4",
|
|
33
|
+
"tsup": "^8.1.0"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "pnpm run build:types && pnpm run build:bundles",
|
|
37
|
+
"build:types": "tsc -b",
|
|
38
|
+
"build:bundles": "tsup",
|
|
39
|
+
"test": "pnpm run test:unit",
|
|
40
|
+
"test:unit": "TEST_TYPE=unit vitest run",
|
|
41
|
+
"test:integration": "TEST_TYPE=integration vitest run"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const MAX_SOUND_CHANNELS = 32;
|
|
2
|
+
|
|
3
|
+
// Sound channel identifiers and flags from the rerelease game headers.
|
|
4
|
+
export enum SoundChannel {
|
|
5
|
+
Auto = 0,
|
|
6
|
+
Weapon = 1,
|
|
7
|
+
Voice = 2,
|
|
8
|
+
Item = 3,
|
|
9
|
+
Body = 4,
|
|
10
|
+
Aux = 5,
|
|
11
|
+
Footstep = 6,
|
|
12
|
+
Aux3 = 7,
|
|
13
|
+
|
|
14
|
+
NoPhsAdd = 1 << 3,
|
|
15
|
+
Reliable = 1 << 4,
|
|
16
|
+
ForcePos = 1 << 5,
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const ATTN_LOOP_NONE = -1;
|
|
20
|
+
export const ATTN_NONE = 0;
|
|
21
|
+
export const ATTN_NORM = 1;
|
|
22
|
+
export const ATTN_IDLE = 2;
|
|
23
|
+
export const ATTN_STATIC = 3;
|
|
24
|
+
|
|
25
|
+
export const SOUND_FULLVOLUME = 80;
|
|
26
|
+
export const SOUND_LOOP_ATTENUATE = 0.003;
|
|
27
|
+
|
|
28
|
+
export function attenuationToDistanceMultiplier(attenuation: number): number {
|
|
29
|
+
return attenuation * 0.001;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function calculateMaxAudibleDistance(attenuation: number): number {
|
|
33
|
+
const distMult = attenuationToDistanceMultiplier(attenuation);
|
|
34
|
+
return distMult <= 0 ? Number.POSITIVE_INFINITY : SOUND_FULLVOLUME + 1 / distMult;
|
|
35
|
+
}
|