@rydr/game-sdk 9.12.0 → 10.0.0

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 (87) hide show
  1. package/README.md +10 -6
  2. package/dist/client/PlatformClient.d.ts +30 -0
  3. package/dist/client/PlatformClient.d.ts.map +1 -1
  4. package/dist/client/PlatformClient.js +61 -1
  5. package/dist/client/PlatformClient.js.map +1 -1
  6. package/dist/host/PlatformHost.d.ts +31 -2
  7. package/dist/host/PlatformHost.d.ts.map +1 -1
  8. package/dist/host/PlatformHost.js +10 -0
  9. package/dist/host/PlatformHost.js.map +1 -1
  10. package/dist/protocol/buttons.d.ts +51 -7
  11. package/dist/protocol/buttons.d.ts.map +1 -1
  12. package/dist/protocol/buttons.js +72 -0
  13. package/dist/protocol/buttons.js.map +1 -1
  14. package/dist/protocol/gameMenu.d.ts +66 -0
  15. package/dist/protocol/gameMenu.d.ts.map +1 -0
  16. package/dist/protocol/gameMenu.js +58 -0
  17. package/dist/protocol/gameMenu.js.map +1 -0
  18. package/dist/protocol/glyphs.d.ts +2 -2
  19. package/dist/protocol/glyphs.d.ts.map +1 -1
  20. package/dist/protocol/glyphs.js +14 -25
  21. package/dist/protocol/glyphs.js.map +1 -1
  22. package/dist/protocol/guards.d.ts.map +1 -1
  23. package/dist/protocol/guards.js +2 -0
  24. package/dist/protocol/guards.js.map +1 -1
  25. package/dist/protocol/index.d.ts +1 -0
  26. package/dist/protocol/index.d.ts.map +1 -1
  27. package/dist/protocol/index.js +1 -0
  28. package/dist/protocol/index.js.map +1 -1
  29. package/dist/protocol/messages.d.ts +49 -4
  30. package/dist/protocol/messages.d.ts.map +1 -1
  31. package/dist/protocol/version.d.ts +2 -2
  32. package/dist/protocol/version.d.ts.map +1 -1
  33. package/dist/protocol/version.js +22 -2
  34. package/dist/protocol/version.js.map +1 -1
  35. package/dist/ui/README.md +22 -15
  36. package/dist/ui/controller/combo-demo.js +1 -1
  37. package/dist/ui/controller/combo-demo.js.map +1 -1
  38. package/dist/ui/controller/control-spotlight.d.ts +5 -5
  39. package/dist/ui/controller/control-spotlight.js +6 -6
  40. package/dist/ui/controller/control-trainer.d.ts +5 -5
  41. package/dist/ui/controller/control-trainer.d.ts.map +1 -1
  42. package/dist/ui/controller/control-trainer.js +4 -4
  43. package/dist/ui/controller/control-trainer.js.map +1 -1
  44. package/dist/ui/controller/controller-map.js +2 -2
  45. package/dist/ui/controller/controller-map.js.map +1 -1
  46. package/dist/ui/controller/controller-pad.d.ts +8 -9
  47. package/dist/ui/controller/controller-pad.d.ts.map +1 -1
  48. package/dist/ui/controller/controller-pad.js +6 -31
  49. package/dist/ui/controller/controller-pad.js.map +1 -1
  50. package/dist/ui/controller/input-chip.d.ts +5 -3
  51. package/dist/ui/controller/input-chip.d.ts.map +1 -1
  52. package/dist/ui/controller/input-chip.js +51 -15
  53. package/dist/ui/controller/input-chip.js.map +1 -1
  54. package/dist/ui/controller/layouts/dualsense.js +6 -6
  55. package/dist/ui/controller/layouts/dualsense.js.map +1 -1
  56. package/dist/ui/controller/layouts/joycon.js +6 -6
  57. package/dist/ui/controller/layouts/joycon.js.map +1 -1
  58. package/dist/ui/controller/layouts/switch-pro.js +6 -6
  59. package/dist/ui/controller/layouts/switch-pro.js.map +1 -1
  60. package/dist/ui/controller/layouts/xbox.js +6 -6
  61. package/dist/ui/controller/layouts/xbox.js.map +1 -1
  62. package/dist/ui/controller/live-presses.d.ts +7 -10
  63. package/dist/ui/controller/live-presses.d.ts.map +1 -1
  64. package/dist/ui/controller/live-presses.js +4 -13
  65. package/dist/ui/controller/live-presses.js.map +1 -1
  66. package/dist/ui/controller/pad-svg.d.ts +11 -10
  67. package/dist/ui/controller/pad-svg.d.ts.map +1 -1
  68. package/dist/ui/controller/pad-svg.js +19 -11
  69. package/dist/ui/controller/pad-svg.js.map +1 -1
  70. package/dist/ui/controller/parts-map.d.ts +9 -8
  71. package/dist/ui/controller/parts-map.d.ts.map +1 -1
  72. package/dist/ui/controller/parts-map.js +30 -14
  73. package/dist/ui/controller/parts-map.js.map +1 -1
  74. package/dist/ui/controller/styles.js +1 -1
  75. package/dist/ui/controller/tokens.d.ts +14 -9
  76. package/dist/ui/controller/tokens.d.ts.map +1 -1
  77. package/dist/ui/controller/tokens.js +1 -1
  78. package/dist/ui/controller/tokens.js.map +1 -1
  79. package/dist/ui/keycap.d.ts +1 -1
  80. package/dist/ui/option-menu.d.ts +19 -6
  81. package/dist/ui/option-menu.d.ts.map +1 -1
  82. package/dist/ui/option-menu.js +171 -6
  83. package/dist/ui/option-menu.js.map +1 -1
  84. package/dist/ui/showcase/index.d.ts.map +1 -1
  85. package/dist/ui/showcase/index.js +21 -19
  86. package/dist/ui/showcase/index.js.map +1 -1
  87. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import { RYDR_PROTOCOL_VERSION } from "../protocol/version.js";
