From ce18f4faec2f09c28bd8753d0917875ba2028be5 Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Sat, 29 Apr 2023 11:04:54 -0400 Subject: [PATCH] Codechange: Sync economy and calendar dates when using date cheat --- src/cheat_gui.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/cheat_gui.cpp b/src/cheat_gui.cpp index 5033faabfd..531f02c0d1 100644 --- a/src/cheat_gui.cpp +++ b/src/cheat_gui.cpp @@ -31,6 +31,7 @@ #include "core/geometry_func.hpp" #include "timer/timer.h" #include "timer/timer_game_calendar.h" +#include "timer/timer_game_economy.h" #include "widgets/cheat_widget.h" @@ -105,14 +106,17 @@ static int32_t ClickChangeDateCheat(int32_t new_value, int32_t) if (new_year == TimerGameCalendar::year) return TimerGameCalendar::year.base(); TimerGameCalendar::YearMonthDay ymd = TimerGameCalendar::ConvertDateToYMD(TimerGameCalendar::date); - TimerGameCalendar::Date new_date = TimerGameCalendar::ConvertYMDToDate(new_year, ymd.month, ymd.day); + TimerGameCalendar::Date new_calendar_date = TimerGameCalendar::ConvertYMDToDate(new_year, ymd.month, ymd.day); + /* Keep economy and calendar dates synced. */ + TimerGameEconomy::Date new_economy_date = new_calendar_date.base(); /* Shift cached dates before we change the date. */ - for (auto v : Vehicle::Iterate()) v->ShiftDates(new_date - TimerGameCalendar::date); - LinkGraphSchedule::instance.ShiftDates(new_date - TimerGameCalendar::date); + for (auto v : Vehicle::Iterate()) v->ShiftDates(new_economy_date - TimerGameEconomy::date); + LinkGraphSchedule::instance.ShiftDates(new_economy_date - TimerGameEconomy::date); /* Now it's safe to actually change the date. */ - TimerGameCalendar::SetDate(new_date, TimerGameCalendar::date_fract); + TimerGameCalendar::SetDate(new_calendar_date, TimerGameCalendar::date_fract); + TimerGameEconomy::SetDate(new_economy_date, TimerGameEconomy::date_fract); EnginesMonthlyLoop(); SetWindowDirty(WC_STATUS_BAR, 0);