ENGINES: Add optional extra configuration entries when creating new targets

This commit is contained in:
Paul Gilbert 2018-10-17 22:44:45 -07:00 committed by Paul Gilbert
parent db35a9cdc8
commit ef161922d8
2 changed files with 20 additions and 0 deletions

View file

@ -580,6 +580,11 @@ Common::String EngineManager::createTargetForGame(const DetectedGame &game) {
addStringToConf("extra", game.extra, domain);
addStringToConf("guioptions", game.getGUIOptions(), domain);
// Add any extra configuration keys
for (Common::StringMap::iterator i = game._extraConfigEntries.begin();
i != game._extraConfigEntries.end(); ++i)
addStringToConf((*i)._key, (*i)._value, domain);
// TODO: Setting the description field here has the drawback
// that the user does never notice when we upgrade our descriptions.
// It might be nice to leave this field empty, and only set it to

View file

@ -148,6 +148,21 @@ struct DetectedGame {
*/
GameSupportLevel gameSupportLevel;
/**
* A list of extra keys to write to the configuration file
*/
Common::StringMap _extraConfigEntries;
/**
* Allows adding of extra entries to be saved as part of the detection entry
* in the configuration file.
* @remarks Any entry added using this should not be relied on being present
* in the configuration file, since starting games directly from the
* command line bypasses the game detection code
*/
void addExtraEntry(const Common::String &key, const Common::String &value) {
_extraConfigEntries[key] = value;
}
private:
/**
* Update the description string by appending (EXTRA/PLATFORM/LANG) to it.