LifePlay-Revival/Docs/Migration/etat/REL/KEY2/KEY2-DIAG-03.md
2026-10-21 09:36:04 +02:00

56 lines
4.4 KiB
Markdown
Raw 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-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.