- H3a : version de reference 2026.10.4 (identique au V1.4 publie), mod d'essai LPHairSample (ModSources/, cuisson DLC contre 2026.10.4), pipeline de coiffures compatible plugins. - Activation des modules alignee sur le jeu (module absent = inactif) ; cle .lpmod MODULE_DEFAULT_ENABLED (lp_Revival). - UI15 : entree Mod Manager sur l'ecran titre, retour au menu titre, choix enregistre sans toucher a la derniere sauvegarde (LPTitleModManager, SaveModSelection). Valide en jeu le 2026-10-03 (CHG-101 a CHG-103, ERR-040, ERR-041). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
3.4 KiB
Markdown
50 lines
3.4 KiB
Markdown
# 17. Gestionnaire de mods depuis l'écran titre (lot UI15, 2026-10-03)
|
|
|
|
Demande utilisateur (test de H3a) : pouvoir activer ou désactiver les mods dès le démarrage, puis choisir entre une
|
|
nouvelle partie et une partie sauvegardée.
|
|
|
|
## 1. Constat
|
|
|
|
- Le gestionnaire de mods (`UI/ModManager`) n'était accessible qu'en partie : entrée « Mod Manager » du menu
|
|
(`MainMenu.ModManagerButton`, sous-entrée en retrait sous « Resume »), masquée sur l'écran titre par la liaison de
|
|
visibilité `ColapsedForTitleScreen`. Même chose en 4.27 (mêmes références à `ModManagerInput`).
|
|
- Sa fermeture (`GI.CloseModManager`) suppose une partie en cours : `ShowUI`, `ClearModManagerWidget`, `PopulateRaws`
|
|
(relecture des données des modules), puis `CharGenInput(GameStart=true)` ou `DelayThenFollowUp` (suite du tour).
|
|
Le paramètre `GameStart` (gestionnaire en tête de nouvelle partie) existe dans `GI` mais n'est appelé par personne.
|
|
- `GI.SaveSettings(Slot)` recrée tout `GameSettings.sav` et y mémorise `Slot` comme dernière sauvegarde
|
|
(`LastSaveGame`, utilisée par « Load Last Save ») : inutilisable hors sauvegarde de partie.
|
|
|
|
## 2. Modification
|
|
|
|
Commandlet `LPTitleModManager` (Blueprint `GI` non modifié) :
|
|
|
|
| Blueprint | Modification |
|
|
|---|---|
|
|
| `UI/MainMenu` | nouvelle entrée `ModManagerTitleButton` : copie de `LoadButton` (même taille, police et icône ronde, sans retrait), icône `mod`, placée après « Load », visible seulement sur l'écran titre (liaison `OnlyVisibleForTitleScreen`) ; clic : menu masqué, `GI.CreateModManagerWidget(GameStart=false)`, `GI.ModManager.TitleMenu = self` (7 nœuds) |
|
|
| `UI/ModManager` | variable `TitleMenu` (menu titre qui l'a ouvert) ; fermeture : si `TitleMenu` est valide, menu titre réaffiché et focalisé, `GI.ClearModManagerWidget`, `GI.PopulateRaws` (données relues avec les modules choisis), `SaveModSelection` ; sinon circuit d'origine `GI.CloseModManager` (10 nœuds) |
|
|
|
|
L'entrée d'origine `ModManagerButton` n'est pas modifiée : en partie, le gestionnaire se comporte comme avant.
|
|
|
|
`ULPModSettingsLibrary::SaveModSelection` (C++, `Source/LifePlay`) relit `GameSettings.sav`, n'y remplace que
|
|
`ModEnableds` et le réécrit : la dernière sauvegarde et les autres réglages sont conservés. Sans `GameSettings.sav`
|
|
(premier lancement), rien n'est écrit : le choix vaut pour la session et sera enregistré à la première sauvegarde de
|
|
partie, comme en partie.
|
|
|
|
```powershell
|
|
& $Cmd $Proj -run=LPTitleModManager -DryRun -unattended -nopause # essai à blanc (compilation comprise)
|
|
& $Cmd $Proj -run=LPTitleModManager -unattended -nopause # application ; un Blueprint déjà traité est sauté
|
|
```
|
|
|
|
## 3. Écarts en cours de lot
|
|
|
|
- Première version : l'entrée d'origine rendue visible sur l'écran titre (liaison retirée). Retour utilisateur : sous-entrée
|
|
en retrait et en petite police, non alignée. Remplacée par l'entrée dédiée ci-dessus (`MainMenu` restauré depuis le
|
|
snapshot `UI15` avant la nouvelle application).
|
|
- `SaveSettings(0)` envisagé puis écarté à la relecture du graphe (il aurait fait de l'emplacement 0 la dernière
|
|
sauvegarde) : remplacé par `SaveModSelection`.
|
|
|
|
## 4. Validation
|
|
|
|
Build `LifePlay_Build_5.5_UI15b`, validé en jeu le 2026-10-03 : entrée « Mod Manager » de l'écran titre au format des
|
|
autres, fermeture vers le menu titre, choix des modules appliqué (mod `LPHairSample` coché ou non) ; en partie, sous-entrée
|
|
d'origine inchangée.
|