From e465ecdf0c7f867a62236a5a0945a85f35eee039 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 21 Apr 2017 20:36:23 +0300 Subject: Show item options in item popups. --- src/resources/db/itemdb.cpp | 8 +++++++- src/resources/db/itemoptiondb.cpp | 9 +++++++++ src/resources/db/itemoptiondb.h | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'src/resources/db') diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 77ff5b269..94c9b14b8 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -46,6 +46,8 @@ #include "utils/dtor.h" #include "utils/stringmap.h" +#include "utils/translation/podict.h" + #include "debug.h" namespace @@ -127,6 +129,9 @@ static void readFields(std::string &effect, XmlNodeConstPtr node, const ItemFieldDb::FieldInfos &fields) { + if (!translator) + return; + FOR_EACH (ItemFieldDb::FieldInfos::const_iterator, it, fields) { const std::string fieldName = (*it).first; @@ -141,7 +146,8 @@ static void readFields(std::string &effect, effect.append(" / "); if (field->sign && isDigit(value)) value = "+" + value; - effect.append(strprintf(gettext(field->description.c_str()), + const std::string format = translator->getStr(field->description); + effect.append(strprintf(format.c_str(), value.c_str())); } } diff --git a/src/resources/db/itemoptiondb.cpp b/src/resources/db/itemoptiondb.cpp index becdf7406..504199bfc 100644 --- a/src/resources/db/itemoptiondb.cpp +++ b/src/resources/db/itemoptiondb.cpp @@ -36,6 +36,7 @@ namespace { ItemOptionDb::OptionInfos mOptions; + const std::vector mEmptyOption; bool mLoaded = false; } // namespace @@ -141,3 +142,11 @@ void ItemOptionDb::unload() mOptions.clear(); mLoaded = false; } + +const std::vector &ItemOptionDb::getFields(const int id) +{ + OptionInfos::const_iterator it = mOptions.find(id); + if (it == mOptions.end()) + return mEmptyOption; + return (*it).second; +} diff --git a/src/resources/db/itemoptiondb.h b/src/resources/db/itemoptiondb.h index 6c7fb898f..9e088c76f 100644 --- a/src/resources/db/itemoptiondb.h +++ b/src/resources/db/itemoptiondb.h @@ -40,6 +40,8 @@ namespace ItemOptionDb void loadXmlFile(const std::string &fileName, const SkipError skipError); + const std::vector &getFields(const int id); + typedef std::map > OptionInfos; } // namespace ItemOptionDb -- cgit v1.2.3-60-g2f50