Skip to content

Make it possible to opt out of composing variables

AnyOldName3 requested to merge AnyOldName3/openmw:opt-out-compose into master

As of !367 (merged) content became a composing variable like nearly every other multi-token variable we've got, meaning the lists from all the config sources (command line, and user, local and global openmw.cfg) get joined together. I still think it was likely an oversight/typo that lead to it not being composing in the first place, but I learned recently that the CS relied on the old behaviour.

This new approach should make the consistent behaviour the default, and allow opting into the old behaviour when required. This probably has the benefit of unblocking !1005 (merged) without requiring a solution to #2491 (closed).

Examples:

# load just the example suite, ignoring data and content specified in openmw.cfg
openmw --replace content --replace data --content ExampleSuite.omwgame --data ~/example-suite/data
# load the normal mod list, plus an extra mod
openmw --data ~/mods/new-mod --content new-mod.esp

Like all config settings, this can be set in openmw.cfg as well as the command line, so adding replace=data to the user config would let you discard the data=data line specified in the global config.

This probably needs to end up in 0.47 as #6186 (closed) is a regression and this makes it go away as the CS opts into the old behaviour and other sources of duplicates generate an error.

The launcher is not yet aware of the new replace setting, so I'll add that tomorrow.

Resolves #6186 (closed)

Merge request reports