v1.0.13 — Section « Arguments de lancement » indépendante du mode auto
Feature request : jusqu'à v1.0.12, les CLI args passés à PROSERVE_UE_*.exe
n'étaient utilisés QUE dans _config.AutoMode.Args, et seulement pour la
version désignée AUTO. Un opérateur qui voulait des flags globaux appliqués
à TOUS les lancements manuels (ex : -nosplash, -log, -fps=90) devait soit
activer le mode auto sur chaque version manuellement, soit modifier le
raccourci Windows (perdu au prochain install).
Fix : nouvelle section « Arguments de lancement » dans Settings → Avancés,
au-dessus du bloc « Mode auto ». Ces args sont concaténés en PREMIER dans
la ligne de commande passée à Unreal ; les args du mode auto s'ajoutent
DERRIÈRE quand la version courante est celle marquée AUTO.
Sémantique de merge :
• Non-auto (comportement neuf) : cliArgs = DefaultLaunchArgs
• Auto (comportement étendu) : cliArgs = DefaultLaunchArgs + AutoMode.Args
• Doublons de clé : Unreal FParse prend la dernière occurrence — les
auto args écrasent silencieusement un default homonyme. Voulu (ex :
-fps=90 en default, -fps=120 en auto).
Impl :
• Model : LocalConfig.DefaultLaunchArgs (List<AutoModeArg>, reuse du type
existant). Empty par défaut → rétro-compat total.
• MainViewModel.LaunchVersion : composition de argList (default puis auto).
• SettingsViewModel : nouvelle ObservableCollection DefaultLaunchArgs +
AddDefaultLaunchArgCommand + Save/Load persistence.
• SettingsDialog.xaml : nouvelle carte au-dessus d'AutoMode, patron
identique (Key + Value + Remove par ligne + bouton Ajouter).
• Strings.cs : SettingsLaunchArgs + SettingsLaunchArgsHelp (FR/EN/CN/TH/
AR/ES/DE).
Rétro-compat : configs existantes qui n'ont pas le field DefaultLaunchArgs
en JSON → deserialize en List vide → cliArgs = null sur launch manuel (=
comportement d'avant, identique).
Bump : 1.0.12 → 1.0.13 (nouvelle feature UI).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1186,13 +1186,22 @@ public sealed partial class MainViewModel : ObservableObject
|
||||
|
||||
try
|
||||
{
|
||||
// Si on lance la version désignée comme "auto", on passe les CLI args
|
||||
// configurés (ex: -autoconnect -login=Jerome2 -password=… -ipserver=10.0.4.100).
|
||||
// Pour les lancements manuels d'autres versions, args = null (comportement standard).
|
||||
// Composition des CLI args passés à PROSERVE_UE_*.exe :
|
||||
// 1. _config.DefaultLaunchArgs — appliqués à CHAQUE lancement (auto ou manuel).
|
||||
// Contenu type : -nosplash, -log, -fps=90.
|
||||
// 2. _config.AutoMode.Args — appliqués UNIQUEMENT si la version lancée est la
|
||||
// version auto désignée. Contenu type : -autoconnect, -login=Jerome,
|
||||
// -password=…, -ipserver=10.0.4.100.
|
||||
// Concaténation dans cet ordre → Unreal FParse lit dans l'ordre, la dernière
|
||||
// occurrence d'une clé gagne : les auto args écrasent les default args sur un
|
||||
// même key (comportement intentionnel : un opérateur peut avoir -fps=90 en
|
||||
// default et -fps=120 en auto sans conflit).
|
||||
var isAutoVersion = _config.AutoMode.FeatureEnabled
|
||||
&& !string.IsNullOrEmpty(_config.AutoMode.SelectedVersion)
|
||||
&& string.Equals(_config.AutoMode.SelectedVersion, row.Version, StringComparison.Ordinal);
|
||||
string[]? cliArgs = isAutoVersion ? BuildAutoModeCliArgs(_config.AutoMode.Args) : null;
|
||||
var argList = new List<AutoModeArg>(_config.DefaultLaunchArgs);
|
||||
if (isAutoVersion) argList.AddRange(_config.AutoMode.Args);
|
||||
string[]? cliArgs = argList.Count > 0 ? BuildAutoModeCliArgs(argList) : null;
|
||||
|
||||
var proc = _processLauncher.Launch(row.Installed, cliArgs);
|
||||
_runningProserve = proc;
|
||||
|
||||
Reference in New Issue
Block a user