3.6 KiB
3.6 KiB
Fiche STG-SF5j — Niveau N2 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5
IMPL de S-F5j (DIAG STG-SF5b-DIAG.md) : étendre S-F5 au joueur posé au bord de la rue par standIdle. GO de Big Boss
(2026-10-13), à partir de 5B65B064 / 54696352. Écrit sans compiler, sous instantané ; VAL statique par un agent distinct. Lot
STG, registre STG-TACHES.md.
1. Instantané et MD5
| Fichier | Avant | Après |
|---|---|---|
Source/LifePlay/LPOutdoorRoomSubsystem.cpp |
5B65B064983D4D66A903CA008DAFFEFD |
E84D59D6EC29052607DC5D8611566FA0 |
Source/LifePlay/LPOutdoorRoomSubsystem.h |
546963528958AA55F2587E2E924774FE |
DFC20AD4CE48B3FDA3037F82586B6BDE (commentaire seul) |
Instantané D:\Game\LifePlay_Backup_5.5\STG-SF5j\manifest.csv (pwsh, chemins entre guillemets simples, 2 copies). LF et ASCII pur,
comme avant. Diff : STG-SF5j.diff (format diff classique, .cpp puis .h).
2. Gestes
- Includes :
Blueprint/UserWidget.h,GameFramework/InputSettings.h,PlayerController.h,PlayerInput.h,LPKeyboardSubsystem.h,UObject/UObjectIterator.h. Le module dépend déjà de UMG (LifePlay.Build.csl. 38). - Constantes :
PlayerSunkScans = 4(examens à 0 ; 0,5 ; 1 ; 1,5 s) etPlayerMenuClasses(même liste queMenuClassesdeLPDirectControlSubsystem, dontScene_C). PlayerBusy(GI, World)rend vrai dans chacun de ces cas :- pas de contrôleur, d'entrée ou de réglages (par prudence) ;
- une touche liée à
MoveForwardouMoveRightest enfoncée (numérique) ou non nulle (analogique) ; ULPKeyboardSubsystem::IsMenuOpen();- un widget de la liste est dans le viewport et visible.
LiftSunkPersons:- la garde « jamais le joueur » devient
bPlayer; - le joueur passe le filtre de classe ; pour les PNJ, il reste
Person_C*; - toutes les autres gardes de S-F5 s'appliquent au joueur comme aux PNJ : extérieur, visible, pas en
NoCollision, aucun meuble occupé (OccupyingFnt), hors scène (PersonsUsedThisScene),SexOnfaux, enfoncé de plus de 15 cm, vitesse 2D ≤ 1 cm/s, même position à 1 cm près ; - 4 examens pour le joueur, au lieu de 3 ;
- au moment du relevage, si
PlayerBusyest vrai, le joueur n'est pas relevé et son examen repart de zéro (il n'est pas gardé dans la mémoire) ; - la ligne au journal commence par « joueur » : « Piece exterieure : joueur PlayerCharacter releve de … ; N releve(s) en tout ».
- la garde « jamais le joueur » devient
3. Preuves attendues de la VAL (exigence de Big Boss)
Le joueur n'est jamais déplacé dans les cas suivants :
- pendant qu'il pilote : touche de marche enfoncée (
PlayerBusy), et vitesse 2D > 1 ou position changée (examen remis à zéro) ; - pendant une action :
OccupyingFntvalide (place de meuble), ou déplacement automatique (vitesse > 1) ; - pendant une scène :
PersonsUsedThisScene, et boîteScene_Cà l'écran (PlayerBusy) ; - pendant
SexOn: aucun relevage (sortie de la fonction).
4. Essai prévu (prochain build)
- Entrer dans la street sans toucher au clavier. Si le joueur est posé au bord, enfoncé, la ligne « joueur … releve de … » apparaît environ 1,5 s après, et ses pieds sont sur le pavé.
- Garder une touche ZQSD enfoncée contre le bord : aucun relevage du joueur.
- Ouvrir la carte de la ville (
CityMenu_C) au bord : aucun relevage tant qu'elle est à l'écran.
5. Fichiers à commiter
Source/LifePlay/LPOutdoorRoomSubsystem.cpp, .h (après build et VAL), Docs/Migration/etat/ST/STG/STG-SF5b-DIAG.md,
STG-SF5j-IMPL.md, STG-SF5j.diff, STG-SF5j-VAL.md.