From 76886a84c8c197a1f46f711e15569b6991e5555a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 22 Jun 2013 23:28:47 +0300 Subject: improve function for splitting string to ints. --- src/gui/questswindow.cpp | 6 +++--- src/utils/stringutils.cpp | 8 +++----- src/utils/stringutils.h | 4 ++-- 3 files changed, 8 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/gui/questswindow.cpp b/src/gui/questswindow.cpp index 42042e58f..d863e3dbd 100644 --- a/src/gui/questswindow.cpp +++ b/src/gui/questswindow.cpp @@ -259,8 +259,8 @@ void QuestsWindow::loadQuest(const int var, const XmlNodePtr node) delete quest; return; } - quest->incomplete = splitToIntSet(incompleteStr, ','); - quest->complete = splitToIntSet(completeStr, ','); + splitToIntSet(quest->incomplete, incompleteStr, ','); + splitToIntSet(quest->complete, completeStr, ','); if (quest->incomplete.empty() && quest->complete.empty()) { logger->log("complete flags incorrect"); @@ -297,7 +297,7 @@ void QuestsWindow::loadEffect(const int var, const XmlNodePtr node) effect->id = XML::getProperty(node, "npc", -1); effect->effectId = XML::getProperty(node, "effect", -1); const std::string values = XML::getProperty(node, "value", ""); - effect->values = splitToIntSet(values, ','); + splitToIntSet(effect->values, values, ','); if (effect->map.empty() || effect->id == -1 || effect->effectId == -1 || values.empty()) diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp index a0e31f06d..69474bd93 100644 --- a/src/utils/stringutils.cpp +++ b/src/utils/stringutils.cpp @@ -396,16 +396,14 @@ std::string normalize(const std::string &name) return toLower(trim(normalized)); } -std::set splitToIntSet(const std::string &text, - const char separator) +void splitToIntSet(std::set &tokens, + const std::string &text, + const char separator) { - std::set tokens; std::stringstream ss(text); std::string item; while (std::getline(ss, item, separator)) tokens.insert(atoi(item.c_str())); - - return tokens; } std::list splitToIntList(const std::string &text, diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h index 96645261b..6a900663e 100644 --- a/src/utils/stringutils.h +++ b/src/utils/stringutils.h @@ -175,8 +175,8 @@ void replaceSpecialChars(std::string &text); */ std::string normalize(const std::string &name) A_WARN_UNUSED; -std::set splitToIntSet(const std::string &text, - const char separator) A_WARN_UNUSED; +void splitToIntSet(std::set &tokens, const std::string &text, + const char separator) A_WARN_UNUSED; std::list splitToIntList(const std::string &text, const char separator) A_WARN_UNUSED; -- cgit v1.2.3-70-g09d2