From 4acdea8dc3c12147965f63b2974d192d8cd0ed34 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 8 Jun 2017 03:17:28 +0300 Subject: Improve strings concatination performance. --- src/actormanager.cpp | 6 +++--- src/gui/popups/itempopup.cpp | 2 +- src/resources/db/itemdb.cpp | 2 +- src/utils/stringutils.cpp | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/actormanager.cpp b/src/actormanager.cpp index 4bf4e2d53..5f1bf8157 100644 --- a/src/actormanager.cpp +++ b/src/actormanager.cpp @@ -1483,7 +1483,7 @@ void ActorManager::heal(const Being *const target) const } } // heal self if selected monster or selection empty - else if ((target != nullptr || target->getType() == ActorType::Monster) + else if ((target == nullptr || target->getType() == ActorType::Monster) && PlayerInfo::getAttribute(Attributes::PLAYER_MP) >= 6 && PlayerInfo::getAttribute(Attributes::PLAYER_HP) != PlayerInfo::getAttribute(Attributes::PLAYER_MAX_HP)) @@ -1541,8 +1541,8 @@ void ActorManager::itenplz() const { if (Net::getNetworkType() != ServerType::TMWATHENA) return; - if (localPlayer != nullptr || - chatWindow != nullptr || + if (localPlayer == nullptr || + chatWindow == nullptr || !localPlayer->isAlive() || !playerHandler->canUseMagic()) { diff --git a/src/gui/popups/itempopup.cpp b/src/gui/popups/itempopup.cpp index 3fc546cf0..9800455ca 100644 --- a/src/gui/popups/itempopup.cpp +++ b/src/gui/popups/itempopup.cpp @@ -370,7 +370,7 @@ std::string ItemPopup::getOptionsString(const ItemOptionsList *const options) if (!effect.empty()) effect.append(" / "); if (field->sign && value[0] != '-') - value = "+" + value; + value.append("+").append(value); const std::string format = translator->getStr(field->description); effect.append(strprintf(format.c_str(), value.c_str())); diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 6efe6086f..5f92fc4e0 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -145,7 +145,7 @@ static void readFields(std::string &effect, if (!effect.empty()) effect.append(" / "); if (field->sign && isDigit(value)) - value = "+" + value; + value.append("+").append(value); const std::string format = translator->getStr(field->description); effect.append(strprintf(format.c_str(), value.c_str())); diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp index d21702ed1..1f0888629 100644 --- a/src/utils/stringutils.cpp +++ b/src/utils/stringutils.cpp @@ -431,7 +431,7 @@ void replaceSpecialChars(std::string &text) std::string str(" "); str[0] = CAST_S8(atoi(text.substr( idx, f - idx).c_str())); - text = text.substr(0, pos1) + str + text.substr(f + 1); + text = text.substr(0, pos1).append(str).append(text.substr(f + 1)); pos1 += 1; } else -- cgit v1.2.3-60-g2f50