Refactor GUI options update into a function in Common: updateGameGUIOptions.
svn-id: r42446
This commit is contained in:
parent
88e0fc2c43
commit
51a9bfc9e2
4 changed files with 18 additions and 14 deletions
|
@ -24,6 +24,7 @@
|
||||||
|
|
||||||
#include "common/util.h"
|
#include "common/util.h"
|
||||||
#include "common/system.h"
|
#include "common/system.h"
|
||||||
|
#include "common/config-manager.h"
|
||||||
#include "gui/debugger.h"
|
#include "gui/debugger.h"
|
||||||
#include "engines/engine.h"
|
#include "engines/engine.h"
|
||||||
|
|
||||||
|
@ -420,6 +421,14 @@ String getGameGUIOptionsDescription(uint32 options) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateGameGUIOptions(const uint32 options) {
|
||||||
|
if ((options && !ConfMan.hasKey("guioptions")) ||
|
||||||
|
(ConfMan.hasKey("guioptions") && options != parseGameGUIOptions(ConfMan.get("guioptions")))) {
|
||||||
|
ConfMan.set("guioptions", getGameGUIOptionsDescription(options));
|
||||||
|
ConfMan.flushToDisk();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // End of namespace Common
|
} // End of namespace Common
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -284,6 +284,13 @@ bool checkGameGUIOption(GameGUIOption option, const String &str);
|
||||||
uint32 parseGameGUIOptions(const String &str);
|
uint32 parseGameGUIOptions(const String &str);
|
||||||
String getGameGUIOptionsDescription(uint32 options);
|
String getGameGUIOptionsDescription(uint32 options);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the GUI options of the current config manager
|
||||||
|
* domain, when they differ to the ones passed as
|
||||||
|
* parameter.
|
||||||
|
*/
|
||||||
|
void updateGameGUIOptions(const uint32 options);
|
||||||
|
|
||||||
} // End of namespace Common
|
} // End of namespace Common
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -296,13 +296,7 @@ Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine)
|
||||||
|
|
||||||
// If the GUI options were updated, we catch this here and update them in the users config
|
// If the GUI options were updated, we catch this here and update them in the users config
|
||||||
// file transparently.
|
// file transparently.
|
||||||
const uint32 guiOptions = agdDesc->guioptions | params.guioptions;
|
Common::updateGameGUIOptions(agdDesc->guioptions | params.guioptions);
|
||||||
|
|
||||||
if ((guiOptions && !ConfMan.hasKey("guioptions")) ||
|
|
||||||
(ConfMan.hasKey("guioptions") && parseGameGUIOptions(ConfMan.get("guioptions")) != guiOptions)) {
|
|
||||||
ConfMan.set("guioptions", Common::getGameGUIOptionsDescription(guiOptions));
|
|
||||||
ConfMan.flushToDisk();
|
|
||||||
}
|
|
||||||
|
|
||||||
debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str());
|
debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str());
|
||||||
if (!createInstance(syst, engine, agdDesc))
|
if (!createInstance(syst, engine, agdDesc))
|
||||||
|
|
|
@ -884,13 +884,7 @@ Common::Error ScummMetaEngine::createInstance(OSystem *syst, Engine **engine) co
|
||||||
|
|
||||||
// If the GUI options were updated, we catch this here and update them in the users config
|
// If the GUI options were updated, we catch this here and update them in the users config
|
||||||
// file transparently.
|
// file transparently.
|
||||||
const uint32 guiOptions = res.game.guioptions;
|
Common::updateGameGUIOptions(res.game.guioptions);
|
||||||
|
|
||||||
if ((guiOptions && !ConfMan.hasKey("guioptions")) ||
|
|
||||||
(ConfMan.hasKey("guioptions") && parseGameGUIOptions(ConfMan.get("guioptions")) != guiOptions)) {
|
|
||||||
ConfMan.set("guioptions", Common::getGameGUIOptionsDescription(guiOptions));
|
|
||||||
ConfMan.flushToDisk();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finally, we have massaged the GameDescriptor to our satisfaction, and can
|
// Finally, we have massaged the GameDescriptor to our satisfaction, and can
|
||||||
// instantiate the appropriate game engine. Hooray!
|
// instantiate the appropriate game engine. Hooray!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue