Skip to content

GameArguments from StarMapConfig.json no longer reaches the game since 0.4.6 #83

Description

@Maximilian-Nesslauer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions