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/system.h"
|
||||
#include "common/config-manager.h"
|
||||
#include "gui/debugger.h"
|
||||
#include "engines/engine.h"
|
||||
|
||||
|
@ -420,6 +421,14 @@ String getGameGUIOptionsDescription(uint32 options) {
|
|||
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
|
||||
|
||||
|
||||
|
|
|
@ -284,6 +284,13 @@ bool checkGameGUIOption(GameGUIOption option, const String &str);
|
|||
uint32 parseGameGUIOptions(const String &str);
|
||||
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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
// file transparently.
|
||||
const uint32 guiOptions = 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();
|
||||
}
|
||||
Common::updateGameGUIOptions(agdDesc->guioptions | params.guioptions);
|
||||
|
||||
debug(2, "Running %s", toGameDescriptor(*agdDesc, params.list).description().c_str());
|
||||
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
|
||||
// file transparently.
|
||||
const uint32 guiOptions = res.game.guioptions;
|
||||
|
||||
if ((guiOptions && !ConfMan.hasKey("guioptions")) ||
|
||||
(ConfMan.hasKey("guioptions") && parseGameGUIOptions(ConfMan.get("guioptions")) != guiOptions)) {
|
||||
ConfMan.set("guioptions", Common::getGameGUIOptionsDescription(guiOptions));
|
||||
ConfMan.flushToDisk();
|
||||
}
|
||||
Common::updateGameGUIOptions(res.game.guioptions);
|
||||
|
||||
// Finally, we have massaged the GameDescriptor to our satisfaction, and can
|
||||
// instantiate the appropriate game engine. Hooray!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue