ULTIMA8: Adding area to pass through ScummVM configuration settings to the engine

This commit is contained in:
Paul Gilbert authored and Paul Gilbert committed 2020-02-01 13:13:51 -08:00
1 parent 328e840769
commit 40bdce6190
3 files changed
+18 -3

No files matched your search

@@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ultima/ultima8/misc/pent_include.h"
#include "ultima/ultima8/conf/setting_manager.h"
#include "ultima/ultima8/conf/config_file_manager.h"
#include "common/config-manager.h"
namespace Ultima8 {
@@ -36,6 +37,17 @@ SettingManager::SettingManager() {
conffileman = ConfigFileManager::get_instance();
conffileman->readConfigString("", "defaultsettings", false);
// Setup ScummVM configuration settings
setupScummVMSettings();
}
void SettingManager::setupScummVMSettings() {
conffileman->readConfigString("", "ScummVM", false);
int saveSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1;
if (saveSlot != -1)
set("lastSave", std::string::format("@save/%d", saveSlot), DOM_SCUMMVM);
}
SettingManager::~SettingManager() {
@@ -217,6 +229,8 @@ istring SettingManager::getConfigKey(istring key, Domain dom) {
if (dom == DOM_DEFAULTS) {
ckey = "defaultsettings/";
} else if (dom == DOM_SCUMMVM) {
ckey = "ScummVM/";
} else {
ckey = "settings/" + domains[dom];
}
@@ -44,8 +44,9 @@ public:
enum Domain {
DOM_DEFAULTS = 0,
DOM_GLOBAL = 1,
DOM_GAME = 2,
DOM_SCUMMVM = 1,
DOM_GLOBAL = 2,
DOM_GAME = 3,
DOM_CURRENT = 100
};
@@ -120,6 +121,7 @@ private:
bool findKeyDomain(Pentagram::istring key, Domain dom, Domain &keydom);
Pentagram::istring getConfigKey(Pentagram::istring key, Domain dom);
void callCallbacks(Pentagram::istring key);
void setupScummVMSettings();
Callbacks callbacks;
std::vector<Pentagram::istring> domains;
@@ -107,7 +107,6 @@ void CoreApp::sysInit() {
settingman = new SettingManager();
settingman->setDomainName(SettingManager::DOM_GLOBAL, "pentagram");
settingman->setCurrentDomain(SettingManager::DOM_GLOBAL);
}
// load configuration files