LifePlay-Revival/Docs/Migration/etat/REL/KEY2/KEY2-SPEC-02.md
edujiro5972 56dfcfc3d2 LifePlay UE 5.8 : état de développement au 2026-10-20
Tickets : PUB-20261020-T1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 17:35:10 +02:00

103 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.