From 2d23d79fd5d7dc954c1228a5a8197ad46692a311 Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Tue, 3 Apr 2012 00:44:26 +0200 Subject: [PATCH] allways merge fallback; better syntax --- apps/mwiniimporter/importer.cpp | 20 ++++++++++---------- apps/mwiniimporter/importer.hpp | 2 +- apps/mwiniimporter/main.cpp | 6 +----- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/apps/mwiniimporter/importer.cpp b/apps/mwiniimporter/importer.cpp index e8fafab44..60f2c620d 100644 --- a/apps/mwiniimporter/importer.cpp +++ b/apps/mwiniimporter/importer.cpp @@ -14,18 +14,16 @@ MwIniImporter::MwIniImporter() { { "fps", "General:Show FPS" }, { 0, 0 } }; - const char *fallback[][2] = { - { "Weather_Sunrise_Time", "Weather:Sunrise Time" }, - { "Weather_Sunset_Time", "Weather:Sunset Time" }, - { 0, 0 } + const char *fallback[] = { + "Weather:Sunrise Time", "Weather_Sunset_Time", 0 }; for(int i=0; map[i][0]; i++) { mMergeMap.insert(std::make_pair(map[i][0], map[i][1])); } - for(int i=0; fallback[i][0]; i++) { - mMergeFallback.insert(std::make_pair(fallback[i][0], fallback[i][1])); + for(int i=0; fallback[i]; i++) { + mMergeFallback.push_back(fallback[i]); } } @@ -138,11 +136,13 @@ void MwIniImporter::mergeFallback(multistrmap &cfg, multistrmap &ini) { multistrmap::iterator cfgIt; multistrmap::iterator iniIt; - for(strmap::iterator it=mMergeFallback.begin(); it!=mMergeFallback.end(); it++) { - if((iniIt = ini.find(it->second)) != ini.end()) { + for(std::vector::iterator it=mMergeFallback.begin(); it!=mMergeFallback.end(); it++) { + if((iniIt = ini.find(*it)) != ini.end()) { for(std::vector::iterator vc = iniIt->second.begin(); vc != iniIt->second.end(); vc++) { - std::string value(it->first); - value.append("=").append(vc->substr(0,vc->length()-1)); + std::string value(*it); + std::replace( value.begin(), value.end(), ' ', '_' ); + std::replace( value.begin(), value.end(), ':', '_' ); + value.append(",").append(vc->substr(0,vc->length()-1)); insertMultistrmap(cfg, "fallback", value); } } diff --git a/apps/mwiniimporter/importer.hpp b/apps/mwiniimporter/importer.hpp index 9ef7b6703..ced332a72 100644 --- a/apps/mwiniimporter/importer.hpp +++ b/apps/mwiniimporter/importer.hpp @@ -27,7 +27,7 @@ class MwIniImporter { std::string numberToString(int n); bool mVerbose; strmap mMergeMap; - strmap mMergeFallback; + std::vector mMergeFallback; }; diff --git a/apps/mwiniimporter/main.cpp b/apps/mwiniimporter/main.cpp index dc9bbcd0a..051e7db2b 100644 --- a/apps/mwiniimporter/main.cpp +++ b/apps/mwiniimporter/main.cpp @@ -16,7 +16,6 @@ int main(int argc, char *argv[]) { ("ini,i", bpo::value(), "morrowind.ini file") ("cfg,c", bpo::value(), "openmw.cfg file") ("output,o", bpo::value()->default_value(""), "openmw.cfg file") - ("fallback,f", "import fallback settings") ("game-files,g", "import esm and esp files") ; @@ -55,10 +54,7 @@ int main(int argc, char *argv[]) { MwIniImporter::multistrmap cfg = importer.loadCfgFile(cfgFile); importer.merge(cfg, ini); - - if(vm.count("fallback")) { - importer.mergeFallback(cfg, ini); - } + importer.mergeFallback(cfg, ini); if(vm.count("game-files")) { importer.importGameFiles(cfg, ini);