2
2
  import { isGameToPlatformMessage } from "../protocol/guards.js";
3
3
  import { resolveRideHudArea, resolveRideHudView } from "../protocol/rideHud.js";
4
+ import { resolveGameMenu } from "../protocol/gameMenu.js";
4
5
  /** The shell's hardware, adapted to what the host needs. The shell implements this over its HardwareManager. */
5
6
  /**
6
7
  * Protocol-26 back-compat: the positional face-button name → the letter a PRE-26 guest expects, at
@@ -106,6 +107,7 @@ export function createPlatformHost(options) {
106
107
  trainingLibrary: !!options.onListWorkouts && !!options.onStartWorkout,
107
108
  trainingOfferings: !!options.onPlayOffering,
108
109
  trainingControls: !!options.onTrainingControl,
110
+ menuRows: !!options.onMenuRows,
109
111
  // On the welcome itself, so the game's first frame prints the right button letters.
110
112
  glyphSet: hardware.getStatus().glyphSet,
111
113
  });
@@ -301,6 +303,12 @@ export function createPlatformHost(options) {
301
303
  case "rydr/menu.toggle":
302
304
  options.onToggleMenu?.();
303
305
  break;
306
+ case "rydr/menu.rows":
307
+ options.onMenuRows?.(resolveGameMenu(msg.menu));
308
+ break;
309
+ case "rydr/menu.request":
310
+ options.onMenuRequest?.(msg.open === true);
311
+ break;
304
312
  case "rydr/pong":
305
313
  // liveness reply — no-op for now
306
314
  break;
@@ -565,6 +573,8 @@ export function createPlatformHost(options) {
565
573
  return {
566
574
  pause: () => post({ rydr: true, type: "rydr/lifecycle.pause" }),
567
575
  resume: () => post({ rydr: true, type: "rydr/lifecycle.resume" }),
576
+ sendMenuState: (open) => post({ rydr: true, type: "rydr/menu.state", open }),
577
+ sendMenuPick: (id, rev, delta) => post({ rydr: true, type: "rydr/menu.pick", id, rev, ...(delta ? { delta } : {}) }),
568
578
  sendStage: (stage) => post({ rydr: true, type: "rydr/stage.play", stage }),
569
579
  sendOverlayState: (active) => post({ rydr: true, type: "rydr/overlay.state", active }),
570
580
  sendOverlayLayout: (placements) => post({ rydr: true, type: "rydr/overlay.layout", placements }),
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformHost.js","sourceRoot":"","sources":["../../src/host/PlatformHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformHost.js","sourceRoot":"","sources":["../../src/host/PlatformHost.ts"],"names":[],"mappings":"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"}
@@ -21,10 +21,12 @@
21
21
  * Delete) is the correct desktop UX. *Gameplay never listens to the keyboard directly.*
22
22
  * ──────────────────────────────────────────────────────────────────────────────────────────────
23
23
  *
24
- * - **Directions** — `UP`/`DOWN`/`LEFT`/`RIGHT`: the D-pad / arrow keys, **and** the LEFT stick once it
25
- * deflects past the platform's deadzone. One name per direction whichever produced it — a held
26
- * direction stays held until *every* source lets go — so a game that only needs "move" reads these
27
- * four and works on every device.
24
+ * - **Directions** — `UP`/`DOWN`/`LEFT`/`RIGHT`: the LEFT stick once it deflects past the platform's
25
+ * deadzone, the arrow keys, and the phone's D-pad. One name per direction whichever produced it — a
26
+ * held direction stays held until *every* source lets go — so a game that only needs "move" reads
27
+ * these four and works on every device. **Not a gamepad's physical D-pad** (protocol 44): on RYDR
28
+ * that is the rider's trainer control (UP/DOWN resistance, LEFT/RIGHT the trainer mode), owned by the
29
+ * shell everywhere, and never delivered to a game. Menus therefore navigate with the stick.
28
30
  * - **Right-stick directions** — `RUP`/`RDOWN`/`RLEFT`/`RRIGHT`: the same four edges for the RIGHT stick,
29
31
  * fired once it deflects past the platform's deadzone. Kept separate from the D-pad's so a dual-stick
30
32
  * game can tell *move* (`LEFT`/`RIGHT`…) from *aim* (`RLEFT`/`RRIGHT`…) without touching the analog
@@ -49,6 +51,17 @@
49
51
  * They are plain **clicks** — the hardware has no analog trigger travel, so there is no trigger
50
52
  * {@link AxisName}; `isDown("LT")` / `onButton` is the only way to read them. Not every controller
51
53
  * exposes them, so never gate a required flow behind `LT`/`RT` alone.
54
+ * - **Bumpers** — `LB`/`RB`, the UPPER shoulders (L1/R1). Game input since protocol 44, when the
55
+ * rider's resistance moved to the D-pad; before that the shell kept them. Same rules as the
56
+ * triggers: no built-in meaning, and not every device has them (the phone doesn't).
57
+ * - **Either shoulder** — `LEFTANY`/`RIGHTANY` (protocol 44): `LEFTANY` is "`LB` or `LT`", `RIGHTANY`
58
+ * is "`RB` or `RT`". Bind an action to it when the rider should not have to care which of the two
59
+ * they pull — brake, boost, previous/next tab, which is most of the time. It goes down when the
60
+ * FIRST of the pair goes down and up when the LAST comes up, so holding both is still one press and
61
+ * one release, never two. The SDK client derives it from the two real buttons (the shell never sends
62
+ * it), so it works on every device that has either one, the phone's single trigger and the keyboard's
63
+ * `a`/`e` included. You still receive the underlying `LB`/`LT` edges as well; listen to one or the
64
+ * other, not both. See {@link BUTTON_GROUPS}.
52
65
  * - **Stick presses** — `LSTICK_PRESS`/`RSTICK_PRESS`, emitted when a joystick is clicked straight down.
53
66
  * Like the triggers they carry no built-in meaning (crouch, recentre the camera, sprint) and most
54
67
  * controllers can't produce them at all, so use them only as a shortcut for something already
@@ -60,12 +73,43 @@
60
73
  *
61
74
  * Devices with fewer than four face buttons (e.g. a phone) expose at least the
62
75
  * `DIAMOND_DOWN`/`DIAMOND_RIGHT` confirm/back pair — don't require `DIAMOND_UP`/`DIAMOND_LEFT`,
63
- * `LT`/`RT`, the right-stick `R*` directions, a stick press, or `OPTIONS` for a flow that must work on
64
- * every input.
76
+ * `LT`/`RT`, `LB`/`RB`, the right-stick `R*` directions, a stick press, or `OPTIONS` for a flow that must
77
+ * work on every input (`LEFTANY`/`RIGHTANY` reach more devices than any one shoulder, but still not all).
65
78
  */
66
- export type ButtonName = "UP" | "DOWN" | "LEFT" | "RIGHT" | "RUP" | "RDOWN" | "RLEFT" | "RRIGHT" | "DIAMOND_UP" | "DIAMOND_DOWN" | "DIAMOND_LEFT" | "DIAMOND_RIGHT" | "LT" | "RT" | "LSTICK_PRESS" | "RSTICK_PRESS" | "OPTIONS";
79
+ export type ButtonName = "UP" | "DOWN" | "LEFT" | "RIGHT" | "RUP" | "RDOWN" | "RLEFT" | "RRIGHT" | "DIAMOND_UP" | "DIAMOND_DOWN" | "DIAMOND_LEFT" | "DIAMOND_RIGHT" | "LT" | "RT" | "LB" | "RB" | "LEFTANY" | "RIGHTANY" | "LSTICK_PRESS" | "RSTICK_PRESS" | "OPTIONS";
67
80
  /** Press = "down", release = "up". A held button emits one of each. */
68
81
  export type ButtonEdge = "down" | "up";
82
+ /**
83
+ * The grouped buttons and the real buttons each one stands for (protocol 44): `LEFTANY` is held while
84
+ * `LB` OR `LT` is, `RIGHTANY` while `RB` OR `RT` is. See {@link ButtonName}.
85
+ */
86
+ export declare const BUTTON_GROUPS: Readonly<Record<"LEFTANY" | "RIGHTANY", readonly ButtonName[]>>;
87
+ /** Is `name` one of the grouped buttons (derived, never sent over the wire)? */
88
+ export declare function isGroupButton(name: ButtonName): name is "LEFTANY" | "RIGHTANY";
89
+ /** One edge a {@link createButtonGrouper} wants delivered, in the same shape as the edge that caused it. */
90
+ export interface GroupedEdge {
91
+ name: "LEFTANY" | "RIGHTANY";
92
+ edge: ButtonEdge;
93
+ repeat: boolean;
94
+ }
95
+ /**
96
+ * Turns the edges of the REAL buttons into the edges of their {@link BUTTON_GROUPS}.
97
+ *
98
+ * Feed it every edge AFTER your own duplicate filtering (it trusts that a `down` is a new press or a
99
+ * flagged repeat, and an `up` releases something held). It returns the grouped edges to deliver, which
100
+ * is usually none:
101
+ *
102
+ * - the FIRST member down → the group's `down`; a second member joining adds nothing;
103
+ * - the LAST member up → the group's `up`; one of two letting go adds nothing;
104
+ * - a `repeat` re-emit passes through only from the member that OPENED the group, so holding both
105
+ * bumper and trigger does not auto-repeat twice as fast.
106
+ *
107
+ * One instance per input stream. `reset()` forgets everything (a held-state wipe).
108
+ */
109
+ export declare function createButtonGrouper(): {
110
+ feed(name: ButtonName, edge: ButtonEdge, repeat?: boolean): GroupedEdge[];
111
+ reset(): void;
112
+ };
69
113
  /**
70
114
  * Canonical, source-agnostic controller **AXES** — the analog counterpart to {@link ButtonName}.
71
115
  *
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,UAAU,GAElB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GAGP,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GAIR,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GAEf,IAAI,GACJ,IAAI,GAEJ,cAAc,GACd,cAAc,GAGd,SAAS,CAAC;AAEd,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,QAAQ,GAEhB,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA4B9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAOlF;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOtE,CAAC"}
1
+ {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,MAAM,MAAM,UAAU,GAGlB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GAGP,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GAIR,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GAEf,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,GAEJ,SAAS,GACT,UAAU,GAEV,cAAc,GACd,cAAc,GAGd,SAAS,CAAC;AAEd,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,CAGzF,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,SAAS,GAAG,UAAU,CAE9E;AAED,4GAA4G;AAC5G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;IAC1E,KAAK,IAAI,IAAI,CAAC;CACf,CAuCA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,QAAQ,GAEhB,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA4B9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAOlF;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOtE,CAAC"}
@@ -1,3 +1,75 @@
1
+ /**
2
+ * The grouped buttons and the real buttons each one stands for (protocol 44): `LEFTANY` is held while
3
+ * `LB` OR `LT` is, `RIGHTANY` while `RB` OR `RT` is. See {@link ButtonName}.
4
+ */
5
+ export const BUTTON_GROUPS = {
6
+ LEFTANY: ["LB", "LT"],
7
+ RIGHTANY: ["RB", "RT"],
8
+ };
9
+ /** Is `name` one of the grouped buttons (derived, never sent over the wire)? */
10
+ export function isGroupButton(name) {
11
+ return name === "LEFTANY" || name === "RIGHTANY";
12
+ }
13
+ /**
14
+ * Turns the edges of the REAL buttons into the edges of their {@link BUTTON_GROUPS}.
15
+ *
16
+ * Feed it every edge AFTER your own duplicate filtering (it trusts that a `down` is a new press or a
17
+ * flagged repeat, and an `up` releases something held). It returns the grouped edges to deliver, which
18
+ * is usually none:
19
+ *
20
+ * - the FIRST member down → the group's `down`; a second member joining adds nothing;
21
+ * - the LAST member up → the group's `up`; one of two letting go adds nothing;
22
+ * - a `repeat` re-emit passes through only from the member that OPENED the group, so holding both
23
+ * bumper and trigger does not auto-repeat twice as fast.
24
+ *
25
+ * One instance per input stream. `reset()` forgets everything (a held-state wipe).
26
+ */
27
+ export function createButtonGrouper() {
28
+ const held = new Map();
29
+ const opener = new Map();
30
+ return {
31
+ feed(name, edge, repeat = false) {
32
+ const out = [];
33
+ for (const group of ["LEFTANY", "RIGHTANY"]) {
34
+ if (!BUTTON_GROUPS[group].includes(name))
35
+ continue;
36
+ let members = held.get(group);
37
+ if (!members)
38
+ held.set(group, (members = new Set()));
39
+ if (edge === "down") {
40
+ if (repeat) {
41
+ if (opener.get(group) === name)
42
+ out.push({ name: group, edge: "down", repeat: true });
43
+ continue;
44
+ }
45
+ const wasEmpty = members.size === 0;
46
+ members.add(name);
47
+ if (wasEmpty) {
48
+ opener.set(group, name);
49
+ out.push({ name: group, edge: "down", repeat: false });
50
+ }
51
+ }
52
+ else {
53
+ if (!members.delete(name))
54
+ continue;
55
+ if (members.size === 0) {
56
+ opener.delete(group);
57
+ out.push({ name: group, edge: "up", repeat: false });
58
+ }
59
+ else if (opener.get(group) === name) {
60
+ // The opener let go while the other is still held: the survivor carries the repeat now.
61
+ opener.set(group, [...members][0]);
62
+ }
63
+ }
64
+ }
65
+ return out;
66
+ },
67
+ reset() {
68
+ held.clear();
69
+ opener.clear();
70
+ },
71
+ };
72
+ }
1
73
  /**
2
74
  * Keyboard → canonical button map for desktop play.
3
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAyJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,OAAO;IACnB,oEAAoE;IACpE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,eAAe;IAC1B,qFAAqF;IACrF,gCAAgC;IAChC,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;IACjB,6DAA6D;IAC7D,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,0FAA0F;IAC1F,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;CACb,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,IAA6B;IACxE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAyC;IACzE,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACxB,CAAC"}
1
+ {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * A GAME'S ROWS IN THE PLATFORM MENU (PLAT-1795, protocol 44).
3
+ *
4
+ * On RYDR there is one menu, the platform's. A game's own rows (Restart, Back to menu, a difficulty
5
+ * stepper) are drawn INSIDE it, under Resume, rather than in a second overlay of the game's own. The
6
+ * game still describes them with `mountOptionMenu` exactly as before; the SDK turns them into the data
7
+ * below, the shell draws them, and a press comes back as an id the SDK maps to the row's own callback.
8
+ *
9
+ * Nothing here can act on the shell. A row is text and a shape; what it DOES stays in the game, behind
10
+ * the iframe, and only the game's own callback ever runs.
11
+ *
12
+ * You do not build these by hand: `mountOptionMenu` publishes them for you. They are exported for a
13
+ * host (the shell renders them) and for anything that wants to read the wire.
14
+ */
15
+ /** One row of a game's section in the platform menu. */
16
+ export interface GameMenuRow {
17
+ /** Stable within one {@link GameMenuSnapshot}: what a pick names. */
18
+ id: string;
19
+ /** The row's text, verbatim. Kept short by the game. */
20
+ label: string;
21
+ /**
22
+ * `action` is pressed (A, a click); `stepper` is turned with LEFT/RIGHT and shows {@link value}
23
+ * between two arrows.
24
+ */
25
+ kind: "action" | "stepper";
26
+ /** A stepper's current value. */
27
+ value?: string;
28
+ /** Whether a stepper can move down / left (default true). A spent arrow is drawn inert. */
29
+ canStepDown?: boolean;
30
+ /** Whether a stepper can move up / right (default true). */
31
+ canStepUp?: boolean;
32
+ /** Destructive (leaving, wiping a run): drawn in the same red as the platform's Exit. */
33
+ danger?: boolean;
34
+ /** Shown inert and skipped by the focus ring. */
35
+ disabled?: boolean;
36
+ /** Pressing it leaves the menu open (a toggle, a row that swaps the list). Default: the menu closes
37
+ * first, so the action runs on a resumed game. */
38
+ keepOpen?: boolean;
39
+ }
40
+ /** The game's whole section, replaced wholesale on every change. */
41
+ export interface GameMenuSnapshot {
42
+ /** The game's name, printed over its rows. */
43
+ title: string;
44
+ /**
45
+ * Which publish this is. A pick carries the `rev` it was made against and the SDK drops one that
46
+ * names an older list, so a press can never land on a row that has since moved.
47
+ */
48
+ rev: number;
49
+ rows: GameMenuRow[];
50
+ }
51
+ /** A row pressed (`delta` absent) or a stepper turned (`delta` ±1). */
52
+ export interface GameMenuPick {
53
+ id: string;
54
+ rev: number;
55
+ delta?: -1 | 1;
56
+ }
57
+ /** The most rows a host draws, and the longest label or value it prints. A guest past either is cut. */
58
+ export declare const GAME_MENU_MAX_ROWS = 24;
59
+ export declare const GAME_MENU_MAX_TEXT = 80;
60
+ /**
61
+ * Read a snapshot off the wire, keeping only what a host can draw. It came from another origin, so
62
+ * nothing about it is trusted: a malformed snapshot is `null` (no section), a malformed row is
63
+ * dropped, extra fields are discarded, and text is cut to {@link GAME_MENU_MAX_TEXT}.
64
+ */
65
+ export declare function resolveGameMenu(raw: unknown): GameMenuSnapshot | null;
66
+ //# sourceMappingURL=gameMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameMenu.d.ts","sourceRoot":"","sources":["../../src/protocol/gameMenu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;uDACmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CAChB;AAED,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAIrC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAwBrE"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * A GAME'S ROWS IN THE PLATFORM MENU (PLAT-1795, protocol 44).
3
+ *
4
+ * On RYDR there is one menu, the platform's. A game's own rows (Restart, Back to menu, a difficulty
5
+ * stepper) are drawn INSIDE it, under Resume, rather than in a second overlay of the game's own. The
6
+ * game still describes them with `mountOptionMenu` exactly as before; the SDK turns them into the data
7
+ * below, the shell draws them, and a press comes back as an id the SDK maps to the row's own callback.
8
+ *
9
+ * Nothing here can act on the shell. A row is text and a shape; what it DOES stays in the game, behind
10
+ * the iframe, and only the game's own callback ever runs.
11
+ *
12
+ * You do not build these by hand: `mountOptionMenu` publishes them for you. They are exported for a
13
+ * host (the shell renders them) and for anything that wants to read the wire.
14
+ */
15
+ /** The most rows a host draws, and the longest label or value it prints. A guest past either is cut. */
16
+ export const GAME_MENU_MAX_ROWS = 24;
17
+ export const GAME_MENU_MAX_TEXT = 80;
18
+ const text = (v) => (typeof v === "string" ? v.slice(0, GAME_MENU_MAX_TEXT) : "");
19
+ /**
20
+ * Read a snapshot off the wire, keeping only what a host can draw. It came from another origin, so
21
+ * nothing about it is trusted: a malformed snapshot is `null` (no section), a malformed row is
22
+ * dropped, extra fields are discarded, and text is cut to {@link GAME_MENU_MAX_TEXT}.
23
+ */
24
+ export function resolveGameMenu(raw) {
25
+ if (!raw || typeof raw !== "object")
26
+ return null;
27
+ const m = raw;
28
+ if (typeof m.rev !== "number" || !Number.isFinite(m.rev) || !Array.isArray(m.rows))
29
+ return null;
30
+ const rows = [];
31
+ for (const r of m.rows.slice(0, GAME_MENU_MAX_ROWS)) {
32
+ if (!r || typeof r !== "object")
33
+ continue;
34
+ const row = r;
35
+ const id = text(row["id"]);
36
+ const label = text(row["label"]);
37
+ if (!id || !label)
38
+ continue;
39
+ const kind = row["kind"] === "stepper" ? "stepper" : "action";
40
+ const out = { id, label, kind };
41
+ if (kind === "stepper") {
42
+ out.value = text(row["value"]);
43
+ if (row["canStepDown"] === false)
44
+ out.canStepDown = false;
45
+ if (row["canStepUp"] === false)
46
+ out.canStepUp = false;
47
+ }
48
+ if (row["danger"] === true)
49
+ out.danger = true;
50
+ if (row["disabled"] === true)
51
+ out.disabled = true;
52
+ if (row["keepOpen"] === true)
53
+ out.keepOpen = true;
54
+ rows.push(out);
55
+ }
56
+ return { title: text(m.title), rev: m.rev, rows };
57
+ }
58
+ //# sourceMappingURL=gameMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameMenu.js","sourceRoot":"","sources":["../../src/protocol/gameMenu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA+CH,wGAAwG;AACxG,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnG;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAAyD,CAAC;IACpE,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChG,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;YAAE,SAAS;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,GAAG,GAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK;gBAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1D,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK;gBAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACxD,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AACpD,CAAC"}
@@ -47,8 +47,8 @@ export declare function isDiamondButton(name: ButtonName): boolean;
47
47
  /**
48
48
  * The label printed on an upper shoulder button for `set` — `("playstation", "left")` → `"L1"`.
49
49
  *
50
- * Use it when naming the rider's resistance controls. Like {@link buttonLabel}, this is the only place
51
- * allowed to know these strings; never hard-code `"L1"` in a prompt.
50
+ * The same answer as `buttonLabel(set, "LB" | "RB")`, kept for callers written before protocol 44,
51
+ * when the upper shoulders were the shell's resistance and had no {@link ButtonName}.
52
52
  */
