Fix 5a88027: [Script] Avoid overflow in scripts when infinite money is enabled (#12016)

pull/661/head
merni-ns 4 months ago committed by GitHub
parent 02cdd5ba8b
commit 34b05465d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -178,6 +178,8 @@
{
company = ResolveCompanyID(company);
if (company == COMPANY_INVALID) return -1;
/* If we return INT64_MAX as usual, overflows may occur in the script. So return a smaller value. */
if (_settings_game.difficulty.infinite_money) return INT32_MAX;
return GetAvailableMoney((::CompanyID)company);
}

@ -258,9 +258,10 @@ public:
/**
* Gets the bank balance. In other words, the amount of money the given company can spent.
* If infinite money is enabled, it returns INT32_MAX.
* @param company The company to get the bank balance of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @return The actual bank balance.
* @return The actual bank balance or INT32_MAX.
*/
static Money GetBankBalance(CompanyID company);

Loading…
Cancel
Save