103 lines
8.2 KiB
Markdown
103 lines
8.2 KiB
Markdown
# KEY2-SPEC-02 : regroupement du menu Clavier par fonctionnalité (étude)
|
||
|
||
Fiche KEY2-SPEC-02 — Niveau N3 — Modèle prévu opus (Medium) | utilisé Opus 5.5 — Session « Medium · KEY2 » — Skills : sk-protocol, lp-doc.
|
||
Date : 2026-10-20. Ordre de Big Boss `local_104ff22d`, après COMMUN-18.14 (PASS). Demande de l'utilisateur, citée : « 14 ok mais il faudrait regroupé les touche par fonctionalité ».
|
||
Étude seule : aucun code, aucune copie UE. Fichier lu : `Source/LifePlay/LPKeyboardSubsystem.cpp` (MD5 9d450aaf) et `Config/DefaultInput.ini`.
|
||
|
||
## 0. Décision de l'utilisateur (2026-10-20, citée par Big Boss)
|
||
|
||
« regroupement des touches ok ». Big Boss l'applique avec les recommandations de cette fiche :
|
||
1. les 9 sections du § 2, dans l'ordre et avec les noms proposés ;
|
||
2. option **(A)** : les flèches à deux places, même liaison ;
|
||
3. Pause dans Time, TestScenes dans System ;
|
||
4. RotateCamera en Camera seulement, signalé dans le libellé d'ActionPanel.
|
||
|
||
Réalisé par KEY2-IMPL-02 (affichage seul, `LPKeyboardSubsystem.cpp`, instantané `KEY2-IMPL3`) : MD5 9d450aaf → 0eb6a592 ; +63 / −62 ; CRLF gardé (1491 / 1491). Rien n'est changé dans `DefaultInput.ini`, dans `LPKeyboard.ini` ni dans les noms internes ; aucune migration. Compilation en attente du jeton UE.
|
||
|
||
## 1. État actuel (établi)
|
||
|
||
`GroupFor` (`LPKeyboardSubsystem.cpp:207-262`) range chaque action ou axe dans une section (`Order`) et, pour la section Scene, dans un bloc (`Sub`). Le tri se fait par section, puis bloc, puis libellé (`:489-505`), et le dessin par titre de section, puis sous-titre de bloc (`:508-535`).
|
||
|
||
| Ordre | Section affichée | Contenu |
|
||
|---|---|---|
|
||
| 0 | Movement | MoveForward, MoveRight |
|
||
| 2 | Interaction | Interact, SwapRoles |
|
||
| 3 | Menus | MainMenu, CharacterMenu, Inventory, Journal, ContactsMenu, CityMenu, StatMenu, ModuleMenu, SearchBarToggle, Pause |
|
||
| 4 | Favorites | Favorite0 à Favorite9 |
|
||
| 5 | Time | SpeedUp, SpeedDown |
|
||
| 6 | World | NextBuilding, PreviousBuilding |
|
||
| 7 | Save | QuickSave, Quickload |
|
||
| 8 | Scene › Camera | ScrollDownUp, RotateCamera, SwitchCamera, CameraHeight |
|
||
| 8 | Scene › Characters | option « Move couple with », ManualAnimating, l'axe de rotation, CoupleMoveY, LeftRight, DownUp |
|
||
| 8 | Scene › Actions | ActionPanel |
|
||
| 8 | Scene › Other | TestScenes, Recommended |
|
||
|
||
Défauts pour le joueur :
|
||
- les commandes générales de la caméra (SwitchCamera, RotateCamera, zoom) sont rangées sous « Scene », alors qu'elles servent partout ;
|
||
- Pause est dans Menus et non dans Time ;
|
||
- les flèches n'apparaissent que dans le bloc du couple, alors qu'elles déplacent aussi la vue de dessus hors scène ;
|
||
- Interact (Interaction) est séparé d'ActionPanel (Scene › Actions).
|
||
|
||
Ne sont pas affichés, et ne le seront pas : ActionX / ActionY et CursorX / CursorY (axes de la souris, refusés par `IsRemappable`, `:75-78`).
|
||
|
||
## 2. Regroupement proposé (ordre d'affichage)
|
||
|
||
Libellés en anglais, comme le reste du menu ; la traduction est donnée entre parenthèses.
|
||
|
||
| Ordre | Section (libellé) | Actions et axes | Remarque |
|
||
|---|---|---|---|
|
||
| 1 | **Movement** (Déplacement) | MoveForward, MoveRight | inchangé |
|
||
| 2 | **Camera** (Caméra) | SwitchCamera, RotateCamera, ScrollDownUp (zoom), CameraHeight | sort de Scene ; CameraHeight n'agit qu'en scène : libellé « Camera Height Up / Down (scene) » |
|
||
| 3 | **Map & World** (Carte et monde) | LeftRight, DownUp (vue de dessus), NextBuilding, PreviousBuilding | les flèches y sont libellées « Map Right / Left / Forward / Back » |
|
||
| 4 | **Couple (scene)** (Couple en scène) | option « Move couple with », CoupleMoveY (Up / Down), DownUp, LeftRight (couple), ManualAnimating, l'axe de rotation existant | les flèches y sont libellées « Couple Forward / Back / Right / Left » |
|
||
| 5 | **Actions & Interaction** (Actions et interaction) | Interact, ActionPanel, SwapRoles, Recommended | regroupe Interact et ActionPanel |
|
||
| 6 | **Menus** | MainMenu, CharacterMenu, Inventory, Journal, ContactsMenu, CityMenu, StatMenu, ModuleMenu, SearchBarToggle | Pause en sort |
|
||
| 7 | **Time** (Temps) | Pause, SpeedUp, SpeedDown | Pause y entre |
|
||
| 8 | **Favorites** (Favoris) | Favorite0 à Favorite9 | inchangé |
|
||
| 9 | **System** (Système) | QuickSave, Quickload, TestScenes | Save devient System ; TestScenes y entre (zone de commande interne, KEY1-CART-01 § 12.3) |
|
||
|
||
Plus de sous-titres de bloc : chaque section est courte (2 à 10 entrées).
|
||
|
||
## 3. Actions qui appartiennent à deux groupes
|
||
|
||
| Action ou axe | Groupes | Raison |
|
||
|---|---|---|
|
||
| LeftRight, DownUp (flèches) | Map & World, Couple (scene) | vue de dessus hors scène, couple en scène (CAM2-SPEC-02 § 7) |
|
||
| ScrollDownUp (molette) | Camera, Couple (scene) ? | zoom hors scène ; en scène, rôle à confirmer (KEY2-DIAG-02 § 3.4, et point b de la relecture CAM2-IMPL-03) : à classer en Camera seulement tant que ce n'est pas établi |
|
||
| RotateCamera (Alt, clic du milieu) | Camera ; Actions (en scène) | un appui bref en scène bascule aussi le panneau d'action (`LPCameraModeSubsystem.cpp`, TickPanelClick). Proposé : Camera seulement, avec la mention dans le libellé d'ActionPanel (« Action Panel (also Alt / middle click) ») |
|
||
| ManualAnimating (Ctrl, clic droit) | Couple (scene) | Ctrl sert aussi de modificateur aux menus (Ctrl+C, Ctrl+E…) : rien à dupliquer, c'est la touche seule |
|
||
|
||
**Affichage d'une action à deux groupes**, à choisir par l'utilisateur :
|
||
- **(A) Deux places, recommandé.** La même liaison apparaît dans les deux sections, avec le libellé de la section (« Map … » / « Couple … »). Changer la touche dans l'une la change dans l'autre, car c'est la même liaison : le menu se redessine depuis les réglages (`Rebuild`, `RefreshMenu`). Le joueur trouve la touche là où il la cherche.
|
||
- **(B) Une seule place.** Section principale Couple (scene), avec un libellé à double sens comme aujourd'hui (« Forward (map view / couple) »). C'est plus court, mais on ne la trouve pas dans Map & World.
|
||
|
||
## 4. Changements dans `LPKeyboardSubsystem.cpp` (prévision, aucun autre fichier)
|
||
|
||
1. `GroupFor` (`:208-262`) : nouvelle table de 9 sections, conforme au § 2. Les constantes `KbSceneOrder` et `KbCharactersSub` (`:48-49`) deviennent `KbCoupleOrder` ; les sous-titres de bloc (`Sub`, `SubTitle`) sont retirés.
|
||
2. Option (A) seulement :
|
||
- `GroupFor` rend une liste de sections (`TArray<FBindGroup>`, deux entrées pour LeftRight et DownUp) ;
|
||
- la construction de `Binds` (`:453-488`) ajoute une ligne par section ;
|
||
- `FBindRow` reçoit l'ordre de section pour le tri et le dessin (`:489-535`) ;
|
||
- `AxisLabel` (`:163-196`) prend la section pour choisir « Map … » ou « Couple … ».
|
||
3. L'option « Move couple with » s'accroche au début de la section Couple (scene), au lieu du bloc Characters (`:533-535`).
|
||
4. Libellés : « Camera Height Up / Down (scene) » ; « Action Panel (also Alt / middle click) » ; flèches selon (A) ou (B).
|
||
5. Aucun changement de `DefaultInput.ini`, de `LPKeyboard.ini`, de nom interne ni de migration : le regroupement ne touche que l'affichage.
|
||
6. Contenu adulte (doc 27) : aucun libellé nouveau. L'axe de rotation garde « Rotation + / − ».
|
||
|
||
## 5. Coût estimé
|
||
|
||
| Étape | Option (B) | Option (A) |
|
||
|---|---|---|
|
||
| IMPL (lp-impl ou la session, hors copie UE, sous instantané) | environ 40 lignes changées, 1 fichier | environ 90 lignes changées, 1 fichier |
|
||
| Build (jeton UE) et VAL statique | 1 build éditeur + Development, environ 5 min | idem |
|
||
| Essai en jeu | une capture du menu Clavier : ordre des 9 sections ; Change sur une flèche | idem, plus : changer une flèche dans Map & World la change dans Couple (scene) |
|
||
| Risque | faible (affichage seul) | faible à moyen (tri et dessin avec lignes doublées ; Remove d'une ligne doublée retire la liaison des deux sections, ce qui est voulu) |
|
||
|
||
## 6. Questions pour l'utilisateur (par Big Boss)
|
||
|
||
1. L'ordre et les noms des 9 sections du § 2 conviennent-ils ?
|
||
2. Une action à deux groupes (flèches) : **(A)** deux places, recommandé, ou **(B)** une seule place ?
|
||
3. Pause dans Time, et TestScenes dans System : d'accord ?
|
||
4. RotateCamera (Alt, clic du milieu) : en Camera seulement, avec la mention dans le libellé d'ActionPanel ?
|
||
|
||
Fichiers écrits : ce livrable. À commiter : A `Docs/Migration/etat/REL/KEY2/KEY2-SPEC-02.md`. Aucun git qui écrit.
|