Fix: [Script] ScriptSubsidy::GetExpireDate should return an economy-date (#12372)

This commit is contained in:
frosch 2024-03-28 23:21:20 +01:00 committed by GitHub
parent 8fb7d74dfe
commit 907cb4fc53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 8 deletions

View File

@ -54,15 +54,13 @@
{
if (!IsValidSubsidy(subsidy_id)) return ScriptDate::DATE_INVALID;
int year = ScriptDate::GetYear(ScriptDate::GetCurrentDate());
int month = ScriptDate::GetMonth(ScriptDate::GetCurrentDate());
TimerGameEconomy::YearMonthDay ymd = TimerGameEconomy::ConvertDateToYMD(TimerGameEconomy::date);
ymd.day = 1;
auto m = ymd.month + ::Subsidy::Get(subsidy_id)->remaining;
ymd.month = (m - 1) % 12 + 1;
ymd.year += (m - 1) / 12;
month += ::Subsidy::Get(subsidy_id)->remaining;
year += (month - 1) / 12;
month = ((month - 1) % 12) + 1;
return ScriptDate::GetDate(year, month, 1);
return (ScriptDate::Date)TimerGameEconomy::ConvertYMDToDate(ymd.year, ymd.month, ymd.day).base();
}
/* static */ CargoID ScriptSubsidy::GetCargoType(SubsidyID subsidy_id)