From 0b9029b69c45553a9c8858b38cbd5764e8b0ea60 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 17 Apr 2024 02:14:25 +0100 Subject: [PATCH] Fix: Station/industry nearby list checks in CheckCaches --- src/openttd.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 898ea24832..4314f5a97d 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1362,7 +1362,10 @@ static void CheckCaches() for (Town *t : Town::Iterate()) old_town_stations_near.push_back(t->stations_near); std::vector old_industry_stations_near; - for (Industry *ind : Industry::Iterate()) old_industry_stations_near.push_back(ind->stations_near); + for (Industry *ind : Industry::Iterate()) old_industry_stations_near.push_back(ind->stations_near); + + std::vector old_station_industries_near; + for (Station *st : Station::Iterate()) old_station_industries_near.push_back(st->industries_near); for (Station *st : Station::Iterate()) { for (GoodsEntry &ge : st->goods) { @@ -1388,13 +1391,17 @@ static void CheckCaches() Debug(desync, 2, "docking tile mismatch: tile {}", tile); } } + } + + Station::RecomputeCatchmentForAll(); - /* Check industries_near */ - IndustryList industries_near = st->industries_near; - st->RecomputeCatchment(); - if (st->industries_near != industries_near) { + /* Check industries_near */ + i = 0; + for (Station *st : Station::Iterate()) { + if (st->industries_near != old_station_industries_near[i]) { Debug(desync, 2, "station industries near mismatch: station {}", st->index); } + i++; } /* Check stations_near */