4.4 KiB
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 :
Favorite7surNumPadSeven. Favorite7 gardeSeven. ActionPanelQ → A : attendu, c'est le préréglage AZERTY.inventoryetrecommendeden 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 :
- 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.
- retire l'ancienne liaison (
- 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.