summaryrefslogtreecommitdiff
path: root/src/configuration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/configuration.cpp')
-rw-r--r--src/configuration.cpp57
1 files changed, 35 insertions, 22 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp
index dc6aa448..06296bf1 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -26,8 +26,8 @@
\brief read INI file and parse all options into memory
\param filename full path to INI file (~/.manaworld/tmw.ini)
*/
-void Configuration::Init(std::string filename) {
- inFile.open(filename.c_str(), std::ifstream::in);
+void Configuration::init(std::string filename) {
+ std::ifstream inFile(filename.c_str(), std::ifstream::in);
std::string inBuffer;
int position;
INI_OPTION optionTmp;
@@ -54,12 +54,12 @@ void Configuration::Init(std::string filename) {
#ifdef __DEBUG
for (iter = iniOptions.begin(); iter != iniOptions.end(); iter++) {
optionTmp = *iter;
- std::cout << "Configuration::Init(" << optionTmp.key << ", \"" << optionTmp.stringValue << "\" / " << optionTmp.numericValue << ")\n";
+ std::cout << "Configuration::init(" << optionTmp.key << ", \"" << optionTmp.stringValue << "\" / " << optionTmp.numericValue << ")\n";
}
#endif
}
-bool Configuration::Write(std::string filename) {
+bool Configuration::write(std::string filename) {
std::ofstream out(filename.c_str(), std::ofstream::out | std::ofstream::trunc);
char tmp[20];
@@ -76,7 +76,7 @@ bool Configuration::Write(std::string filename) {
out.write(tmp, strlen(tmp));
strcpy(tmp, "");
}
-
+ std::cout << "Configuration::write(" << optionTmp.key << ", \"" << optionTmp.stringValue << "\" / " << optionTmp.numericValue << ")\n";
out.write("\n", 1);
}
@@ -85,32 +85,49 @@ bool Configuration::Write(std::string filename) {
}
void Configuration::setValue(std::string key, std::string value) {
- if(getValue(key, value) == value) {
+ INI_OPTION optionTmp;
+ if(getValue(key, "") == "") {
#ifdef __DEBUG
- std::cout << "Configuration::setValue(" << key << ", \"" << value << "\")\n";
+ std::cout << "Configuration::setValue(" << key << ", \"" << value << "\") newly set\n";
#endif
- INI_OPTION optionTmp;
-
optionTmp.key = key;
optionTmp.stringValue = value;
optionTmp.numericValue = 0;
iniOptions.push_back(optionTmp);
+ } else {
+ for (iter = iniOptions.begin(); iter != iniOptions.end(); iter++) {
+ if(iter->key == key) {
+ #ifdef __DEBUG
+ std::cout << "Configuration::setValue(" << key << ", \"" << value << "\") reset\n";
+ #endif
+ iter->stringValue = value;
+ iter->numericValue = 0;
+ }
+ }
}
}
void Configuration::setValue(std::string key, float value) {
- if(getValue(key, value) == value) {
+ INI_OPTION optionTmp;
+ if(getValue(key, 0) == 0) {
#ifdef __DEBUG
- std::cout << "Configuration::setValue(" << key << ", " << value << ")\n";
+ std::cout << "Configuration::setValue(" << key << ", " << value << ") newly set\n";
#endif
-
- INI_OPTION optionTmp;
-
optionTmp.key = key;
optionTmp.numericValue = value;
iniOptions.push_back(optionTmp);
+ } else {
+ for (iter = iniOptions.begin(); iter != iniOptions.end(); iter++) {
+ if(iter->key == key) {
+ #ifdef __DEBUG
+ std::cout << "Configuration::setValue(" << key << ", " << value << ") reset\n";
+ #endif
+ iter->stringValue = "";
+ iter->numericValue = value;
+ }
+ }
}
}
@@ -120,11 +137,9 @@ void Configuration::setValue(std::string key, float value) {
\param deflt default option if not there or error
*/
std::string Configuration::getValue(std::string key, std::string deflt) {
- INI_OPTION optionTmp;
for (iter = iniOptions.begin(); iter != iniOptions.end(); iter++) {
- optionTmp = *iter;
- if(optionTmp.key == key)
- return optionTmp.stringValue;
+ if(iter->key == key)
+ return iter->stringValue;
}
return deflt;
@@ -136,11 +151,9 @@ std::string Configuration::getValue(std::string key, std::string deflt) {
\param deflt default option if not there or error
*/
float Configuration::getValue(std::string key, float deflt) {
- INI_OPTION optionTmp;
for (iter = iniOptions.begin(); iter != iniOptions.end(); iter++) {
- optionTmp = *iter;
- if(optionTmp.key == key)
- return optionTmp.numericValue;
+ if(iter->key == key)
+ return iter->numericValue;
}
return deflt;