mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(svn r10252) -Fix: never overflow when applying exchange rates before drawing the amount of money.
This commit is contained in:
parent
f7b378df33
commit
a571d7f954
@ -340,15 +340,17 @@ static char *FormatTinyDate(char *buff, Date date, const char* last)
|
|||||||
return FormatString(buff, GetStringPtr(STR_DATE_TINY), args, 0, last);
|
return FormatString(buff, GetStringPtr(STR_DATE_TINY), args, 0, last);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *FormatGenericCurrency(char *buff, const CurrencySpec *spec, int64 number, bool compact, const char* last)
|
static char *FormatGenericCurrency(char *buff, const CurrencySpec *spec, Money number, bool compact, const char* last)
|
||||||
{
|
{
|
||||||
const char* multiplier = "";
|
const char* multiplier = "";
|
||||||
char buf[40];
|
char buf[40];
|
||||||
char* p;
|
char* p;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
/* multiply by exchange rate */
|
/* Multiply by exchange rate, but do it safely. */
|
||||||
number *= spec->rate;
|
CommandCost cs(number);
|
||||||
|
cs.MultiplyCost(spec->rate);
|
||||||
|
number = cs.GetCost();
|
||||||
|
|
||||||
/* convert from negative */
|
/* convert from negative */
|
||||||
if (number < 0) {
|
if (number < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user