diff options
Diffstat (limited to 'src/saveload')
-rw-r--r-- | src/saveload/afterload.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 61183f30c..348cbb6c6 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2295,6 +2295,19 @@ bool AfterLoadGame() SetWaterClass(t, WATER_CLASS_INVALID); } } + + /* Waypoints with custom name may have a non-unique town_cn, + * renumber those. First set all affected waypoints to the + * highest possible number to get them numbered in the + * order they have in the pool. */ + Waypoint *wp; + FOR_ALL_WAYPOINTS(wp) { + if (wp->name != NULL) wp->town_cn = UINT16_MAX; + } + + FOR_ALL_WAYPOINTS(wp) { + if (wp->name != NULL) MakeDefaultName(wp); + } } /* Road stops is 'only' updating some caches */ |