summaryrefslogtreecommitdiff
path: root/src/configuration.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-01-02 19:35:53 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-01-02 19:35:53 +0000
commit5972b0564a9131de70064ed219cd8351844cf0ab (patch)
tree8cf1eb8f7be80fc5a7d46caa8da1de28edf7fa71 /src/configuration.cpp
parente76a6e3d2cc40e382e2ca1c7348e36a4082a221b (diff)
downloadMana-5972b0564a9131de70064ed219cd8351844cf0ab.tar.gz
Mana-5972b0564a9131de70064ed219cd8351844cf0ab.tar.bz2
Mana-5972b0564a9131de70064ed219cd8351844cf0ab.tar.xz
Mana-5972b0564a9131de70064ed219cd8351844cf0ab.zip
Don't try to create video bitmaps, and store whole numbers as whole numbers
in the configuration file.
Diffstat (limited to 'src/configuration.cpp')
-rw-r--r--src/configuration.cpp46
1 files changed, 31 insertions, 15 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 8f4ebbc8..27b47ac7 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -21,6 +21,7 @@
#include "configuration.h"
+#include <math.h>
/**
\brief read INI file and parse all options into memory
@@ -45,16 +46,17 @@ void Configuration::init(std::string filename) {
while (inFile.good()) {
getline(inFile, inBuffer, '\n');
- if(inBuffer.substr(0,1) != INI_COMMENTER) {
+ if (inBuffer.substr(0, 1) != INI_COMMENTER) {
position = inBuffer.find(INI_DELIMITER, 0);
- if(position != std::string::npos) {
+ if (position != std::string::npos) {
// replace spaces with void :)
- while(inBuffer.find(" ", 0) != std::string::npos) {
+ while (inBuffer.find(" ", 0) != std::string::npos) {
inBuffer.replace(inBuffer.find(" ", 0), 1, "");
}
std::string key = inBuffer.substr(0, position);
- optionTmp.stringValue = inBuffer.substr(position+1, inBuffer.length());
+ optionTmp.stringValue = inBuffer.substr(position + 1,
+ inBuffer.length());
inBuffer = inBuffer.substr(position+1, inBuffer.length());
optionTmp.numericValue = atof(inBuffer.c_str());
@@ -62,7 +64,9 @@ void Configuration::init(std::string filename) {
iniOptions[key] = optionTmp;
#ifdef __DEBUG
- std::cout << "Configuration::init(" << key << ", \"" << optionTmp.stringValue << "\" / " << optionTmp.numericValue << ")\n";
+ std::cout << "Configuration::init(" << key << ", \"" <<
+ optionTmp.stringValue << "\" / " <<
+ optionTmp.numericValue << ")\n";
#endif
}
}
@@ -75,7 +79,8 @@ void Configuration::init(std::string filename) {
\param filename full path to INI file (~/.manaworld/tmw.ini)
*/
bool Configuration::write(std::string filename) {
- std::ofstream out(filename.c_str(), std::ofstream::out | std::ofstream::trunc);
+ std::ofstream out(filename.c_str(),
+ std::ofstream::out | std::ofstream::trunc);
char tmp[20];
INI_OPTION optionTmp;
@@ -83,15 +88,24 @@ bool Configuration::write(std::string filename) {
out.write(iter->first.c_str(), iter->first.length());
out.write("=", 1);
- if(iter->second.numericValue == 0) {
- out.write(iter->second.stringValue.c_str(), iter->second.stringValue.length());
- }else{
- sprintf(tmp, "%f", iter->second.numericValue);
+ double numericValue = iter->second.numericValue;
+
+ if (numericValue == 0) {
+ out.write(iter->second.stringValue.c_str(),
+ iter->second.stringValue.length());
+ }
+ else if (numericValue == floor(numericValue)) {
+ out << (int)numericValue;
+ }
+ else {
+ sprintf(tmp, "%f", numericValue);
out.write(tmp, strlen(tmp));
strcpy(tmp, "");
}
#ifdef __DEBUG
- std::cout << "Configuration::write(" << iter->first.c_str() << ", \"" << iter->second.stringValue << "\" / " << iter->second.numericValue << ")\n";
+ std::cout << "Configuration::write(" << iter->first.c_str() <<
+ ", \"" << iter->second.stringValue << "\" / " <<
+ iter->second.numericValue << ")\n";
#endif
out.write("\n", 1);
}
@@ -108,7 +122,8 @@ bool Configuration::write(std::string filename) {
void Configuration::setValue(std::string key, std::string value) {
INI_OPTION optionTmp;
#ifdef __DEBUG
- std::cout << "Configuration::setValue(" << key << ", " << value << ")\n";
+ std::cout << "Configuration::setValue(" << key << ", " << value <<
+ ")\n";
#endif
optionTmp.stringValue = value;
optionTmp.numericValue = 0;
@@ -123,7 +138,8 @@ void Configuration::setValue(std::string key, std::string value) {
void Configuration::setValue(std::string key, float value) {
INI_OPTION optionTmp;
#ifdef __DEBUG
- std::cout << "Configuration::setValue(" << key << ", " << value << ")\n";
+ std::cout << "Configuration::setValue(" << key << ", " << value <<
+ ")\n";
#endif
optionTmp.stringValue = "";
optionTmp.numericValue = value;
@@ -137,7 +153,7 @@ void Configuration::setValue(std::string key, float value) {
*/
std::string Configuration::getValue(std::string key, std::string deflt) {
iter = iniOptions.find(key);
- if(iter != iniOptions.end()) {
+ if (iter != iniOptions.end()) {
return iniOptions[key].stringValue;
}
return deflt;
@@ -150,7 +166,7 @@ std::string Configuration::getValue(std::string key, std::string deflt) {
*/
float Configuration::getValue(std::string key, float deflt) {
iter = iniOptions.find(key);
- if(iter != iniOptions.end()) {
+ if (iter != iniOptions.end()) {
return iniOptions[key].numericValue;
}
return deflt;