From 9176fe5f64effd70b6cce8c83df6d68748559530 Mon Sep 17 00:00:00 2001 From: dP Date: Sat, 31 Jul 2021 22:46:36 +0300 Subject: [PATCH] Fix: Use of unstable sort when distributing cargo production can cause desyncs (cherry picked from commit 4ed694fe98b146d984826d06b96e0c11045239bc) See: https://github.com/OpenTTD/OpenTTD/pull/9460 --- src/station_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ac697c66ae..4abce06c5e 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -4584,7 +4584,7 @@ uint MoveGoodsToStation(CargoID type, uint amount, SourceType source_type, Sourc /* If there is some cargo left due to rounding issues distribute it among the best rated stations. */ if (amount > moving) { - std::sort(used_stations.begin(), used_stations.end(), [type](const StationInfo &a, const StationInfo &b) { + std::stable_sort(used_stations.begin(), used_stations.end(), [type](const StationInfo &a, const StationInfo &b) { return b.first->goods[type].rating < a.first->goods[type].rating; });