summaryrefslogtreecommitdiff
path: root/src/configuration.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-09-18 17:49:18 +0300
committerAndrei Karas <akaras@inbox.ru>2011-09-18 17:49:18 +0300
commit70b520b1e876f9698bb95baa2d274ea289a0c6bd (patch)
tree152c7519b0d9b8fb424af2373ec48db823a85575 /src/configuration.cpp
parent62ec17f6e489ec50f17219444468aeb8969dc961 (diff)
parent3b999f51c740d0541c53d223518e5e4bb482d996 (diff)
downloadmanaverse-stripped1.1.9.18.tar.gz
manaverse-stripped1.1.9.18.tar.bz2
manaverse-stripped1.1.9.18.tar.xz
manaverse-stripped1.1.9.18.zip
Merge branch 'master' into strippedstripped1.1.9.18
Conflicts: src/guichan/cliprectangle.cpp src/guichan/focushandler.cpp src/guichan/gui.cpp src/guichan/include/guichan/cliprectangle.hpp src/guichan/include/guichan/inputevent.hpp src/guichan/include/guichan/keyevent.hpp src/guichan/include/guichan/mouseevent.hpp src/guichan/include/guichan/widgets/button.hpp src/guichan/include/guichan/widgets/checkbox.hpp src/guichan/include/guichan/widgets/dropdown.hpp src/guichan/include/guichan/widgets/radiobutton.hpp src/guichan/include/guichan/widgets/slider.hpp src/guichan/include/guichan/widgets/tab.hpp src/guichan/include/guichan/widgets/tabbedarea.hpp src/guichan/include/guichan/widgets/textfield.hpp src/guichan/include/guichan/widgets/window.hpp src/guichan/inputevent.cpp src/guichan/keyevent.cpp src/guichan/mouseevent.cpp src/guichan/widget.cpp src/guichan/widgets/button.cpp src/guichan/widgets/checkbox.cpp src/guichan/widgets/dropdown.cpp src/guichan/widgets/radiobutton.cpp src/guichan/widgets/slider.cpp src/guichan/widgets/tab.cpp src/guichan/widgets/tabbedarea.cpp src/guichan/widgets/textfield.cpp src/guichan/widgets/window.cpp
Diffstat (limited to 'src/configuration.cpp')
-rw-r--r--src/configuration.cpp99
1 files changed, 85 insertions, 14 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 2524d6b93..a0167b9b0 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -194,11 +194,32 @@ int Configuration::getIntValue(const std::string &key) const
{
DefaultsData::const_iterator itdef = mDefaultsData->find(key);
- if (itdef != mDefaultsData->end() && itdef->second
- && itdef->second->getType() == Mana::VariableData::DATA_INT)
+ if (itdef != mDefaultsData->end() && itdef->second)
{
- defaultValue = (static_cast<Mana::IntData*>(
- itdef->second))->getData();
+ if (itdef->second->getType() == Mana::VariableData::DATA_INT)
+ {
+ defaultValue = (static_cast<Mana::IntData*>(
+ itdef->second))->getData();
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_STRING)
+ {
+ defaultValue = atoi((static_cast<Mana::StringData*>(
+ itdef->second))->getData().c_str());
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_BOOL)
+ {
+ if ((static_cast<Mana::BoolData*>(
+ itdef->second))->getData())
+ {
+ defaultValue = 1;
+ }
+ else
+ {
+ defaultValue = 0;
+ }
+ }
}
else
{
@@ -241,7 +262,7 @@ int Configuration::resetIntValue(const std::string &key)
std::string Configuration::getStringValue(const std::string &key) const
{
GETLOG();
- std::string defaultValue = "";
+ std::string defaultValue("");
Options::const_iterator iter = mOptions.find(key);
if (iter == mOptions.end())
{
@@ -249,11 +270,33 @@ std::string Configuration::getStringValue(const std::string &key) const
{
DefaultsData::const_iterator itdef = mDefaultsData->find(key);
- if (itdef != mDefaultsData->end() && itdef->second
- && itdef->second->getType() == Mana::VariableData::DATA_STRING)
+ if (itdef != mDefaultsData->end() && itdef->second)
{
- defaultValue = (static_cast<Mana::StringData*>(
- itdef->second))->getData();
+ if (itdef->second->getType()
+ == Mana::VariableData::DATA_STRING)
+ {
+ defaultValue = (static_cast<Mana::StringData*>(
+ itdef->second))->getData();
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_BOOL)
+ {
+ if ((static_cast<Mana::BoolData*>(
+ itdef->second))->getData())
+ {
+ defaultValue = "1";
+ }
+ else
+ {
+ defaultValue = "0";
+ }
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_INT)
+ {
+ defaultValue = toString((static_cast<Mana::IntData*>(
+ itdef->second))->getData());
+ }
}
else
{
@@ -312,11 +355,39 @@ bool Configuration::getBoolValue(const std::string &key) const
{
DefaultsData::const_iterator itdef = mDefaultsData->find(key);
- if (itdef != mDefaultsData->end() && itdef->second
- && itdef->second->getType() == Mana::VariableData::DATA_BOOL)
+ if (itdef != mDefaultsData->end() && itdef->second)
{
- defaultValue = (static_cast<Mana::BoolData*>(
- itdef->second))->getData();
+ if (itdef->second->getType() == Mana::VariableData::DATA_BOOL)
+ {
+ defaultValue = (static_cast<Mana::BoolData*>(
+ itdef->second))->getData();
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_INT)
+ {
+ if ((static_cast<Mana::IntData*>(
+ itdef->second))->getData() != 0)
+ {
+ defaultValue = true;
+ }
+ else
+ {
+ defaultValue = false;
+ }
+ }
+ else if (itdef->second->getType()
+ == Mana::VariableData::DATA_STRING)
+ {
+ if ((static_cast<Mana::StringData*>(
+ itdef->second))->getData() != "0")
+ {
+ defaultValue = true;
+ }
+ else
+ {
+ defaultValue = false;
+ }
+ }
}
else
{
@@ -514,4 +585,4 @@ void Configuration::removeListener(
const std::string &key, ConfigListener *listener)
{
mListenerMap[key].remove(listener);
-} \ No newline at end of file
+}