From a8041ac28118de1caef73bdac9567c9a7e25e41f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 27 Sep 2017 23:43:44 +0300 Subject: Fix some issues with int64 to int32 implicit conversions. --- src/resources/db/unitsdb.cpp | 15 +++++++++++++++ src/resources/db/unitsdb.h | 7 ++++++- 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/resources/db') diff --git a/src/resources/db/unitsdb.cpp b/src/resources/db/unitsdb.cpp index aac6b72e3..a32786b84 100644 --- a/src/resources/db/unitsdb.cpp +++ b/src/resources/db/unitsdb.cpp @@ -325,6 +325,12 @@ std::string UnitsDb::formatCurrency(const int value) return formatUnit(value, defaultCurrency); } +std::string UnitsDb::formatCurrency64(const int64_t value) +{ + return formatUnit(CAST_S32(value), + defaultCurrency); +} + std::string UnitsDb::formatCurrency(std::string name, const int value) { @@ -333,6 +339,15 @@ std::string UnitsDb::formatCurrency(std::string name, return formatUnit(value, mCurrencies[name]); } +std::string UnitsDb::formatCurrency64(std::string name, + const int64_t value) +{ + if (mCurrencies.find(name) == mCurrencies.end()) + name = DEFAULT_CURRENCY; + return formatUnit(CAST_S32(value), + mCurrencies[name]); +} + std::string UnitsDb::formatWeight(const int value) { return formatUnit(value, defaultWeight); diff --git a/src/resources/db/unitsdb.h b/src/resources/db/unitsdb.h index 0681567c0..859adaabc 100644 --- a/src/resources/db/unitsdb.h +++ b/src/resources/db/unitsdb.h @@ -46,11 +46,16 @@ namespace UnitsDb */ std::string formatCurrency(const int value) A_WARN_UNUSED; + std::string formatCurrency64(const int64_t value) A_WARN_UNUSED; + /** * Formats the given number in the correct currency format. */ std::string formatCurrency(std::string name, - const int value) A_WARN_UNUSED; + const int value) A_WARN_UNUSED; + + std::string formatCurrency64(std::string name, + const int64_t value) A_WARN_UNUSED; /** * Formats the given number in the correct weight/mass format. -- cgit v1.2.3-70-g09d2