bool loadSettings() { // init defaults for (int i = 0; i < config_size; i++) { ConfigEntry * entry = config + i; tryParseValue(*entry->type, entry->default_val, entry->storage); } // try read from file FileParser infile; if (!infile.open(PATH_CONF + FILE_SETTINGS, false, "")) { loadAndroidDefaults(); if (!infile.open("engine/default_settings.txt", true, "")) { saveSettings(); return true; } else saveSettings(); } while (infile.next()) { ConfigEntry * entry = getConfigEntry(infile.key); if (entry) { tryParseValue(*entry->type, infile.val, entry->storage); } } infile.close(); loadAndroidDefaults(); return true; }
/** * Load all default settings, except video settings. */ bool loadDefaults() { // HACK init defaults except video for (int i = 3; i < config_size; i++) { ConfigEntry * entry = config + i; tryParseValue(*entry->type, entry->default_val, entry->storage); } loadAndroidDefaults(); return true; }
bool tryParseValue(const std::type_info & type, const char * value, void * output) { return tryParseValue(type, std::string(value), output); }