diff options
author | Andrei Karas <akaras@inbox.ru> | 2009-10-06 00:08:25 +0300 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-10-05 16:53:21 -0600 |
commit | c1b93b0bfe2d7c4568de26af85523f83e72293d4 (patch) | |
tree | f446a5e256fc5e63f34c6a7b91a5e414b7c8ae2e /src | |
parent | 8a70da0e01e8cd6fd3b9b443bde45729b44a480b (diff) | |
download | mana-client-c1b93b0bfe2d7c4568de26af85523f83e72293d4.tar.gz mana-client-c1b93b0bfe2d7c4568de26af85523f83e72293d4.tar.bz2 mana-client-c1b93b0bfe2d7c4568de26af85523f83e72293d4.tar.xz mana-client-c1b93b0bfe2d7c4568de26af85523f83e72293d4.zip |
Hide color codes from speech text
Diffstat (limited to 'src')
-rw-r--r-- | src/being.cpp | 3 | ||||
-rw-r--r-- | src/utils/stringutils.cpp | 12 | ||||
-rw-r--r-- | src/utils/stringutils.h | 8 |
3 files changed, 22 insertions, 1 deletions
diff --git a/src/being.cpp b/src/being.cpp index 34f68581..d15c27b3 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -213,7 +213,8 @@ void Being::setPath(const Path &path) void Being::setSpeech(const std::string &text, int time) { - mSpeech = text; + // Remove colors + mSpeech = removeColors(text); // Trim whitespace trim(mSpeech); diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp index c9428974..64d928d6 100644 --- a/src/utils/stringutils.cpp +++ b/src/utils/stringutils.cpp @@ -105,3 +105,15 @@ std::string &removeBadChars(std::string &str) return str; } + +std::string removeColors(std::string msg) +{ + for (unsigned int f = 0; f < msg.length() - 2 && msg.length() > 2; f++) + { + while (msg.length() > f + 2 && msg.at(f) == '#' && msg.at(f + 1) == '#') + { + msg = msg.erase(f, 3); + } + } + return msg; +} diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h index 89d3d7e9..ae105c6c 100644 --- a/src/utils/stringutils.h +++ b/src/utils/stringutils.h @@ -92,4 +92,12 @@ std::string strprintf(char const *, ...) */ std::string &removeBadChars(std::string &str); +/** + * Removes colors from a string + * + * @param msg the string to remove the colors from + * @return string without colors + */ +std::string removeColors(std::string msg); + #endif // UTILS_STRINGUTILS_H |