Changeset - r26074:f767da68bcf9
[Not reviewed]
master
0 4 0
nchappe - 3 years ago 2021-11-19 00:04:22
74881848+nchappe@users.noreply.github.com
Fix: Update last servicing dates when using the date cheat (#9694)
4 files changed with 15 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/cheat_gui.cpp
Show inline comments
 
@@ -14,6 +14,7 @@
 
#include "company_func.h"
 
#include "date_func.h"
 
#include "saveload/saveload.h"
 
#include "vehicle_base.h"
 
#include "textbuf_gui.h"
 
#include "window_gui.h"
 
#include "string_func.h"
 
@@ -106,6 +107,7 @@ static int32 ClickChangeDateCheat(int32 
 
	if (p1 == _cur_year) return _cur_year;
 

	
 
	Date new_date = ConvertYMDToDate(p1, ymd.month, ymd.day);
 
	for (auto v : Vehicle::Iterate()) v->ShiftDates(new_date - _date);
 
	LinkGraphSchedule::instance.ShiftDates(new_date - _date);
 
	SetDate(new_date, _date_fract);
 
	EnginesMonthlyLoop();
src/date.cpp
Show inline comments
 
@@ -211,7 +211,7 @@ static void OnNewYear()
 
		_cur_year--;
 
		days_this_year = IsLeapYear(_cur_year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR;
 
		_date -= days_this_year;
 
		for (Vehicle *v : Vehicle::Iterate()) v->date_of_last_service -= days_this_year;
 
		for (Vehicle *v : Vehicle::Iterate()) v->ShiftDates(-days_this_year);
 
		for (LinkGraph *lg : LinkGraph::Iterate()) lg->ShiftDates(-days_this_year);
 

	
 
		/* Because the _date wraps here, and text-messages expire by game-days, we have to clean out
src/vehicle.cpp
Show inline comments
 
@@ -764,6 +764,16 @@ uint32 Vehicle::GetGRFID() const
 
}
 

	
 
/**
 
 * Shift all dates by given interval.
 
 * This is useful if the date has been modified with the cheat menu.
 
 * @param interval Number of days to be added or substracted.
 
 */
 
void Vehicle::ShiftDates(int interval)
 
{
 
	this->date_of_last_service += interval;
 
}
 

	
 
/**
 
 * Handle the pathfinding result, especially the lost status.
 
 * If the vehicle is now lost and wasn't previously fire an
 
 * event to the AIs and a news message to the user. If the
src/vehicle_base.h
Show inline comments
 
@@ -545,6 +545,8 @@ public:
 
	 */
 
	virtual void OnNewDay() {};
 

	
 
	void ShiftDates(int interval);
 

	
 
	/**
 
	 * Crash the (whole) vehicle chain.
 
	 * @param flooded whether the cause of the crash is flooding or not.
0 comments (0 inline, 0 general)