From 599b016c910aa27d75ed7b636e0473537e15c260 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 11 Dec 2022 00:56:50 +0000 Subject: [PATCH] Adjust link graph edge travel time updates in refresh mode --- src/linkgraph/linkgraph.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/linkgraph/linkgraph.cpp b/src/linkgraph/linkgraph.cpp index ec4a672ab6..ea2e416f59 100644 --- a/src/linkgraph/linkgraph.cpp +++ b/src/linkgraph/linkgraph.cpp @@ -238,12 +238,15 @@ void LinkGraph::Edge::Update(uint capacity, uint usage, uint32 travel_time, Edge } else if (mode & EUM_REFRESH) { /* If travel time is not provided, we scale the stored time based on * the capacity increase. */ - if (capacity > edge.capacity && travel_time == 0) { - edge.travel_time_sum = (edge.travel_time_sum / edge.capacity) * capacity; + if (capacity > edge.capacity) { + if (travel_time == 0) { + edge.travel_time_sum = (edge.travel_time_sum / edge.capacity) * capacity; + } else { + edge.travel_time_sum += (capacity - edge.capacity) * travel_time; + } edge.capacity = capacity; - } else { - edge.capacity = std::max(edge.capacity, capacity); - edge.travel_time_sum = std::max(edge.travel_time_sum, travel_time * capacity); + } else if (edge.travel_time_sum == 0) { + edge.travel_time_sum = travel_time * edge.capacity; } edge.usage = std::max(edge.usage, usage); }