MegaGlest/source/glest_game/global/config.cpp

138 lines
4.1 KiB
C++

// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Martiño Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#include "config.h"
#include "util.h"
#include "leak_dumper.h"
#include "game_constants.h"
namespace Glest{ namespace Game{
const char *GameConstants::folder_path_maps = "maps";
const char *GameConstants::folder_path_scenarios = "scenarios";
const char *GameConstants::folder_path_techs = "techs";
const char *GameConstants::folder_path_tilesets = "tilesets";
const char *GameConstants::folder_path_tutorials = "tutorials";
// =====================================================
// class Config
// =====================================================
Config::Config(){
properties.load("glest.ini");
}
Config &Config::getInstance(){
static Config config;
return config;
}
void Config::save(const string &path){
properties.save(path);
}
int Config::getInt(const char *key,const char *defaultValueIfNotFound) const {
return properties.getInt(key,defaultValueIfNotFound);
}
bool Config::getBool(const char *key,const char *defaultValueIfNotFound) const {
return properties.getBool(key,defaultValueIfNotFound);
}
float Config::getFloat(const char *key,const char *defaultValueIfNotFound) const {
return properties.getFloat(key,defaultValueIfNotFound);
}
const string Config::getString(const char *key,const char *defaultValueIfNotFound) const {
return properties.getString(key,defaultValueIfNotFound);
}
int Config::getInt(const string &key,const char *defaultValueIfNotFound) const{
return properties.getInt(key,defaultValueIfNotFound);
}
bool Config::getBool(const string &key,const char *defaultValueIfNotFound) const{
return properties.getBool(key,defaultValueIfNotFound);
}
float Config::getFloat(const string &key,const char *defaultValueIfNotFound) const{
return properties.getFloat(key,defaultValueIfNotFound);
}
const string Config::getString(const string &key,const char *defaultValueIfNotFound) const{
return properties.getString(key,defaultValueIfNotFound);
}
void Config::setInt(const string &key, int value){
properties.setInt(key, value);
}
void Config::setBool(const string &key, bool value){
properties.setBool(key, value);
}
void Config::setFloat(const string &key, float value){
properties.setFloat(key, value);
}
void Config::setString(const string &key, const string &value){
properties.setString(key, value);
}
string Config::toString(){
return properties.toString();
}
vector<string> Config::getPathListForType(PathType type) {
vector<string> pathList;
switch(type) {
case ptMaps:
pathList.push_back(GameConstants::folder_path_maps);
if(getString("UserData_Maps","") != "") {
pathList.push_back(getString("UserData_Maps"));
}
break;
case ptScenarios:
pathList.push_back(GameConstants::folder_path_scenarios);
if(getString("UserData_Scenarios","") != "") {
pathList.push_back(getString("UserData_Scenarios"));
}
break;
case ptTechs:
pathList.push_back(GameConstants::folder_path_techs);
if(getString("UserData_Techs","") != "") {
pathList.push_back(getString("UserData_Techs"));
}
break;
case ptTilesets:
pathList.push_back(GameConstants::folder_path_tilesets);
if(getString("UserData_Tilesets","") != "") {
pathList.push_back(getString("UserData_Tilesets"));
}
break;
case ptTutorials:
pathList.push_back(GameConstants::folder_path_tutorials);
if(getString("UserData_Tutorials","") != "") {
pathList.push_back(getString("UserData_Tutorials"));
}
break;
}
return pathList;
}
}}// end namespace