aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
authorSubv <s.v.h21@hotmail.com>2012-10-15 11:15:25 -0500
committerSubv <s.v.h21@hotmail.com>2012-10-15 11:15:25 -0500
commitc757f811f265752f2e4dfe1921ace9d7aaf80983 (patch)
tree14b467a51cf38d5e2bc243c78a90102eda6d656f /src/server/shared
parent963aa5a159c5541b6c794b42a5f5809bc7a36192 (diff)
parent6f0a8040d8d363064c7d4aa65d3b3d6f40796009 (diff)
Merge branch 'master' of https://github.com/TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/scripts/Commands/cs_modify.cpp
Diffstat (limited to 'src/server/shared')
-rwxr-xr-xsrc/server/shared/Utilities/Util.cpp31
-rwxr-xr-xsrc/server/shared/Utilities/Util.h2
2 files changed, 33 insertions, 0 deletions
diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp
index 0897c8814ab..b3176beb50b 100755
--- a/src/server/shared/Utilities/Util.cpp
+++ b/src/server/shared/Utilities/Util.cpp
@@ -150,6 +150,37 @@ std::string secsToTimeString(uint64 timeInSecs, bool shortText, bool hoursOnly)
return ss.str();
}
+int64 MoneyStringToMoney(const std::string& moneyString)
+{
+ int64 money = 0;
+
+ if (!(std::count(moneyString.begin(), moneyString.end(), 'g') == 1 ||
+ std::count(moneyString.begin(), moneyString.end(), 's') == 1 ||
+ std::count(moneyString.begin(), moneyString.end(), 'c') == 1))
+ return 0; // Bad format
+
+ Tokenizer tokens(moneyString, ' ');
+ for (Tokenizer::const_iterator itr = tokens.begin(); itr != tokens.end(); ++itr)
+ {
+ std::string tokenString(*itr);
+ uint32 gCount = std::count(tokenString.begin(), tokenString.end(), 'g');
+ uint32 sCount = std::count(tokenString.begin(), tokenString.end(), 's');
+ uint32 cCount = std::count(tokenString.begin(), tokenString.end(), 'c');
+ if (gCount + sCount + cCount != 1)
+ return 0;
+
+ uint64 amount = atol(*itr);
+ if (gCount == 1)
+ money += amount * 100 * 100;
+ else if (sCount == 1)
+ money += amount * 100;
+ else if (cCount == 1)
+ money += amount;
+ }
+
+ return money;
+}
+
uint32 TimeStringToSecs(const std::string& timestring)
{
uint32 secs = 0;
diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h
index f84e5155bb1..949fa67008f 100755
--- a/src/server/shared/Utilities/Util.h
+++ b/src/server/shared/Utilities/Util.h
@@ -66,6 +66,8 @@ private:
void stripLineInvisibleChars(std::string &src);
+int64 MoneyStringToMoney(const std::string& moneyString);
+
std::string secsToTimeString(uint64 timeInSecs, bool shortText = false, bool hoursOnly = false);
uint32 TimeStringToSecs(const std::string& timestring);
std::string TimeToTimestampStr(time_t t);