LifePlay-Revival/Docs/Migration/17_Mods_Ecran_Titre.md
edujiro5972 3c2da7a516 H3a et UI15 : mod d'assets cuit a part (Pocolov 05), gestionnaire de mods sur l'ecran titre
- 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>
2026-10-03 04:07:11 +02:00

3.4 KiB

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.

& $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.