What happens
Arguments configured in StarMapConfig.json under GameArguments are not passed to the game anymore.
In 0.4.5, SoleModeInner constructed the GameSurveyer with gameConfig.GameArguments, and RunGame invoked the game's entry point with them.
Since the 0.4.6 single-process refactor, Program.Main passes StarMap's own process arguments instead, and gameConfig.GameArguments is never read after LoaderConfig.TryLoadConfig assigns it.
Verified by adding a probe mod that patched a prefix onto the game's Main and recorded the argument array it receives. With "GameArguments": ["-config-tracer"] in the config and -InstancePath <path> on the command line, Main received only -InstancePath <path>. The command line arrives, the config value does not.
Impact
Someone with e.g. "GameArguments": ["-fixed-viewport"] in their config silently loses the setting on updating to 0.4.6. The command line works as a stand-in (StarMap.exe -fixed-viewport reaches the game now that process arguments pass through), but the config field still exists, still parses, and looks like it works.
Suggestion
If the config field is meant to stay, forwarding could concatenate config and process arguments, e.g. [.. gameConfig.GameArguments, .. args] when constructing the GameSurveyer. If the command line is meant to replace it, removing the field from LoaderConfig and the config template would stop it from looking functional.
What happens
Arguments configured in
StarMapConfig.jsonunderGameArgumentsare not passed to the game anymore.In
0.4.5,SoleModeInnerconstructed theGameSurveyerwithgameConfig.GameArguments, andRunGameinvoked the game's entry point with them.Since the
0.4.6single-process refactor,Program.Mainpasses StarMap's own process arguments instead, andgameConfig.GameArgumentsis never read afterLoaderConfig.TryLoadConfigassigns it.Verified by adding a probe mod that patched a prefix onto the game's
Mainand recorded the argument array it receives. With"GameArguments": ["-config-tracer"]in the config and-InstancePath <path>on the command line,Mainreceived only-InstancePath <path>. The command line arrives, the config value does not.Impact
Someone with e.g.
"GameArguments": ["-fixed-viewport"]in their config silently loses the setting on updating to 0.4.6. The command line works as a stand-in (StarMap.exe -fixed-viewportreaches the game now that process arguments pass through), but the config field still exists, still parses, and looks like it works.Suggestion
If the config field is meant to stay, forwarding could concatenate config and process arguments, e.g.
[.. gameConfig.GameArguments, .. args]when constructing theGameSurveyer. If the command line is meant to replace it, removing the field fromLoaderConfigand the config template would stop it from looking functional.