3.6 KiB
3.6 KiB
Fiche REL-SAV-T3 — Niveau N3 — Modèle prévu opus | utilisé claude-opus-5-5 (session REL, sans sous-agent) — Agent session REL — Skills lp-lot
REL-SAV-IMPL : garde B+ en C++, écrite sans compiler (2026-10-13)
GO de Big Boss : IMPL (c), après acceptation de REL-SAV-SPEC.md (B+ seul, aucun lanceur).
Instantané : D:\Game\LifePlay_Backup_5.5\REL-SAV\manifest.csv :
LifePlay.cpp: FB62EEACB7884F90A9F2F308FFA22698, 734 octets ;LPSaveRelaunch.cppetLPSaveRelaunch.h:Existed=False.
Fichiers
| Fichier | État | MD5 | Contenu |
|---|---|---|---|
Source/LifePlay/LPSaveRelaunch.cpp |
nouveau, 396 l., LF, ASCII | a0cd668771ff5893ed2867f24de1df3a (après R1 ; avant : b5b37ce8…, celui de la VAL T4) | garde statique (SPEC §§ 1-4) et LogStartupState (§ 6) |
Source/LifePlay/LPSaveRelaunch.h |
nouveau, 9 l., LF, ASCII | f31173f606a8f63db762f2d8960509f8 | déclaration de LPSaveRelaunch::LogStartupState() |
Source/LifePlay/LifePlay.cpp |
modifié, +3 l. | 3f7ffa30e0ef83fc87aec297f699eea9 | #include "LPSaveRelaunch.h" ; appel après FLPModGuard::Run() avec 1 ligne de commentaire |
Écarts par rapport à la SPEC
- E1. Un en-tête
LPSaveRelaunch.h(10 lignes) a été ajouté. L'#includedemandé dansLifePlay.cppa besoin d'un en-tête ; c'est l'idiome du module (LPModGuard.h). Il est sous instantané (Existed=False). - E2.
LP_SAVE_RELAUNCHEDvaut la source (inioudefaut), et non1. Toute valeur non vide verrouille la relance ; l'enfant affiche ainsisource=au journal (SPEC § 6). - E3.
Windows/WindowsHWrapper.hest inclus avantShlObj.h. Il retire les macros Win32 conflictuelles (PostWindowsApi.h:45:GetEnvironmentVariable), comme le faitWindowsPlatformProcess.cpp:38-45.FALSEest remplacé par0, carHideWindowsPlatformTypes.hle retire. - E5 (après VAL T4, réserve R1).
ComputeTargetrefuse un"dansSaveDirdéveloppé : il fermerait-UserDir="…", et ce caractère est interdit dans un chemin Windows. Le jeu prend alors le dossier par défaut. +5 lignes ; revérifié par T4b. - E4. Motif
non-compilepour un jeu non monolithique ou hors Windows ; motifnon-executepour un état impossible.
Points vérifiés par lecture (moteur 5.8)
shell32.lib,ole32.lib,uuid.libsont reliés à toute cible Windows (UEBuildWindows.cs:2098-2101) : aucune dépendance nouvelle dansLifePlay.Build.cs.UE_GAMEvaut 0 par défaut (Build.h:22-23) et 1 pour une cible Game (TargetRules.cs:3479).- Le paquet Development a aussi
Content\Paks\LifePlay-Windows.pak. Son exe réel s'appelleBinaries\Win64\LifePlay.exe(relevé :LifePlay_Build_5.8_STE-J6_Development), alors que le Shipping produitLifePlay-Win64-Shipping.exe; la garde passe parGetModuleFileNameWet ne dépend pas du nom. - Shipping sans journal :
LifePlay.Target.csn'a pasbUseLoggingInShipping, doncUE_LOGest vide en Shipping (dossierLogsvide sur le poste). En Shipping, la ligne de § 6 n'existe pas ; la preuve passe par les lignes de commande et les dossiers.
Chaîne à chercher
- Dans l'exe Development, en UTF-16LE :
Dossier de sauvegarde :. - Dans le journal :
LogLifePlay: Display: Dossier de sauvegarde : <chemin> (relance=…, source=…, motif=…). - Message de secours (
OutputDebugStringW, visible avec DebugView seulement) :LifePlay : dossier de sauvegarde impossible a creeretLifePlay : relance avec -UserDir impossible.
Fichiers à commiter (après la VAL et l'essai COMMUN-4)
Source/LifePlay/LPSaveRelaunch.cpp, Source/LifePlay/LPSaveRelaunch.h, Source/LifePlay/LifePlay.cpp, livrables Docs/Migration/etat/REL/SAV/.