@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.
Files changed (209) hide show
  1. package/dist/browser/index.global.js +2 -0
  2. package/dist/browser/index.global.js.map +1 -0
  3. package/dist/cjs/index.cjs +6569 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/esm/index.js +6200 -0
  6. package/dist/esm/index.js.map +1 -0
  7. package/dist/tsconfig.tsbuildinfo +1 -0
  8. package/dist/types/audio/constants.d.ts +24 -0
  9. package/dist/types/audio/constants.d.ts.map +1 -0
  10. package/dist/types/bsp/collision.d.ts +201 -0
  11. package/dist/types/bsp/collision.d.ts.map +1 -0
  12. package/dist/types/bsp/contents.d.ts +72 -0
  13. package/dist/types/bsp/contents.d.ts.map +1 -0
  14. package/dist/types/bsp/spatial.d.ts +13 -0
  15. package/dist/types/bsp/spatial.d.ts.map +1 -0
  16. package/dist/types/index.d.ts +38 -0
  17. package/dist/types/index.d.ts.map +1 -0
  18. package/dist/types/inventory-helpers.d.ts +19 -0
  19. package/dist/types/inventory-helpers.d.ts.map +1 -0
  20. package/dist/types/io/binaryStream.d.ts +38 -0
  21. package/dist/types/io/binaryStream.d.ts.map +1 -0
  22. package/dist/types/io/binaryWriter.d.ts +26 -0
  23. package/dist/types/io/binaryWriter.d.ts.map +1 -0
  24. package/dist/types/io/index.d.ts +4 -0
  25. package/dist/types/io/index.d.ts.map +1 -0
  26. package/dist/types/io/messageBuilder.d.ts +21 -0
  27. package/dist/types/io/messageBuilder.d.ts.map +1 -0
  28. package/dist/types/items/ammo.d.ts +40 -0
  29. package/dist/types/items/ammo.d.ts.map +1 -0
  30. package/dist/types/items/index.d.ts +8 -0
  31. package/dist/types/items/index.d.ts.map +1 -0
  32. package/dist/types/items/powerups.d.ts +31 -0
  33. package/dist/types/items/powerups.d.ts.map +1 -0
  34. package/dist/types/items/weaponInfo.d.ts +5 -0
  35. package/dist/types/items/weaponInfo.d.ts.map +1 -0
  36. package/dist/types/items/weapons.d.ts +27 -0
  37. package/dist/types/items/weapons.d.ts.map +1 -0
  38. package/dist/types/math/angles.d.ts +19 -0
  39. package/dist/types/math/angles.d.ts.map +1 -0
  40. package/dist/types/math/anorms.d.ts +2 -0
  41. package/dist/types/math/anorms.d.ts.map +1 -0
  42. package/dist/types/math/color.d.ts +12 -0
  43. package/dist/types/math/color.d.ts.map +1 -0
  44. package/dist/types/math/mat4.d.ts +7 -0
  45. package/dist/types/math/mat4.d.ts.map +1 -0
  46. package/dist/types/math/random.d.ts +60 -0
  47. package/dist/types/math/random.d.ts.map +1 -0
  48. package/dist/types/math/vec3.d.ts +79 -0
  49. package/dist/types/math/vec3.d.ts.map +1 -0
  50. package/dist/types/net/driver.d.ts +10 -0
  51. package/dist/types/net/driver.d.ts.map +1 -0
  52. package/dist/types/net/index.d.ts +3 -0
  53. package/dist/types/net/index.d.ts.map +1 -0
  54. package/dist/types/net/netchan.d.ts +85 -0
  55. package/dist/types/net/netchan.d.ts.map +1 -0
  56. package/dist/types/pmove/apply.d.ts +5 -0
  57. package/dist/types/pmove/apply.d.ts.map +1 -0
  58. package/dist/types/pmove/categorize.d.ts +36 -0
  59. package/dist/types/pmove/categorize.d.ts.map +1 -0
  60. package/dist/types/pmove/config.d.ts +5 -0
  61. package/dist/types/pmove/config.d.ts.map +1 -0
  62. package/dist/types/pmove/constants.d.ts +76 -0
  63. package/dist/types/pmove/constants.d.ts.map +1 -0
  64. package/dist/types/pmove/currents.d.ts +58 -0
  65. package/dist/types/pmove/currents.d.ts.map +1 -0
  66. package/dist/types/pmove/dimensions.d.ts +14 -0
  67. package/dist/types/pmove/dimensions.d.ts.map +1 -0
  68. package/dist/types/pmove/duck.d.ts +39 -0
  69. package/dist/types/pmove/duck.d.ts.map +1 -0
  70. package/dist/types/pmove/fly.d.ts +34 -0
  71. package/dist/types/pmove/fly.d.ts.map +1 -0
  72. package/dist/types/pmove/index.d.ts +18 -0
  73. package/dist/types/pmove/index.d.ts.map +1 -0
  74. package/dist/types/pmove/jump.d.ts +28 -0
  75. package/dist/types/pmove/jump.d.ts.map +1 -0
  76. package/dist/types/pmove/move.d.ts +78 -0
  77. package/dist/types/pmove/move.d.ts.map +1 -0
  78. package/dist/types/pmove/pmove.d.ts +40 -0
  79. package/dist/types/pmove/pmove.d.ts.map +1 -0
  80. package/dist/types/pmove/slide.d.ts +63 -0
  81. package/dist/types/pmove/slide.d.ts.map +1 -0
  82. package/dist/types/pmove/snap.d.ts +40 -0
  83. package/dist/types/pmove/snap.d.ts.map +1 -0
  84. package/dist/types/pmove/special.d.ts +39 -0
  85. package/dist/types/pmove/special.d.ts.map +1 -0
  86. package/dist/types/pmove/stuck.d.ts +21 -0
  87. package/dist/types/pmove/stuck.d.ts.map +1 -0
  88. package/dist/types/pmove/types.d.ts +72 -0
  89. package/dist/types/pmove/types.d.ts.map +1 -0
  90. package/dist/types/pmove/view.d.ts +19 -0
  91. package/dist/types/pmove/view.d.ts.map +1 -0
  92. package/dist/types/pmove/water.d.ts +21 -0
  93. package/dist/types/pmove/water.d.ts.map +1 -0
  94. package/dist/types/protocol/bitpack.d.ts +17 -0
  95. package/dist/types/protocol/bitpack.d.ts.map +1 -0
  96. package/dist/types/protocol/configstrings.d.ts +73 -0
  97. package/dist/types/protocol/configstrings.d.ts.map +1 -0
  98. package/dist/types/protocol/constants.d.ts +36 -0
  99. package/dist/types/protocol/constants.d.ts.map +1 -0
  100. package/dist/types/protocol/contracts.d.ts +17 -0
  101. package/dist/types/protocol/contracts.d.ts.map +1 -0
  102. package/dist/types/protocol/crc.d.ts +5 -0
  103. package/dist/types/protocol/crc.d.ts.map +1 -0
  104. package/dist/types/protocol/cvar.d.ts +15 -0
  105. package/dist/types/protocol/cvar.d.ts.map +1 -0
  106. package/dist/types/protocol/effects.d.ts +33 -0
  107. package/dist/types/protocol/effects.d.ts.map +1 -0
  108. package/dist/types/protocol/entity.d.ts +46 -0
  109. package/dist/types/protocol/entity.d.ts.map +1 -0
  110. package/dist/types/protocol/entityEvent.d.ts +13 -0
  111. package/dist/types/protocol/entityEvent.d.ts.map +1 -0
  112. package/dist/types/protocol/entityState.d.ts +26 -0
  113. package/dist/types/protocol/entityState.d.ts.map +1 -0
  114. package/dist/types/protocol/index.d.ts +19 -0
  115. package/dist/types/protocol/index.d.ts.map +1 -0
  116. package/dist/types/protocol/layout.d.ts +9 -0
  117. package/dist/types/protocol/layout.d.ts.map +1 -0
  118. package/dist/types/protocol/ops.d.ts +44 -0
  119. package/dist/types/protocol/ops.d.ts.map +1 -0
  120. package/dist/types/protocol/player-state.d.ts +40 -0
  121. package/dist/types/protocol/player-state.d.ts.map +1 -0
  122. package/dist/types/protocol/player.d.ts +28 -0
  123. package/dist/types/protocol/player.d.ts.map +1 -0
  124. package/dist/types/protocol/renderFx.d.ts +23 -0
  125. package/dist/types/protocol/renderFx.d.ts.map +1 -0
  126. package/dist/types/protocol/stats.d.ts +61 -0
  127. package/dist/types/protocol/stats.d.ts.map +1 -0
  128. package/dist/types/protocol/tempEntity.d.ts +67 -0
  129. package/dist/types/protocol/tempEntity.d.ts.map +1 -0
  130. package/dist/types/protocol/usercmd.d.ts +33 -0
  131. package/dist/types/protocol/usercmd.d.ts.map +1 -0
  132. package/dist/types/protocol/writeUserCmd.d.ts +4 -0
  133. package/dist/types/protocol/writeUserCmd.d.ts.map +1 -0
  134. package/dist/types/replay/index.d.ts +3 -0
  135. package/dist/types/replay/index.d.ts.map +1 -0
  136. package/dist/types/replay/io.d.ts +7 -0
  137. package/dist/types/replay/io.d.ts.map +1 -0
  138. package/dist/types/replay/schema.d.ts +41 -0
  139. package/dist/types/replay/schema.d.ts.map +1 -0
  140. package/dist/types/testing.d.ts +6 -0
  141. package/dist/types/testing.d.ts.map +1 -0
  142. package/package.json +43 -0
  143. package/src/audio/constants.ts +35 -0
  144. package/src/bsp/collision.ts +1075 -0
  145. package/src/bsp/contents.ts +108 -0
  146. package/src/bsp/spatial.ts +116 -0
  147. package/src/index.ts +37 -0
  148. package/src/inventory-helpers.ts +81 -0
  149. package/src/io/binaryStream.ts +159 -0
  150. package/src/io/binaryWriter.ts +146 -0
  151. package/src/io/index.ts +3 -0
  152. package/src/io/messageBuilder.ts +117 -0
  153. package/src/items/ammo.ts +47 -0
  154. package/src/items/index.ts +8 -0
  155. package/src/items/powerups.ts +32 -0
  156. package/src/items/weaponInfo.ts +45 -0
  157. package/src/items/weapons.ts +28 -0
  158. package/src/math/angles.ts +135 -0
  159. package/src/math/anorms.ts +165 -0
  160. package/src/math/color.ts +42 -0
  161. package/src/math/mat4.ts +58 -0
  162. package/src/math/random.ts +182 -0
  163. package/src/math/vec3.ts +379 -0
  164. package/src/net/driver.ts +9 -0
  165. package/src/net/index.ts +2 -0
  166. package/src/net/netchan.ts +451 -0
  167. package/src/pmove/apply.ts +151 -0
  168. package/src/pmove/categorize.ts +162 -0
  169. package/src/pmove/config.ts +5 -0
  170. package/src/pmove/constants.ts +94 -0
  171. package/src/pmove/currents.ts +287 -0
  172. package/src/pmove/dimensions.ts +40 -0
  173. package/src/pmove/duck.ts +154 -0
  174. package/src/pmove/fly.ts +197 -0
  175. package/src/pmove/index.ts +18 -0
  176. package/src/pmove/jump.ts +92 -0
  177. package/src/pmove/move.ts +527 -0
  178. package/src/pmove/pmove.ts +446 -0
  179. package/src/pmove/slide.ts +267 -0
  180. package/src/pmove/snap.ts +89 -0
  181. package/src/pmove/special.ts +207 -0
  182. package/src/pmove/stuck.ts +258 -0
  183. package/src/pmove/types.ts +82 -0
  184. package/src/pmove/view.ts +57 -0
  185. package/src/pmove/water.ts +56 -0
  186. package/src/protocol/bitpack.ts +139 -0
  187. package/src/protocol/configstrings.ts +104 -0
  188. package/src/protocol/constants.ts +40 -0
  189. package/src/protocol/contracts.ts +149 -0
  190. package/src/protocol/crc.ts +32 -0
  191. package/src/protocol/cvar.ts +15 -0
  192. package/src/protocol/effects.ts +33 -0
  193. package/src/protocol/entity.ts +304 -0
  194. package/src/protocol/entityEvent.ts +14 -0
  195. package/src/protocol/entityState.ts +28 -0
  196. package/src/protocol/index.ts +19 -0
  197. package/src/protocol/layout.ts +9 -0
  198. package/src/protocol/ops.ts +49 -0
  199. package/src/protocol/player-state.ts +51 -0
  200. package/src/protocol/player.ts +165 -0
  201. package/src/protocol/renderFx.ts +22 -0
  202. package/src/protocol/stats.ts +161 -0
  203. package/src/protocol/tempEntity.ts +69 -0
  204. package/src/protocol/usercmd.ts +63 -0
  205. package/src/protocol/writeUserCmd.ts +30 -0
  206. package/src/replay/index.ts +2 -0
  207. package/src/replay/io.ts +37 -0
  208. package/src/replay/schema.ts +42 -0
  209. 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,4 @@
1
+ import { BinaryWriter } from '../io/binaryWriter.js';
2
+ import { UserCommand } from './usercmd.js';
3
+ export declare function writeUserCommand(writer: BinaryWriter, cmd: UserCommand): void;
4
+ //# sourceMappingURL=writeUserCmd.d.ts.map
@@ -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,3 @@
1
+ export * from './schema.js';
2
+ export * from './io.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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
+ }