From 07c9e6360ac16c96b8624a4b0bf4557ae295699d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 8 Mar 2011 06:06:50 +0200 Subject: Replace %color% and %Color% constants in item names/descriptions. --- src/resources/iteminfo.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'src/resources/iteminfo.cpp') diff --git a/src/resources/iteminfo.cpp b/src/resources/iteminfo.cpp index 990c78f45..667037c58 100644 --- a/src/resources/iteminfo.cpp +++ b/src/resources/iteminfo.cpp @@ -106,4 +106,38 @@ std::string ItemInfo::getDyeColorsString(int color) const return ""; return it->second.color; -} \ No newline at end of file +} + +const std::string ItemInfo::getDescription(unsigned char color) const +{ + return replaceColors(mDescription, color); +} + +const std::string ItemInfo::getName(unsigned char color) const +{ + return replaceColors(mName, color); +} + +const std::string ItemInfo::replaceColors(std::string str, + unsigned char color) const +{ + std::string name; + if (mColors && !mColorList.empty()) + { + std::map ::iterator it = mColors->find(color); + if (it == mColors->end()) + name = "unknown"; + else + name = it->second.name; + } + else + { + name = "unknown"; + } + + str = replaceAll(str, "%color%", name); + if (name.size() > 0) + name[0] = toupper(name[0]); + + return replaceAll(str, "%Color%", name); +} -- cgit v1.2.3-70-g09d2