diff --git a/src/newgrf_roadstop.cpp b/src/newgrf_roadstop.cpp index 425865adae..5192e6546c 100644 --- a/src/newgrf_roadstop.cpp +++ b/src/newgrf_roadstop.cpp @@ -612,11 +612,9 @@ void RoadStopUpdateCachedTriggers(BaseStation *st) /* Combine animation trigger bitmask for all road stop specs * of this station. */ - for (uint i = 0; i < st->roadstop_speclist.size(); i++) { - const RoadStopSpec *ss = st->roadstop_speclist[i].spec; - if (ss != nullptr) { - st->cached_roadstop_anim_triggers |= ss->animation.triggers; - st->cached_roadstop_cargo_triggers |= ss->cargo_triggers; - } + for (const auto &sm : GetStationSpecList(st)) { + if (sm.spec == nullptr) continue; + st->cached_roadstop_anim_triggers |= sm.spec->animation.triggers; + st->cached_roadstop_cargo_triggers |= sm.spec->cargo_triggers; } } diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 50509dd9ca..abc6c636a7 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -1002,12 +1002,10 @@ void StationUpdateCachedTriggers(BaseStation *st) /* Combine animation trigger bitmask for all station specs * of this station. */ - for (uint i = 0; i < st->speclist.size(); i++) { - const StationSpec *ss = st->speclist[i].spec; - if (ss != nullptr) { - st->cached_anim_triggers |= ss->animation.triggers; - st->cached_cargo_triggers |= ss->cargo_triggers; - } + for (const auto &sm : GetStationSpecList(st)) { + if (sm.spec == nullptr) continue; + st->cached_anim_triggers |= sm.spec->animation.triggers; + st->cached_cargo_triggers |= sm.spec->cargo_triggers; } } diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 3de5125fb8..35d9b7e81a 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -112,15 +112,13 @@ void AfterLoadStations() { /* Update the speclists of all stations to point to the currently loaded custom stations. */ for (BaseStation *st : BaseStation::Iterate()) { - for (uint i = 0; i < st->speclist.size(); i++) { - if (st->speclist[i].grfid == 0) continue; - - st->speclist[i].spec = StationClass::GetByGrf(st->speclist[i].grfid, st->speclist[i].localidx, nullptr); + for (auto &sm : GetStationSpecList(st)) { + if (sm.grfid == 0) continue; + sm.spec = StationClass::GetByGrf(sm.grfid, sm.localidx, nullptr); } - for (uint i = 0; i < st->roadstop_speclist.size(); i++) { - if (st->roadstop_speclist[i].grfid == 0) continue; - - st->roadstop_speclist[i].spec = RoadStopClass::GetByGrf(st->roadstop_speclist[i].grfid, st->roadstop_speclist[i].localidx, nullptr); + for (auto &sm : GetStationSpecList(st)) { + if (sm.grfid == 0) continue; + sm.spec = RoadStopClass::GetByGrf(sm.grfid, sm.localidx, nullptr); } if (Station::IsExpected(st)) {