5 KiB
Fiche STG-M1e-IMPL — Niveau N3 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5 — Agent orchestrateur STG (session principale) — Skills lp-lot, sk-change-safety
STG-M1e-IMPL : témoin des touches de marche (2026-10-14)
GO de Big Boss du 2026-10-14 : M1e (STG-COMMUN6-DIAG.md § 5), journal seulement. Sans UE ni compilation ; VAL statique par un agent
distinct ; la mesure entre dans le build suivant. Lot STG, registre STG-TACHES.md.
1. Écart à la proposition du DIAG
Le DIAG plaçait le témoin dans le préprocesseur de LPKeyboardSubsystem. Celui-ci n'est enregistré que pendant que le panneau Clavier
est ouvert (OpenKeyboardMenu l. 637, TakeEmbeddedPage l. 618), et il consomme alors toutes les touches. Il ne voit donc rien en jeu.
Le témoin est un préprocesseur propre à DirectControl, enregistré à Initialize et retiré à Deinitialize.
LPKeyboardSubsystem n'est pas modifié. Le périmètre reste dans le GO : un seul des deux fichiers nommés, et le journal seulement.
2. Instantané
Snapshot.ps1 -Lot STG-M1e. Les quatre fichiers ont été sauvegardés (D:\Game\LifePlay_Backup_5.5\STG-M1e\manifest.csv) :
| Fichier | MD5 avant |
|---|---|
LPDirectControlSubsystem.cpp |
BAAA3982583B70A56602CBFE95BF4FA4 |
LPDirectControlSubsystem.h |
77AE7007C77403F05C6697771029CC8C |
LPKeyboardSubsystem.cpp / .h (non modifiés) |
5D60D3F8FFE721698820FE68E55F938C / EED95E9860B26C5A7327CE4E3F90D8C8 |
3. Changements (STG-M1e.diff, contre l'instantané)
LPDirectControlSubsystem.cpp (CRLF conservé) :
-
include
Framework/Application/IInputProcessor.h; -
MenuOnScreen(bool) devientMenuReason(FString), avec les mêmes tests dans le même ordre. Valeurs renvoyées :clavier: panneau Clavier ;- nom de la classe du menu affiché (liste
MenuClassesinchangée) ; focus <type>: saisie de texte ;- vide : rien ne bloque.
Ticken tirebMenuBlocks = !MenuWhy.IsEmpty(), toujours toutes les 0,25 s. Le comportement de la marche est inchangé. -
IsMoveKey,SlateMoveKeysetFMoveKeyWitness(IInputProcessor) : chaque appui et chaque relâchement d'une touche des axesMoveForward/MoveRightest noté. Le témoin renvoie toujoursfalseet ne consomme jamais l'évènement. -
Initializeenregistre le témoin (si Slate est initialisé) etDeinitializele retire. -
WitnessMoveKeys, appelé à chaque tick :- une ligne
M1e : marche coupee par le menu <cause>au début d'un blocage par menu, et une ligneM1e : marche rendue (fin du blocage par <cause>)à la fin ; - tant qu'une touche de marche est tenue, une ligne par seconde au plus, au format :
M1e : touche <K> vue par Slate ; PlayerInput=<0|1> ; marche <ouverte | coupee (menu X) | coupee (SexOn)> ; focus <type> ; entree PC=<0|1> move ignore=<0|1> viewport ignore=<0|1> ; vue <acteur>; - si la fenêtre du jeu perd l'activité, la liste du témoin est vidée (un relâchement perdu ne laisse pas de touche fantôme).
- une ligne
-
le commentaire de
ScenePlaying(l. 459) citeMenuReasonau lieu deMenuOnScreen.
LPDirectControlSubsystem.h : la déclaration WitnessMoveKeys, et les membres MoveWitness, MenuWhy, LoggedMenuWhy et
MoveLogDelay.
4. Lecture attendue à l'essai (cas du DIAG)
| Ligne | Lecture |
|---|---|
vue par Slate ; PlayerInput=0 ; marche ouverte |
H2 : la touche se perd entre Slate et le contrôleur → C6-a |
PlayerInput=1 ; marche ouverte, sans « le joueur quitte » |
anomalie dans Walk (non attendue) |
marche coupee (menu Scene_C) alors qu'aucune boîte n'est visible (capture) |
boîte invisible → C6-b |
aucune ligne M1e : touche pendant la tentative |
la touche n'atteint même pas Slate (fenêtre, clavier) ou H1 |
5. MD5 après
| Fichier | MD5 |
|---|---|
LPDirectControlSubsystem.cpp |
AD60A24FB3E3075299C1F4EC5F087011 |
LPDirectControlSubsystem.h |
979AE0ADA261655CBBE9AEFD6969E833 |
Non compilé (consigne du GO) : la compilation relève du prochain build commun.
6. Retour arrière (proposé, jamais lancé sans accord)
Snapshot.ps1 -Lot STG-M1e-retour -Path … puis Restore.ps1 -Lot STG-M1e -Only Source\LifePlay\LPDirectControlSubsystem.cpp (et .h).
Ces fichiers reprennent alors BAAA3982… / 77AE7007….
7. Ce qui n'a pas été fait
- Compilation et essai : au prochain build commun, sur ordre de Big Boss.
LPKeyboardSubsystem: non modifié (§ 1).- C6-a, C6-b : décidés après la mesure.
8. Points à confirmer
- Compilation : la VAL statique (
STG-M1e-VAL.md) n'a relevé aucune erreur probable sur les en-têtes UE 5.8. - En jeu : vérifier qu'aucune ligne
M1en'apparaît sans touche tenue, et que le menu Clavier ou une saisie de texte n'en donnent pas de fausse.
9. Fichiers à commiter
Source/LifePlay/LPDirectControlSubsystem.cpp, Source/LifePlay/LPDirectControlSubsystem.h, Docs/Migration/etat/ST/STG/STG-M1e-IMPL.md,
Docs/Migration/etat/ST/STG/STG-M1e.diff.
Tours : 8