Fix #11938: Check infinite money setting in cases where it was missed (#11939)

This commit is contained in:
merni-ns
2024-02-01 00:41:48 +05:30
committed by GitHub
parent 363e251a10
commit ccaa383e85
4 changed files with 11 additions and 7 deletions

View File

@@ -96,7 +96,7 @@ CommandCost CmdDecreaseLoan(DoCommandFlag flags, LoanCommand cmd, Money amount)
loan = std::min(c->current_loan, (Money)LOAN_INTERVAL);
break;
case LoanCommand::Max: // Pay back as much as possible
loan = std::max(std::min(c->current_loan, c->money), (Money)LOAN_INTERVAL);
loan = std::max(std::min(c->current_loan, GetAvailableMoneyForCommand()), (Money)LOAN_INTERVAL);
loan -= loan % LOAN_INTERVAL;
break;
case LoanCommand::Amount: // Repay the given amount of loan
@@ -105,7 +105,7 @@ CommandCost CmdDecreaseLoan(DoCommandFlag flags, LoanCommand cmd, Money amount)
break;
}
if (c->money < loan) {
if (GetAvailableMoneyForCommand() < loan) {
SetDParam(0, loan);
return_cmd_error(STR_ERROR_CURRENCY_REQUIRED);
}