From 4cc97e04e63884e8e37058153a76b8e8adb1dd76 Mon Sep 17 00:00:00 2001 From: Rubidium Date: Wed, 17 Jan 2024 22:45:33 +0100 Subject: [PATCH] Fix #11801, 51f1e93: CalcClosestTownFromTile needs the kd-tree to be valid --- src/saveload/oldloader_sl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index e784eb8ca9..06c0af9084 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -499,7 +499,12 @@ static Town *RemapTown(TileIndex fallback) { /* In some cases depots, industries and stations could refer to a missing town. */ Town *t = Town::GetIfValid(RemapTownIndex(_old_town_index)); - if (t == nullptr) t = CalcClosestTownFromTile(fallback); + if (t == nullptr) { + /* In case the town that was refered to does not exist, find the closest. + * However, this needs the kd-tree to be present. */ + RebuildTownKdtree(); + t = CalcClosestTownFromTile(fallback); + } return t; }