diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index c0603da2c0..a8fb1b98ac 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3362,6 +3362,7 @@ void ReloadNewGRFData() RecomputePrices(); /* reload vehicles */ ResetVehicleHash(); + AfterLoadLabelMaps(); AfterLoadVehiclesPhase1(false); AfterLoadVehiclesPhase2(false); StartupEngines(); diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp index a354f34174..9a35ec4ab8 100644 --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -130,11 +130,27 @@ static void ConvertRoadTypes() } } +/** Populate label lists with current values. */ +static void SetCurrentLabelLists() +{ + _railtype_list.clear(); + for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { + _railtype_list.push_back({GetRailTypeInfo(rt)->label, 0}); + } + + _roadtype_list.clear(); + for (RoadType rt = ROADTYPE_BEGIN; rt != ROADTYPE_END; rt++) { + _roadtype_list.push_back({GetRoadTypeInfo(rt)->label, GetRoadTramType(rt)}); + } +} + /** Perform rail type and road type conversion if necessary. */ void AfterLoadLabelMaps() { ConvertRailTypes(); ConvertRoadTypes(); + + SetCurrentLabelLists(); } void ResetLabelMaps()