53
53
  export declare function bumperLabel(set: GlyphSet, side: "left" | "right"): string;
54
54
  //# sourceMappingURL=glyphs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AA4DlD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzD;AAoBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAEzE"}
1
+ {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AAkElD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAEzE"}
@@ -32,12 +32,18 @@ const FACE = {
32
32
  nintendo: /* */ { DIAMOND_DOWN: "B", DIAMOND_RIGHT: "A", DIAMOND_LEFT: "Y", DIAMOND_UP: "X" },
33
33
  zwift: /* */ { DIAMOND_DOWN: "B", DIAMOND_RIGHT: "A", DIAMOND_LEFT: "Z", DIAMOND_UP: "Y" },
34
34
  };
35
- /** Shoulders and stick clicks. Directions are omitted — they are the same arrows everywhere. */
35
+ /**
36
+ * Shoulders and stick clicks. Directions are omitted — they are the same arrows everywhere.
37
+ *
38
+ * `LEFTANY` / `RIGHTANY` (either shoulder on that side, protocol 44) print both names, so a prompt
39
+ * tells the rider they may pull either one.
40
+ */
36
41
  const SHOULDERS = {
37
- xbox: { LT: "LT", RT: "RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
38
- playstation: { LT: "L2", RT: "R2", LSTICK_PRESS: "L3", RSTICK_PRESS: "R3" },
39
- nintendo: { LT: "ZL", RT: "ZR", LSTICK_PRESS: "L", RSTICK_PRESS: "R" },
40
- zwift: { LT: "LT", RT: "RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
42
+ xbox: { LB: "LB", RB: "RB", LT: "LT", RT: "RT", LEFTANY: "LB/LT", RIGHTANY: "RB/RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
43
+ playstation: { LB: "L1", RB: "R1", LT: "L2", RT: "R2", LEFTANY: "L1/L2", RIGHTANY: "R1/R2", LSTICK_PRESS: "L3", RSTICK_PRESS: "R3" },
44
+ nintendo: { LB: "L", RB: "R", LT: "ZL", RT: "ZR", LEFTANY: "L/ZL", RIGHTANY: "R/ZR", LSTICK_PRESS: "L", RSTICK_PRESS: "R" },
45
+ // Zwift Play has no bumpers to deliver (its paddles stay the shell's shift), so the Xbox wording.
46
+ zwift: { LB: "LB", RB: "RB", LT: "LT", RT: "RT", LEFTANY: "LB/LT", RIGHTANY: "RB/RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
41
47
  };
42
48
  /**
43
49
  * The small SYSTEM button — `OPTIONS`, the game's own menu button (never the platform's overlay, which
@@ -93,30 +99,13 @@ export function buttonLabel(set, name) {
93
99
  export function isDiamondButton(name) {
94
100
  return name in FACE[DEFAULT_GLYPH_SET];
95
101
  }
96
- /**
97
- * The UPPER shoulder buttons — the ones that are NOT game input.
98
- *
99
- * They deliberately have no {@link ButtonName}: on this platform the upper shoulders are the rider's
100
- * trainer resistance − / + and are handled by the shell, never delivered to a game (see the shell-owned
101
- * keys in `protocol/buttons.ts`). They still need lettering, though, because the shell has to *name*
102
- * them when teaching a rider where they are — and because the controller drawing prints them.
103
- *
104
- * Separate from {@link SHOULDERS}, which covers the lower triggers a game DOES receive (`LT`/`RT`).
105
- */
106
- const BUMPERS = {
107
- xbox: { left: "LB", right: "RB" },
108
- playstation: { left: "L1", right: "R1" },
109
- nintendo: { left: "L", right: "R" },
110
- // Zwift Play has no lettering on its paddles at all, so say what they DO.
111
- zwift: { left: "−", right: "+" },
112
- };
113
102
  /**
114
103
  * The label printed on an upper shoulder button for `set` — `("playstation", "left")` → `"L1"`.
115
104
  *
116
- * Use it when naming the rider's resistance controls. Like {@link buttonLabel}, this is the only place
117
- * allowed to know these strings; never hard-code `"L1"` in a prompt.
105
+ * The same answer as `buttonLabel(set, "LB" | "RB")`, kept for callers written before protocol 44,
106
+ * when the upper shoulders were the shell's resistance and had no {@link ButtonName}.
118
107
  */
119
108
  export function bumperLabel(set, side) {
120
- return (BUMPERS[set] ?? BUMPERS[DEFAULT_GLYPH_SET])[side];
109
+ return buttonLabel(set, side === "left" ? "LB" : "RB");
121
110
  }
122
111
  //# sourceMappingURL=glyphs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAiEvB,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAmEvB,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E"}
@@ -34,6 +34,8 @@ const PLATFORM_TO_GAME = {
34
34
  "rydr/stage.play": true,
35
35
  "rydr/lifecycle.pause": true,
36
36
  "rydr/lifecycle.resume": true,
37
+ "rydr/menu.state": true,
38
+ "rydr/menu.pick": true,
37
39
  "rydr/ping": true,
38
40
  "rydr/leaderboard.queryResult": true,
39
41
  "rydr/leaderboard.rankQueryResult": true,