# S3-IMPL-L — Purge sandbox côté jeu + branchement plugin LPSandbox - **Date :** 2026-10-06 - **Fiche :** S3-T3 | **Agent :** A-IMPL-L | **Modèle :** composer-2.5-fast (M0) - **Amont :** `S3/S3-IMPL-H.md` (transfert addon S3-T2) - **Statut :** implémenté — compilation UBT non relancée dans cette fiche --- ## 1. Lanceurs sandbox (`Tools/debug/*_sandbox.bat`) | Fichier | Changement | |---|---| | `LifePlay_pair_sandbox.bat` | `?game=/Script/LPSandbox.LPPairSandboxGameMode` | | `LifePlay_interaction_sandbox.bat` | idem | | `LifePlay_measure_sandbox.bat` | idem | Entry map (`/Engine/Maps/Entry`), stub `GameInstanceClass=/Script/Engine.GameInstance` et écriture `Saved/sandbox_mode.txt` (Mesure) inchangés. `Tools/BuildMod.ps1 -Target sandbox -Open` délègue toujours à `LifePlay_interaction_sandbox.bat` : aucune modification du script PowerShell. ## 2. Jonctions (temporaires, avant submodule T4) | Jonction | Cible | Résultat | |---|---|---| | `D:\Game\LifePlay-Sandbox\Content` → `D:\Game\LifePlay-master 5.5\Content` | **créée** | addon lit le Content du jeu | | `d:\Game\LifePlay-master 5.5\Plugins\LPSandbox` → `D:\Game\LifePlay-Sandbox\Plugins\LPSandbox` | **créée** | jeu charge le plugin depuis l’addon | Si une jonction existait déjà au chemin, `mklink /J` échoue (fichier/répertoire existant) — documenter et ne pas écraser. ## 3. Fichiers supprimés du repo jeu - `Source/LifePlay/LPPairSandbox.h` / `.cpp` - `Source/LifePlay/LPInteractionSandbox.h` / `.cpp` - `Source/LifePlay/LPSandboxConfig.h` / `.cpp` - `Source/LPAnimMeasure/` (module entier, 11 fichiers) **Conservé :** `Config/LPSandbox.ini` (contrat S1, lu par le plugin sur le projet hôte). ## 4. `LifePlay.uproject` - Retiré : module `LPAnimMeasure` dans `Modules[]`. - Ajouté : plugin `{ "Name": "LPSandbox", "Enabled": true }` (chemin physique = jonction §2 ; T4 = submodule). ## 5. Cibles et modules | Fichier | Action | |---|---| | `Source/LifePlay.Target.cs` | `ExtraModuleNames` : `LifePlay` seul | | `Source/LifePlayEditor.Target.cs` | retrait de `LPAnimMeasure` | | `Source/LifePlay/LifePlay.Build.cs` | **`PublicDependencyModuleNames.Add("LPAnimMeasure")` conservé** (module fourni par le plugin) | | `Source/LifePlayEditorTools/LifePlayEditorTools.Build.cs` | inchangé (`LPAnimMeasure` via plugin) | ## 6. Injection `SetUALRoot` - **`Source/LifePlay/LifePlay.cpp`** : retour à `FDefaultGameModuleImpl` (plus d’appel `SetUALRoot` / `LPSandboxConfig`). - **`Plugins/LPSandbox/Source/LPSandbox/LPSandbox.cpp`** (addon) : `FLPSandboxModule::StartupModule()` appelle `LPAnimRedirect::SetUALRoot(FLPSandboxConfig::Get().QuaterniusUALRoot)` — commit addon séparé. ## 7. Code jeu laissé tel quel (volontaire) - `LPDirectControlSubsystem.cpp` : détection sandbox par `GetName().Contains("LPPairSandbox")` — nom de classe inchangé, compatible module `LPSandbox`. - Pas de submodule git (lot T4). ## 8. Prochaine validation recommandée 1. `Build.bat LifePlayEditor Win64 Development` (jeu + plugin jonction). 2. `Tools/debug/LifePlay_pair_sandbox.bat` — chambre `work___vin01`, menu Pair. 3. Vérifier `LogLPAnimMeasure` / clips sous `/Game/Quaternius/UAL` (ini chargée).