LifePlay-Revival/Docs/Migration/etat/REL/KEY2/KEY2-BUILD-04.md

39 lines
3.2 KiB
Markdown
Raw Normal View History

# KEY2-IMPL-03 et KEY2-BUILD-04 : confirmation avant de prendre une touche déjà liée (KEY2-DIAG-03, option 1)
Fiche KEY2-IMPL-03 / KEY2-BUILD-04 — Niveau N3 — Modèle prévu opus (session) | utilisé Opus 5.5 — Session « Medium · KEY2 » — Skills : lp-build, sk-protocol.
Date : 2026-10-20 17:40. Décision de l'utilisateur sur KEY2-DIAG-03, citée par Big Boss : « 1 ». GO d'IMPL et de jeton UE de Big Boss `local_104ff22d`.
## 1. Changement (`Source/LifePlay/LPKeyboardSubsystem.cpp` seul)
Instantané : `Tools\Snapshot.ps1 -Lot KEY2-IMPL4` (avant : 0eb6a592, version commitée en 2357225). Après : **611c2148** ; +47 / −1 ; CRLF gardé (1537 / 1537). En-tête, `DefaultInput.ini` et `LPKeyboard.ini` inchangés.
| Endroit | Changement |
|---|---|
| `FLiveKeyboard` (état du panneau) | touche en attente de confirmation : `ConfirmKey` et ses modificateurs |
| `CommitKey` | avant toute écriture, cherche si la touche (mêmes modificateurs) est liée à une autre action, ou à un autre axe ou sens d'axe. Si oui et que ce n'est pas la touche en attente : rien n'est écrit, la capture continue et la ligne d'état dit « <touche> is used by <action>. Press it again to replace, Escape to cancel. ». Si c'est le second appui de la même touche, le remplacement se fait comme avant (« Removed from: … ») |
| `BeginWait`, `CancelWait` | oublient la touche en attente : nouvelle capture, ou Échap |
| `HandleKeyDownEvent` | une répétition (touche tenue) n'est pas prise comme second appui (`!Event.IsRepeat()`) |
Une autre liaison de la même action, ou du même sens du même axe, ne compte pas comme conflit.
## 2. Contrôle et compilation (mesuré)
- `Tools\CopieEtat.ps1 -Lot KEY2 -Assets <5 assets>` : `proc=0 assets=5 absents=0 modifies=0 … verrou=246:libre alertes=GIT` ; seule alerte : ` M Source/LifePlay/LPKeyboardSubsystem.cpp` (ce lot).
| Build | Code | Durée | Erreurs | Avertissements | Unités | Journal |
|---|---|---|---|---|---|---|
| LifePlayEditor Development | 0 (`Result: Succeeded`, l. 50) | 30 s | 0 | 0 (20 lignes UBT HyperAIStudio, connues) | `Compile LPKeyboardSubsystem.cpp` (l. 41), `Link UnrealEditor-LifePlay.dll` (l. 44) | `Saved\Logs\portage\KEY2_Build_20261020-174030.log` |
| LifePlay Development `-NoUBA` | 0 (`Result: Succeeded`, l. 27) | 49 s | 0 | 0 | `Compile LPKeyboardSubsystem.cpp` (l. 19), `Link LifePlay.exe` (l. 20) | `Saved\Logs\portage\KEY2_Build_20261020-174107.log` |
Binaires : `UnrealEditor-LifePlay.dll` 698dce01 ; `LifePlay.exe` 181dc8e6. Après : `UeState` = 0 ; `git status --short -- Source Config Content` : ` M Source/LifePlay/LPKeyboardSubsystem.cpp`.
## 3. Preuve à faire à la prochaine build d'essai
1. Change sur une flèche, puis une touche prise (par exemple pavé 7) : message « … is used by Favorite 7. Press it again to replace, Escape to cancel. », et toujours 51 actions dans le journal (aucune ligne « enregistres » à ce moment).
2. Échap : « Capture cancelled. », rien n'est changé.
3. Même chose, puis un second appui sur pavé 7 : « … saved. Removed from: Favorite 7. », 50 actions.
4. Reset : 51 actions.
5. Touche tenue : la répétition ne remplace pas.
À commiter : M `Source/LifePlay/LPKeyboardSubsystem.cpp` ; A ce livrable. Aucun git qui écrit.