LifePlay-Revival/Docs/Migration/etat/REL/KEY2/KEY2-DIAG-03.md

57 lines
4.4 KiB
Markdown
Raw Normal View History

# KEY2-DIAG-03 : 51 puis 50 actions dans le fichier de touches (essai COMMUN-20)
Fiche KEY2-DIAG-03 — Niveau N3 — Modèle prévu opus (Medium) | utilisé Opus 5.5 — Session « Medium · KEY2 » — Skills : sk-protocol.
Date : 2026-10-20. Ordre de Big Boss `local_104ff22d` (« sans urgence »). Lecture seule : journaux et fichier de touches de la build COM20, code de `LPKeyboardSubsystem.cpp` ; aucune écriture hors de ce livrable.
## 1. Constat (établi)
Journal du premier lancement : `D:\Game\LifePlay_Build_5.8_Development_COM20\Windows\LifePlay\Saved\Logs\LifePlay-backup-2026.10.20-15.10.23.log`.
| Ligne | Heure (UTC) | Message |
|---|---|---|
| 877-878 | 15:05:56 | fichier absent, création : 51 actions, 17 axes |
| 999-1000 | 15:06:13 | 51 actions, 17 axes ; « disposition AZERTY appliquee » |
| 1003 | 15:09:01 | **50** actions, 17 axes |
| 1006 | 15:09:47 | 50 actions, 17 axes |
Au relancement : « 50 actions et 17 axes relus » (`etat\BOSS\COMMUN-20\COMMUN-20_session_1710.log:878`).
## 2. Action perdue (établi)
J'ai comparé les liaisons d'actions de `Config/DefaultInput.ini` (51) à celles du fichier du joueur, `…\COM20\Windows\LifePlay\Saved\Config\Windows\LPKeyboard.ini` (50), après avoir retiré les modificateurs faux :
- **seule absente : `Favorite7` sur `NumPadSeven`**. Favorite7 garde `Seven`.
- `ActionPanel` Q → A : attendu, c'est le préréglage AZERTY.
- `inventory` et `recommended` en minuscules : casse d'origine de l'ancien nom (FName), sans effet. FName et FString se comparent sans tenir compte de la casse.
Côté axes (17 de part et d'autre) : `LeftRight −1 (Left)` est passé en **dernière** position du fichier (l. 68), alors que les autres axes gardent l'ordre d'origine. Cette liaison a donc été retirée, puis rajoutée.
## 3. Cause (établie par le code ; touche exacte estimée)
Le cas COMMUN-20.3 consistait à changer une flèche, puis à la remettre. Lecture :
1. **15:09:01** : « Change » sur la flèche gauche (`LeftRight −1`, ligne « Map Left » ou « Couple Left »), puis appui sur une touche déjà liée à Favorite7, très probablement **pavé 7** (estimé : c'est la seule action qui manque). `CommitKey` (`LPKeyboardSubsystem.cpp:973`, message `:1037`) :
- retire l'ancienne liaison (`Left`) ;
- **retire la même touche de toute autre action**, Favorite7 / NumPadSeven, et l'annonce dans la ligne d'état (« … saved. Removed from: Favorite 7. ») ;
- ajoute la nouvelle.
Résultat : 51 → 50 actions, 17 axes.
2. **15:09:47** : « Change » sur la même flèche, puis `Left` : la flèche revient (ajoutée en fin de liste), mais **rien ne rend pavé 7 à Favorite7**. Résultat : 50 actions, 17 axes.
Ce n'est pas la double place des flèches (option A) : les deux lignes de l'affichage portent la même liaison, et une écriture reste une écriture. C'est la règle de conflit de `CommitKey`, voulue par la SPEC (KEY2-SPEC-01 § 2, « retire la même touche des autres actions … et l'annonce »), qui n'a pas de retour arrière.
## 4. Correctif proposé (aucune IMPL sans GO ; `LPKeyboardSubsystem.cpp` seul)
| Option | Effet | Coût |
|---|---|---|
| **(1) Confirmation, recommandé** | si la touche est déjà prise ailleurs, `CommitKey` n'écrit rien. Il affiche « NumPad 7 is used by Favorite 7. Press it again to replace, Escape to cancel. » ; un second appui sur la même touche confirme | environ 25 lignes (état « touche en attente de confirmation », remis à zéro par Échap ou par une autre touche) |
| (2) Échange | la touche prise passe à la nouvelle action, et l'ancienne touche de celle-ci va à l'action qui l'avait (pavé 7 ↔ Left) | environ 20 lignes ; surprend quand l'ancienne touche était vide (Add) ou entre en conflit à son tour |
| (3) Rien, documenter | comportement actuel : retrait annoncé ; Reset rend tout | 0 |
Avec (1), le cas de COMMUN-20.3 n'aurait rien perdu : le premier appui sur pavé 7 aurait seulement averti.
Preuve exigée : Change d'une flèche, appui sur une touche prise. On attend le message et 51 actions inchangées ; Échap annule. Un second appui confirme : 50 actions et « Removed from » ; Reset rend 51.
## 5. Pour le joueur de COMMUN-20
Pour retrouver pavé 7 sur Favorite 7 : Reset dans le menu Clavier, puis Apply AZERTY. Ou bien Add sur Favorite 7, puis pavé 7.
Fichiers écrits : ce livrable. À commiter : A `Docs/Migration/etat/REL/KEY2/KEY2-DIAG-03.md`. Aucun git qui écrit.