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

4.4 KiB
Raw Blame 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.