void Package::archiveInstall() { LOG(INFO) << "Extracting the package \"" << getConfigVar(PPKPath) << "\" named \"" << getConfigVar(Name) << "\" to \"" << QDir::currentPath().toStdString() + "/Games/" + getConfigVar(Name) << "\"."; JlCompress::extractDir(QString::fromStdString(getConfigVar(PPKPath)), QDir::currentPath() + "/Games/" + QString::fromStdString(getConfigVar(Name))); LOG(INFO) << "Successfully installed package named \"" << getConfigVar(Name) << "\" with version " << getVersion().asString() << "."; }
void Package::install() { if(m_packageManager != nullptr) { //Check if the package already exists. PackagePtr package = m_packageManager->getPackageFromName(getConfigVar(Name)); //Compare the versions if older version exist. if(package) { LOG(INFO) << "The package named \"" << getConfigVar(Name) << "\" is already installed. (Version: " << package->getVersion().asString() << ")."; packaging::Version oldVersion = package->getVersion(); if(oldVersion < getVersion()) { LOG(INFO) << "Replacing older version " << package->getVersion().asString() << " of package \"" << getConfigVar(Name) << "\" with newer version " << getVersion().asString() << "."; } else { LOG(INFO) << "Replacing newer version " << package->getVersion().asString() << " of package \"" << getConfigVar(Name) << "\" with older version " << getVersion().asString() << "."; } } } if(flagActive(IsLoadedFromPPK)) { //Install from archive archiveInstall(); } else { //Install from directory directoryInstall(); } }
void LoadSave::saveLayoutConfig(mopo::StringLayout* layout) { if (layout == nullptr) return; var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); DynamicObject* layout_object = new DynamicObject(); String chromatic_layout; wchar_t up_key = L'\0'; wchar_t down_key = L'\0'; if (layout) { chromatic_layout = String(layout->getLayout().data()); up_key = layout->getUpKey(); down_key = layout->getDownKey(); } else { chromatic_layout = String(getComputerKeyboardLayout().data()); std::pair<wchar_t, wchar_t> octave_controls = getComputerKeyboardOctaveControls(); down_key = octave_controls.first; up_key = octave_controls.second; } layout_object->setProperty("chromatic_layout", chromatic_layout); layout_object->setProperty("octave_up", String() + up_key); layout_object->setProperty("octave_down", String() + down_key); config_object->setProperty("keyboard_layout", layout_object); saveVarToConfig(config_object); }
// Return int value of charging algorithm int Config::getChargingAlg() { std::string value = getConfigVar("chargingalgorithm"); if(value.compare("uncontrolled") == 0) return 0; else if(value.compare("equalshare") == 0) return 1; else if(value.compare("distributed") == 0) return 2; else if(value.compare("ergon") == 0) return 3; else if(value.compare("TOU") == 0) return 4; else if(value.compare("optimal1") == 0) return 5; else if(value.compare("optimal2") == 0) return 6; else if(value.compare("optimal3") == 0) return 7; else if(value.compare("discrete") == 0) return 8; else if(value.compare("wplug") == 0) return 10; else if(value.compare("wplug2") == 0) return 11; return 0; }
void LoadSave::saveMidiMapConfig(MidiManager* midi_manager) { MidiManager::midi_map midi_learn_map = midi_manager->getMidiLearnMap(); var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); Array<var> midi_learn_object; for (auto midi_mapping : midi_learn_map) { DynamicObject* midi_map_object = new DynamicObject(); Array<var> midi_destinations_object; midi_map_object->setProperty("source", midi_mapping.first); for (auto midi_destination : midi_mapping.second) { DynamicObject* midi_destination_object = new DynamicObject(); midi_destination_object->setProperty("destination", String(midi_destination.first)); midi_destination_object->setProperty("min_range", midi_destination.second.first); midi_destination_object->setProperty("max_range", midi_destination.second.second); midi_destinations_object.add(midi_destination_object); } midi_map_object->setProperty("destinations", midi_destinations_object); midi_learn_object.add(midi_map_object); } config_object->setProperty("midi_learn", midi_learn_object); saveVarToConfig(config_object); }
int ConfigManager::increaseCounter (const std::string& counterId) { const ConfigVarPtr& var = getConfigVar(counterId, "0", true); int current = var->getIntValue(); ++current; var->setValue(current); return current; }
// Some simple input error checking. Allows config to have e.g. any of the // following with same result: MATLAB, Matlab, matlab, 1. void Config::correctValues() { std::string value = getConfigVar("loadflowsimulator"); if(value.compare("Testing") == 0 || value.compare("testing") == 0 || value.compare("0") == 0) setConfigVar("loadflowsimulator", "testing"); else if(value.compare("Matlab") == 0 || value.compare("MATLAB") == 0 || value.compare("matlab") == 0 || value.compare("1") == 0) setConfigVar("loadflowsimulator", "matlab"); else if(value.compare("DIGSILENT") == 0 || value.compare("DigSilent") == 0 || value.compare("digsilent") == 0 || value.compare("2") == 0) setConfigVar("loadflowsimulator", "digsilent"); value = getConfigVar("chargingalgorithm"); if(value.compare("Uncontrolled") == 0 || value.compare("uncontrolled") == 0 || value.compare("0") == 0) setConfigVar("chargingalgorithm", "uncontrolled"); else if(value.compare("EqualShare") == 0 || value.compare("equalshare") == 0 || value.compare("1") == 0) setConfigVar("chargingalgorithm", "equalshare"); else if(value.compare("Distributed") == 0 || value.compare("distributed") == 0 || value.compare("2") == 0) setConfigVar("chargingalgorithm", "distributed"); else if(value.compare("TOU") == 0 || value.compare("tou") == 0 || value.compare("4") == 0) setConfigVar("chargingalgorithm", "TOU"); else if(value.compare("OPTIMAL1") == 0 || value.compare("Optimal1") == 0 || value.compare("optimal1") == 0 || value.compare("5") == 0) setConfigVar("chargingalgorithm", "optimal1"); else if(value.compare("OPTIMAL2") == 0 || value.compare("Optimal2") == 0 || value.compare("optimal2") == 0 || value.compare("6") == 0) setConfigVar("chargingalgorithm", "optimal2"); }
void LoadSave::saveVersionConfig() { var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); config_object->setProperty("synth_version", ProjectInfo::versionString); saveVarToConfig(config_object); }
void LoadSave::saveAnimateWidgets(bool animate_widgets) { var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); config_object->setProperty("animate_widgets", animate_widgets); saveVarToConfig(config_object); }
// Return 4-tuple specifying probability distribution to add noise to a given // parameter. 4-tuple is (mean, std_deviation, max_value, min_value). double* Config::getRandomParams(std::string name) { std::string value = getConfigVar(name); std::vector<std::string> tokens; utility::tokenize(value, tokens, ","); double *vars = new double[4]; for(int i=0; i<4; i++) vars[i] = utility::string2double(tokens.at(i)); return vars; }
void LoadSave::saveUpdateCheckConfig(bool check_for_updates) { var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); config_object->setProperty("check_for_updates", check_for_updates); saveVarToConfig(config_object); }
void Package::saveToPPK(const std::string &destination) { if(!flagActive(HasName)) { LOG(FATAL) << "Package cannot be created, the package has no name!"; return; } if(!flagActive(HasDirectory)) { LOG(FATAL) << "Package \"" << getConfigVar(Name) << "\" has no directory! No PPK/ZIP file can be created without a source."; return; } if(!flagActive(HasAuthor)) { LOG(WARNING) << "The package \"" << getConfigVar(Name) << "\" has no author specified. The author field will be left blank."; } if(!flagActive(HasVersion)) { LOG(WARNING) << "The package \"" << getConfigVar(Name) << "\" has no version specified! You will not be able to update this package automaticly."; } YAML::Emitter out; out << YAML::BeginMap; for(auto &configVar : m_configVars) { out << YAML::Key << getConfigVarName(configVar.first); out << YAML::Value << configVar.second; } out << YAML::EndMap; std::ofstream outConfigFile(getConfigVar(Directory) + "/PackageSpecs.yml"); outConfigFile << out.c_str(); outConfigFile.close(); LOG(INFO) << "Compressing PPK with destination \"" << destination << "\" and source \"" << getConfigVar(Directory) << "\"."; JlCompress::compressDir(QString::fromStdString(destination), QString::fromStdString(getConfigVar(Directory)), true); }
// If config variable is boolean, get bool value directly bool Config::getBool(std::string name) { std::string value = getConfigVar(name); if(value.compare("Yes") == 0 || value.compare("True") == 0 || value.compare("yes") == 0 || value.compare("true") == 0 || value.compare("1") == 0) return true; return false; }
bool LoadSave::shouldAnimateWidgets() { var config_state = getConfigVar(); DynamicObject* config_object = config_state.getDynamicObject(); if (!config_state.isObject()) return true; if (!config_object->hasProperty("animate_widgets")) return true; return config_object->getProperty("animate_widgets"); }
bool LoadSave::shouldCheckForUpdates() { var config_state = getConfigVar(); DynamicObject* config_object = config_state.getDynamicObject(); if (!config_state.isObject()) return true; if (!config_object->hasProperty("check_for_updates")) return true; return config_object->getProperty("check_for_updates"); }
// Return int value of load flow simulation tool int Config::getLoadFlowSim() { std::string value = getConfigVar("loadflowsimulator"); if(value.compare("testing") == 0) return 0; else if(value.compare("matlab") == 0) return 1; else if(value.compare("digsilent") == 0) return 2; return 1; }
void ConfigManager::setConfig (const ICommand::Args& args) { if (args.size() != 2) { Log::error(LOG_CONFIG, "parameters: the config key"); return; } Log::info(LOG_CONFIG, "set %s to %s", args[0].c_str(), args[1].c_str()); ConfigVarPtr p = getConfigVar(args[0]); p->setValue(args[1]); }
void Package::directoryInstall() { QString srcFilePath = QString::fromStdString(getConfigVar(Directory)); QString tgtFilePath = QDir::currentPath() + "/Games/" + QString::fromStdString(getConfigVar(Name)); LOG(INFO) << "Installing \"" << getConfigVar(Name) << "\" with version " << getVersion().asString() << " from \"" << srcFilePath.toStdString() << "\" to \"" << tgtFilePath.toStdString() << "\"."; QFileInfo srcFileInfo(srcFilePath); if (srcFileInfo.isDir()) { QDir targetDir(tgtFilePath); targetDir.cdUp(); if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName())) LOG(FATAL) << "Install failure: Could not create target directory."; QDir sourceDir(srcFilePath); QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System); Q_FOREACH(const QString &fileName, fileNames) { const QString newSrcFilePath = srcFilePath + QLatin1Char('/') + fileName; const QString newTgtFilePath = tgtFilePath + QLatin1Char('/') + fileName; } } else {
void LoadSave::loadConfig(MidiManager* midi_manager, mopo::StringLayout* layout) { var config_var = getConfigVar(); if (!config_var.isObject()) config_var = new DynamicObject(); DynamicObject* config_object = config_var.getDynamicObject(); NamedValueSet config_properties = config_object->getProperties(); // Computer Keyboard Layout if (layout) { layout->setLayout(getComputerKeyboardLayout()); std::pair<wchar_t, wchar_t> octave_controls = getComputerKeyboardOctaveControls(); layout->setDownKey(octave_controls.first); layout->setUpKey(octave_controls.second); } // Midi Learn Map if (config_properties.contains("midi_learn")) { MidiManager::midi_map midi_learn_map = midi_manager->getMidiLearnMap(); Array<var>* midi_learn = config_properties["midi_learn"].getArray(); var* midi_source = midi_learn->begin(); for (; midi_source != midi_learn->end(); ++midi_source) { DynamicObject* source_object = midi_source->getDynamicObject(); int source = source_object->getProperty("source"); if (source_object->hasProperty("destinations")) { Array<var>* destinations = source_object->getProperty("destinations").getArray(); var* midi_destination = destinations->begin(); for (; midi_destination != destinations->end(); ++midi_destination) { DynamicObject* destination_object = midi_destination->getDynamicObject(); String destination_name = destination_object->getProperty("destination").toString(); mopo::mopo_float min_range = destination_object->getProperty("min_range"); mopo::mopo_float max_range = destination_object->getProperty("max_range"); midi_learn_map[source][destination_name.toStdString()] = MidiManager::midi_range(min_range, max_range); } } } midi_manager->setMidiLearnMap(midi_learn_map); } }
std::pair<wchar_t, wchar_t> LoadSave::getComputerKeyboardOctaveControls() { std::pair<wchar_t, wchar_t> octave_controls(mopo::DEFAULT_KEYBOARD_OCTAVE_DOWN, mopo::DEFAULT_KEYBOARD_OCTAVE_UP); var config_state = getConfigVar(); if (config_state.isVoid()) return octave_controls; DynamicObject* config_object = config_state.getDynamicObject(); NamedValueSet config_properties = config_object->getProperties(); if (config_properties.contains("keyboard_layout")) { DynamicObject* layout = config_properties["keyboard_layout"].getDynamicObject(); octave_controls.first = layout->getProperty("octave_down").toString()[0]; octave_controls.second = layout->getProperty("octave_up").toString()[0]; } return octave_controls; }
std::wstring LoadSave::getComputerKeyboardLayout() { var config_state = getConfigVar(); if (config_state.isVoid()) return mopo::DEFAULT_KEYBOARD; DynamicObject* config_object = config_state.getDynamicObject(); NamedValueSet config_properties = config_object->getProperties(); if (config_properties.contains("keyboard_layout")) { DynamicObject* layout = config_properties["keyboard_layout"].getDynamicObject(); if (layout->hasProperty("chromatic_layout")) return layout->getProperty("chromatic_layout").toString().toWideCharPointer(); } return mopo::DEFAULT_KEYBOARD; }
bool LoadSave::wasUpgraded() { var config_state = getConfigVar(); DynamicObject* config_object = config_state.getDynamicObject(); if (!config_state.isObject()) return true; if (!config_object->hasProperty("synth_version")) return true; Array<File> patches; String extension = String("*.") + mopo::PATCH_EXTENSION; getBankDirectory().findChildFiles(patches, File::findFiles, true, extension); if (patches.size() == 0) return true; return compareVersionStrings(config_object->getProperty("synth_version"), ProjectInfo::versionString) < 0; }
ConfigVarPtr ConfigManager::getConfigValue (KeyValueMap &map, const std::string& name, const std::string& defaultValue, unsigned int flags) { const std::string& savedValue = _persister->getValue(name); std::string val = savedValue; if (val.empty()) { KeyValueMap::iterator i = map.find(name); if (i != map.end()) { val = i->second; map.erase(i); } } if (val.empty()) val = defaultValue; if (!savedValue.empty()) Log::info(LOG_CONFIG, "use stored value '%s' for key '%s'", val.c_str(), name.c_str()); else Log::info(LOG_CONFIG, "use value '%s' for key '%s'", val.c_str(), name.c_str()); const ConfigVarPtr& p = getConfigVar(name, val, true, flags); return p; }
ConfigVarPtr ConfigManager::getConfigValue (KeyValueMap &map, const std::string& name, const std::string& defaultValue, unsigned int flags) { // we need this no-persist check here, because this wasn't available in every version const std::string savedValue = (flags & CV_NOPERSIST) != 0 ? "" : _persister->getValue(name); std::string val = savedValue; if (val.empty()) { KeyValueMap::iterator i = map.find(name); if (i != map.end()) { val = i->second; map.erase(i); } } if (val.empty()) val = defaultValue; if (!savedValue.empty()) Log::info(LOG_COMMON, "use stored value '%s' for key '%s'", val.c_str(), name.c_str()); else Log::info(LOG_COMMON, "use value '%s' for key '%s'", val.c_str(), name.c_str()); const ConfigVarPtr& p = getConfigVar(name, val, true, flags); return p; }
void ConfigManager::init (IBindingSpaceListener *bindingSpaceListener, int argc, char **argv) { _persister = new ConfigPersisterSQL(System.getDatabaseDirectory() + Singleton<Application>::getInstance().getName() + ".sqlite"); Log::info(LOG_COMMON, "init configmanager"); _persister->init(); _bindingSpaceListener = bindingSpaceListener; LUA lua; Log::info(LOG_COMMON, "load config lua file"); const bool success = lua.load("config.lua"); if (!success) { Log::error(LOG_COMMON, "could not load config"); } if (success) { Log::info(LOG_COMMON, "load config values"); getKeyValueMap(lua, _configVarMap, "settings"); Log::info(LOG_COMMON, "load keybindings"); getBindingMap(lua, _keybindings, KEY_CONFIG_KEYBINDINGS, KEYBOARD); Log::info(LOG_COMMON, "load controller bindings"); getBindingMap(lua, _controllerBindings, KEY_CONFIG_CONTROLLERBINDINGS, CONTROLLER); } _language = getConfigValue(_configVarMap, "language", System.getLanguage()); _gameController = getConfigValue(_configVarMap, "gamecontroller"); _gameControllerTriggerAxis = getConfigValue(_configVarMap, "gamecontrollertriggeraxis"); _showFPS = getConfigValue(_configVarMap, "showfps"); _width = getConfigValue(_configVarMap, "width", "-1"); _height = getConfigValue(_configVarMap, "height", "-1"); _fullscreen = getConfigValue(_configVarMap, "fullscreen", "true"); _soundEnabled = getConfigValue(_configVarMap, "sound"); _port = getConfigValue(_configVarMap, "port", "4567"); _debug = getConfigValue(_configVarMap, "debug", "false"); #ifdef NONETWORK _network = getConfigValue(_configVarMap, "network", "false"); #else _network = getConfigValue(_configVarMap, "network", "true"); #endif _vsync = getConfigValue(_configVarMap, "vsync", "true"); _textureSize = getConfigValue(_configVarMap, "texturesize", "auto"); _grabMouse = getConfigValue(_configVarMap, "grabmouse", "true"); _soundEngine = getConfigValue(_configVarMap, "soundengine", "sdl"); _particles = getConfigValue(_configVarMap, "particles", "0"); _renderToTexture = getConfigValue(_configVarMap, "rendertotexture", "1"); getConfigValue(_configVarMap, "red", "8"); getConfigValue(_configVarMap, "green", "8"); getConfigValue(_configVarMap, "blue", "8"); _serverName = getConfigVar("servername", System.getCurrentUser()); _name = getConfigVar("name", System.getCurrentUser()); _debugui = getConfigVar("debugui", "false"); _debugEntity = getConfigVar("debugentity", "false", true); getConfigVar("alreadyrated", "false", true); _mode = getConfigValue(_configVarMap, "mode", ""); #if 0 // disabled because the vars must be created on access - to set the flags properly for (KeyValueMap::iterator i = _configVarMap.begin(); i != _configVarMap.end(); ++i) { getConfigVar(i->first, i->second, true); } std::vector<std::string> vars; _persister->getVars(vars); for (std::vector<std::string>::const_iterator i = vars.begin(); i != vars.end(); ++i) { getConfigVar(*i); } for (auto entry : _configVars) { Log::info(LOG_COMMON, "'%s' with value '%s'", entry.first.c_str(), entry.second->getValue().c_str()); } #endif memset(&_debugRendererData, 0, sizeof(_debugRendererData)); Log::info(LOG_COMMON, "mouse grab enabled: %s", _grabMouse->getValue().c_str()); Log::info(LOG_COMMON, "controller enabled: %s", _gameController->getValue().c_str()); Log::info(LOG_COMMON, " sound enabled: %s", _soundEnabled->getValue().c_str()); Log::info(LOG_COMMON, " debug enabled: %s", _debug->getValue().c_str()); Commands.registerCommand("loglevel", bindFunction(ConfigManager::setLogLevel)); CommandPtr cmd = Commands.registerCommand(CMD_SETVAR, bindFunction(ConfigManager::setConfig)); cmd->setCompleter([&] (const std::string& input, std::vector<std::string>& matches) { for (auto entry : _configVars) { if (!string::startsWith(entry.first, input)) continue; matches.push_back(entry.first); } }); Commands.registerCommand(CMD_LISTVARS, bindFunction(ConfigManager::listConfigVariables)); for (int i = 0; i < argc; i++) { if (argv[i][0] != '-') continue; const std::string command = &argv[i][1]; if (command == CMD_SETVAR) { if (i + 2 >= argc) continue; const std::string var = argv[i + 1]; const std::string val = argv[i + 2]; ConfigVarPtr p = getConfigVar(var); p->setValue(val); *argv[i] = *argv[i + 1] = *argv[i + 2] = '\0'; i += 2; } else if (command == "loglevel") { if (i + 1 >= argc) continue; ICommand::Args a; a.push_back(argv[i + 1]); setLogLevel(a); *argv[i] = *argv[i + 1] = '\0'; i += 1; } } increaseCounter("launchcount"); _persister->save(_configVars); }
// If config variable is int, get int value directly int Config::getInt(std::string name) { std::string value = getConfigVar(name); return utility::string2int(value); }
// If config variable is double, get double value directly double Config::getDouble(std::string name) { std::string value = getConfigVar(name); return utility::string2double(value); }
// If config variable is string, get string value directly std::string Config::getString(std::string name) { return getConfigVar(name); }
void ConfigManager::init (IBindingSpaceListener *bindingSpaceListener, int argc, char **argv) { _persister = new ConfigPersisterSQL(); Log::info(LOG_CONFIG, "init configmanager"); _persister->init(); _bindingSpaceListener = bindingSpaceListener; LUA lua; Log::info(LOG_CONFIG, "load config lua file"); const bool success = lua.load("config.lua"); if (!success) { Log::error(LOG_CONFIG, "could not load config"); } if (success) { Log::info(LOG_CONFIG, "load config values"); getKeyValueMap(lua, _configVarMap, "settings"); Log::info(LOG_CONFIG, "load keybindings"); getBindingMap(lua, _keybindings, KEY_CONFIG_KEYBINDINGS, KEYBOARD); Log::info(LOG_CONFIG, "load controller bindings"); getBindingMap(lua, _controllerBindings, KEY_CONFIG_CONTROLLERBINDINGS, CONTROLLER); Log::info(LOG_CONFIG, "load joystick bindings"); getBindingMap(lua, _joystickBindings, KEY_CONFIG_JOYSTICKBINDINGS, JOYSTICK); } _language = getConfigValue(_configVarMap, "language", System.getLanguage()); _joystick = getConfigValue(_configVarMap, "joystick"); _showFPS = getConfigValue(_configVarMap, "showfps"); _width = getConfigValue(_configVarMap, "width", "-1"); _height = getConfigValue(_configVarMap, "height", "-1"); _fullscreen = getConfigValue(_configVarMap, "fullscreen", "true"); _soundEnabled = getConfigValue(_configVarMap, "sound"); _port = getConfigValue(_configVarMap, "port", "4567"); _debug = getConfigValue(_configVarMap, "debug", "false"); #ifdef NONETWORK _network = getConfigValue(_configVarMap, "network", "false"); #else _network = getConfigValue(_configVarMap, "network", "true"); #endif _vsync = getConfigValue(_configVarMap, "vsync", "true"); _textureSize = getConfigValue(_configVarMap, "texturesize", "auto"); _maxHitpoints = getConfigValue(_configVarMap, "maxhitpoints", "100"); _damageThreshold = getConfigValue(_configVarMap, "damagethreshold", "0.3"); _referenceTimeFactor = getConfigValue(_configVarMap, "referencetimefactor", "1.0"); _fruitCollectDelayForANewLife = getConfigValue(_configVarMap, "fruitcollectdelayforanewlife", "15000"); _amountOfFruitsForANewLife = getConfigValue(_configVarMap, "amountoffruitsforanewlife", "4"); _fruitHitpoints = getConfigValue(_configVarMap, "fruithitpoints", "10"); _npcFlyingSpeed = getConfigValue(_configVarMap, "npcflyingspeed", "4.0"); _mode = getConfigValue(_configVarMap, "mode", ""); _waterParticle = getConfigValue(_configVarMap, "waterparticle", "false", CV_READONLY); _grabMouse = getConfigValue(_configVarMap, "grabmouse", "true"); _soundEngine = getConfigValue(_configVarMap, "soundengine", "sdl"); _particles = getConfigValue(_configVarMap, "particles", "0"); _serverName = getConfigVar("servername", System.getCurrentUser()); _name = getConfigVar("name", System.getCurrentUser()); _amountOfFruitsForANewLife = getConfigValue(_configVarMap, "amountoffruitsforanewlife", "4"); _debugui = getConfigVar("debugui", "false"); getConfigVar("debugentity", "false", true); getConfigVar("debugui", "false", true); for (KeyValueMap::iterator i = _configVarMap.begin(); i != _configVarMap.end(); ++i) { getConfigVar(i->first, i->second, true); } std::vector<std::string> vars; _persister->getVars(vars); for (std::vector<std::string>::const_iterator i = vars.begin(); i != vars.end(); ++i) { getConfigVar(*i); } for (ConfigVarsMap::iterator i = _configVars.begin(); i != _configVars.end(); ++i) { Log::info(LOG_CONFIG, "'%s' with value '%s'", i->first.c_str(), i->second->getValue().c_str()); } memset(&_debugRendererData, 0, sizeof(_debugRendererData)); Log::info(LOG_CONFIG, "mouse grab enabled: %s", _grabMouse->getValue().c_str()); Log::info(LOG_CONFIG, " joystick enabled: %s", _joystick->getValue().c_str()); Log::info(LOG_CONFIG, " sound enabled: %s", _soundEnabled->getValue().c_str()); Log::info(LOG_CONFIG, " debug enabled: %s", _debug->getValue().c_str()); CommandSystem::get().registerCommand("loglevel", bindFunction(ConfigManager, setLogLevel)); CommandSystem::get().registerCommand(CMD_SETVAR, bindFunction(ConfigManager, setConfig)); CommandSystem::get().registerCommand(CMD_LISTVARS, bindFunction(ConfigManager, listConfigVariables)); for (int i = 0; i < argc; i++) { if (argv[i][0] != '-') continue; const std::string command = &argv[i][1]; if (command != CMD_SETVAR) continue; if (i + 2 >= argc) continue; const std::string var = argv[i + 1]; const std::string val = argv[i + 2]; ConfigVarPtr p = getConfigVar(var); p->setValue(val); *argv[i] = *argv[i + 1] = *argv[i + 2] = '\0'; i += 2; } }