Codechange: use TimerGameCalendar::Date for variables in linkgraph that are dates (#11187)

This commit is contained in:
Patric Stout 2023-08-12 16:02:38 +02:00 committed by GitHub
parent b7acf9e50e
commit a9ed590ca7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 17 deletions

View File

@ -50,7 +50,7 @@ LinkGraph::BaseEdge::BaseEdge(NodeID dest_node)
* This is useful if the date has been modified with the cheat menu. * This is useful if the date has been modified with the cheat menu.
* @param interval Number of days to be added or subtracted. * @param interval Number of days to be added or subtracted.
*/ */
void LinkGraph::ShiftDates(int interval) void LinkGraph::ShiftDates(TimerGameCalendar::Date interval)
{ {
this->last_compression += interval; this->last_compression += interval;
for (NodeID node1 = 0; node1 < this->Size(); ++node1) { for (NodeID node1 = 0; node1 < this->Size(); ++node1) {

View File

@ -171,10 +171,10 @@ public:
static const uint MIN_TIMEOUT_DISTANCE = 32; static const uint MIN_TIMEOUT_DISTANCE = 32;
/** Number of days before deleting links served only by vehicles stopped in depot. */ /** Number of days before deleting links served only by vehicles stopped in depot. */
static const uint STALE_LINK_DEPOT_TIMEOUT = 1024; static constexpr TimerGameCalendar::Date STALE_LINK_DEPOT_TIMEOUT = 1024;
/** Minimum number of days between subsequent compressions of a LG. */ /** Minimum number of days between subsequent compressions of a LG. */
static const uint COMPRESSION_INTERVAL = 256; static constexpr TimerGameCalendar::Date COMPRESSION_INTERVAL = 256;
/** /**
* Scale a value from a link graph of age orig_age for usage in one of age * Scale a value from a link graph of age orig_age for usage in one of age
@ -184,7 +184,7 @@ public:
* @param orig_age Age of the original link graph. * @param orig_age Age of the original link graph.
* @return scaled value. * @return scaled value.
*/ */
inline static uint Scale(uint val, uint target_age, uint orig_age) inline static uint Scale(uint val, TimerGameCalendar::Date target_age, TimerGameCalendar::Date orig_age)
{ {
return val > 0 ? std::max(1U, val * target_age / orig_age) : 0; return val > 0 ? std::max(1U, val * target_age / orig_age) : 0;
} }
@ -198,7 +198,7 @@ public:
LinkGraph(CargoID cargo) : cargo(cargo), last_compression(TimerGameCalendar::date) {} LinkGraph(CargoID cargo) : cargo(cargo), last_compression(TimerGameCalendar::date) {}
void Init(uint size); void Init(uint size);
void ShiftDates(int interval); void ShiftDates(TimerGameCalendar::Date interval);
void Compress(); void Compress();
void Merge(LinkGraph *other); void Merge(LinkGraph *other);

View File

@ -223,7 +223,7 @@ public:
* Change the join date on date cheating. * Change the join date on date cheating.
* @param interval Number of days to add. * @param interval Number of days to add.
*/ */
inline void ShiftJoinDate(int interval) { this->join_date += interval; } inline void ShiftJoinDate(TimerGameCalendar::Date interval) { this->join_date += interval; }
/** /**
* Get the link graph settings for this component. * Get the link graph settings for this component.

View File

@ -132,7 +132,7 @@ void LinkGraphSchedule::SpawnAll()
* graph jobs by the number of days given. * graph jobs by the number of days given.
* @param interval Number of days to be added or subtracted. * @param interval Number of days to be added or subtracted.
*/ */
void LinkGraphSchedule::ShiftDates(int interval) void LinkGraphSchedule::ShiftDates(TimerGameCalendar::Date interval)
{ {
for (LinkGraph *lg : LinkGraph::Iterate()) lg->ShiftDates(interval); for (LinkGraph *lg : LinkGraph::Iterate()) lg->ShiftDates(interval);
for (LinkGraphJob *lgj : LinkGraphJob::Iterate()) lgj->ShiftJoinDate(interval); for (LinkGraphJob *lgj : LinkGraphJob::Iterate()) lgj->ShiftJoinDate(interval);

View File

@ -58,7 +58,7 @@ public:
bool IsJoinWithUnfinishedJobDue() const; bool IsJoinWithUnfinishedJobDue() const;
void JoinNext(); void JoinNext();
void SpawnAll(); void SpawnAll();
void ShiftDates(int interval); void ShiftDates(TimerGameCalendar::Date interval);
/** /**
* Queue a link graph for execution. * Queue a link graph for execution.

View File

@ -3806,8 +3806,8 @@ void DeleteStaleLinks(Station *from)
Station *to = Station::Get((*lg)[edge.dest_node].station); Station *to = Station::Get((*lg)[edge.dest_node].station);
assert(to->goods[c].node == edge.dest_node); assert(to->goods[c].node == edge.dest_node);
assert(TimerGameCalendar::date >= edge.LastUpdate()); assert(TimerGameCalendar::date >= edge.LastUpdate());
uint timeout = LinkGraph::MIN_TIMEOUT_DISTANCE + (DistanceManhattan(from->xy, to->xy) >> 3); auto timeout = TimerGameCalendar::Date(LinkGraph::MIN_TIMEOUT_DISTANCE + (DistanceManhattan(from->xy, to->xy) >> 3));
if ((uint)(TimerGameCalendar::date - edge.LastUpdate()) > timeout) { if (TimerGameCalendar::date - edge.LastUpdate() > timeout) {
bool updated = false; bool updated = false;
if (auto_distributed) { if (auto_distributed) {
@ -3835,8 +3835,7 @@ void DeleteStaleLinks(Station *from)
while (iter != vehicles.end()) { while (iter != vehicles.end()) {
Vehicle *v = *iter; Vehicle *v = *iter;
/* Do not refresh links of vehicles that have been stopped in depot for a long time. */ /* Do not refresh links of vehicles that have been stopped in depot for a long time. */
if (!v->IsStoppedInDepot() || static_cast<uint>(TimerGameCalendar::date - v->date_of_last_service) <= if (!v->IsStoppedInDepot() || TimerGameCalendar::date - v->date_of_last_service <= LinkGraph::STALE_LINK_DEPOT_TIMEOUT) {
LinkGraph::STALE_LINK_DEPOT_TIMEOUT) {
LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted. LinkRefresher::Run(v, false); // Don't allow merging. Otherwise lg might get deleted.
} }
if (edge.LastUpdate() == TimerGameCalendar::date) { if (edge.LastUpdate() == TimerGameCalendar::date) {
@ -3862,11 +3861,11 @@ void DeleteStaleLinks(Station *from)
ge.flows.DeleteFlows(to->index); ge.flows.DeleteFlows(to->index);
RerouteCargo(from, c, to->index, from->index); RerouteCargo(from, c, to->index, from->index);
} }
} else if (edge.last_unrestricted_update != INVALID_DATE && (uint)(TimerGameCalendar::date - edge.last_unrestricted_update) > timeout) { } else if (edge.last_unrestricted_update != INVALID_DATE && TimerGameCalendar::date - edge.last_unrestricted_update > timeout) {
edge.Restrict(); edge.Restrict();
ge.flows.RestrictFlows(to->index); ge.flows.RestrictFlows(to->index);
RerouteCargo(from, c, to->index, from->index); RerouteCargo(from, c, to->index, from->index);
} else if (edge.last_restricted_update != INVALID_DATE && (uint)(TimerGameCalendar::date - edge.last_restricted_update) > timeout) { } else if (edge.last_restricted_update != INVALID_DATE && TimerGameCalendar::date - edge.last_restricted_update > timeout) {
edge.Release(); edge.Release();
} }
} }
@ -3874,7 +3873,7 @@ void DeleteStaleLinks(Station *from)
for (NodeID r : to_remove) (*lg)[ge.node].RemoveEdge(r); for (NodeID r : to_remove) (*lg)[ge.node].RemoveEdge(r);
assert(TimerGameCalendar::date >= lg->LastCompression()); assert(TimerGameCalendar::date >= lg->LastCompression());
if ((uint)(TimerGameCalendar::date - lg->LastCompression()) > LinkGraph::COMPRESSION_INTERVAL) { if (TimerGameCalendar::date - lg->LastCompression() > LinkGraph::COMPRESSION_INTERVAL) {
lg->Compress(); lg->Compress();
} }
} }

View File

@ -759,7 +759,7 @@ uint32_t Vehicle::GetGRFID() const
* This is useful if the date has been modified with the cheat menu. * This is useful if the date has been modified with the cheat menu.
* @param interval Number of days to be added or substracted. * @param interval Number of days to be added or substracted.
*/ */
void Vehicle::ShiftDates(int interval) void Vehicle::ShiftDates(TimerGameCalendar::Date interval)
{ {
this->date_of_last_service = std::max(this->date_of_last_service + interval, TimerGameCalendar::Date(0)); this->date_of_last_service = std::max(this->date_of_last_service + interval, TimerGameCalendar::Date(0));
/* date_of_last_service_newgrf is not updated here as it must stay stable /* date_of_last_service_newgrf is not updated here as it must stay stable

View File

@ -575,7 +575,7 @@ public:
*/ */
virtual void OnNewDay() {}; virtual void OnNewDay() {};
void ShiftDates(int interval); void ShiftDates(TimerGameCalendar::Date interval);
/** /**
* Crash the (whole) vehicle chain. * Crash the (whole) vehicle chain.