[Scummvm-git-logs] scummvm master -> 59d4f63537eef0c019fc6353f06fdbea37a3b0ba
aquadran
aquadran at gmail.com
Sun Feb 28 16:34:17 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
59d4f63537 ICB: Reworked game config file support for reading game defaults
Commit: 59d4f63537eef0c019fc6353f06fdbea37a3b0ba
https://github.com/scummvm/scummvm/commit/59d4f63537eef0c019fc6353f06fdbea37a3b0ba
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2021-02-28T17:34:08+01:00
Commit Message:
ICB: Reworked game config file support for reading game defaults
Changed paths:
engines/icb/configfile.cpp
engines/icb/configfile.h
engines/icb/p4_pc.cpp
diff --git a/engines/icb/configfile.cpp b/engines/icb/configfile.cpp
index 88552b1733..7cc404b62f 100644
--- a/engines/icb/configfile.cpp
+++ b/engines/icb/configfile.cpp
@@ -31,16 +31,28 @@
#include "engines/icb/configfile.h"
-// TODO: Complete refactor
-
#include "common/textconsole.h"
-#include "common/config-manager.h"
+#include "common/ini-file.h"
namespace ICB {
ConfigFile::ConfigFile() {}
-void ConfigFile::writeSetting(const Common::String §ion, const Common::String &key, const Common::String &value) { _dataSet[section][key] = value; }
+void ConfigFile::readFile(const Common::String &filename) {
+ Common::INIFile file;
+ if (!file.loadFromFile(filename)) {
+ error("Opening file '%s' failed'", filename.c_str());
+ return;
+ }
+
+ Common::INIFile::SectionList sections = file.getSections();
+ for (Common::INIFile::SectionList::const_iterator i = sections.begin(); i != sections.end(); i++) {
+ Common::INIFile::SectionKeyList kList = i->getKeys();
+ for (Common::INIFile::SectionKeyList::const_iterator j = kList.begin(); j != kList.end(); j++) {
+ _dataSet[i->name][j->key] = j->value;
+ }
+ }
+}
Common::String ConfigFile::readSetting(const Common::String §ion, const Common::String &key, const Common::String &defaultValue) const {
Common::HashMap<Common::String, Common::HashMap<Common::String, Common::String> >::const_iterator sectionIt;
@@ -54,60 +66,8 @@ Common::String ConfigFile::readSetting(const Common::String §ion, const Comm
return defaultValue;
}
-void ConfigFile::readFile(const Common::String &filename) {
- Common::String path = ConfMan.get("path") + "/" + filename;
- std::string currentSection = "";
- std::ifstream file(path.c_str());
- if (!file.is_open() || file.fail()) {
- assert(0);
- }
-
- std::string line;
- while (getline(file, line)) {
- size_t start = line.find_first_of("[");
- size_t end = line.find_first_of("]");
- // Section start
- if (start == 0 && start != std::string::npos && end != std::string::npos) {
- currentSection = line.substr(1, end - 1);
- //std::cout << "Section: " << currentSection << std::endl;
- continue;
- }
- size_t split = line.find_first_of("=");
- if (split == std::string::npos) {
- continue;
- } else {
- std::string key = line.substr(0, split);
- std::string value = line.substr(split + 1);
- //std::cout << "Key: " << key << " Value: " << value << std::endl;
- writeSetting(currentSection.c_str(), key.c_str(), value.c_str());
- }
- }
- file.close();
-}
-
int ConfigFile::readIntSetting(const Common::String §ion, const Common::String &key, int defaultValue) const {
- char buff[32];
- sprintf(buff, "%d", defaultValue);
- return atoi(readSetting(section, key, buff).c_str());
-}
-
-void ConfigFile::writeFile(const Common::String &filename) const {
- warning("TODO: Fix ConfMan-writing");
- return;
- std::ofstream file(filename.c_str());
- if (!file.is_open() || file.fail()) {
- assert(0);
- }
-
- Common::HashMap<Common::String, Common::HashMap<Common::String, Common::String> >::const_iterator sectionIt;
- for (sectionIt = _dataSet.begin(); sectionIt != _dataSet.end(); ++sectionIt) {
- file << "[" << sectionIt->_key.c_str() << "]\n";
- Common::HashMap<Common::String, Common::String>::const_iterator keyIt;
- for (keyIt = sectionIt->_value.begin(); keyIt != sectionIt->_value.end(); ++keyIt) {
- file << keyIt->_key.c_str() << "=" << keyIt->_value.c_str() << "\n";
- }
- }
- file.close();
+ return atoi(readSetting(section, key, Common::String().format("%d", defaultValue)).c_str());
}
} // End of namespace ICB
diff --git a/engines/icb/configfile.h b/engines/icb/configfile.h
index eca63ad14a..50fcce6784 100644
--- a/engines/icb/configfile.h
+++ b/engines/icb/configfile.h
@@ -38,12 +38,11 @@ class ConfigFile {
public:
ConfigFile();
- void writeSetting(const Common::String §ion, const Common::String &key, const Common::String &value);
+ void writeSetting(const Common::String §ion, const Common::String &key, const Common::String &value) {}
Common::String readSetting(const Common::String §ion, const Common::String &key, const Common::String &defaultValue) const;
int readIntSetting(const Common::String §ion, const Common::String &key, int defaultValue) const;
void readFile(const Common::String &filename);
- void writeFile(const Common::String &filename) const;
};
} // End of namespace ICB
diff --git a/engines/icb/p4_pc.cpp b/engines/icb/p4_pc.cpp
index 854b70dc95..e888fbbde3 100644
--- a/engines/icb/p4_pc.cpp
+++ b/engines/icb/p4_pc.cpp
@@ -274,9 +274,7 @@ void Save_config_file() {
config.writeSetting("Movie Library", temp, tempBuff);
}
}
- pxString filename = configFile;
- filename.ConvertPath();
- config.writeFile(filename.c_str());
+ // TODO: implement handling config manager
}
void InitEngine(const char *lpCmdLine) {
More information about the Scummvm-git-logs
mailing list