summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-03-08 06:06:50 +0200
committerAndrei Karas <akaras@inbox.ru>2011-03-08 06:06:50 +0200
commit07c9e6360ac16c96b8624a4b0bf4557ae295699d (patch)
tree718cbc1e2cd21b13239d7bca4be9a04d811e4c48 /src/resources
parentc17acf93cb4ebe698b0af8a38a1fd6d49a6be3cc (diff)
downloadplus-07c9e6360ac16c96b8624a4b0bf4557ae295699d.tar.gz
plus-07c9e6360ac16c96b8624a4b0bf4557ae295699d.tar.bz2
plus-07c9e6360ac16c96b8624a4b0bf4557ae295699d.tar.xz
plus-07c9e6360ac16c96b8624a4b0bf4557ae295699d.zip
Replace %color% and %Color% constants in item names/descriptions.
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/iteminfo.cpp36
-rw-r--r--src/resources/iteminfo.h10
2 files changed, 44 insertions, 2 deletions
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 <int, ColorDB::ItemColor>::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);
+}
diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h
index 297c1b036..8b276601c 100644
--- a/src/resources/iteminfo.h
+++ b/src/resources/iteminfo.h
@@ -130,10 +130,13 @@ class ItemInfo
const std::string &getName() const
{ return mName; }
+ const std::string getName(unsigned char color) const;
+
void setParticleEffect(const std::string &particleEffect)
{ mParticle = particleEffect; }
- std::string getParticleEffect() const { return mParticle; }
+ std::string getParticleEffect() const
+ { return mParticle; }
void setDisplay(SpriteDisplay display)
{ mDisplay = display; }
@@ -147,6 +150,8 @@ class ItemInfo
const std::string &getDescription() const
{ return mDescription; }
+ const std::string getDescription(unsigned char color) const;
+
void setEffect(const std::string &effect)
{ mEffect = effect; }
@@ -243,6 +248,9 @@ class ItemInfo
bool isHaveColors()
{ return !mColorList.empty(); }
+ const std::string replaceColors(std::string str,
+ unsigned char color) const;
+
protected:
SpriteDisplay mDisplay; /**< Display info (like icon) */
std::string mName;