Use std::vector for extra station name strings

This commit is contained in:
Jonathan G Rennison
2024-06-19 20:03:42 +01:00
parent 1e0279e72e
commit eda50ef6a5
6 changed files with 20 additions and 17 deletions

View File

@@ -319,13 +319,13 @@ static StringID GenerateStationName(Station *st, TileIndex tile, StationNaming n
return STR_SV_STNAME;
}
bool use_extra_names = _extra_station_names_used > 0;
bool use_extra_names = !_extra_station_names.empty();
auto check_extra_names = [&]() -> bool {
if (use_extra_names) {
use_extra_names = false;
const bool near_water = CountMapSquareAround(tile, CMSAWater) >= 5;
std::vector<uint16_t> candidates;
for (uint i = 0; i < _extra_station_names_used; i++) {
for (size_t i = 0; i < _extra_station_names.size(); i++) {
const ExtraStationNameInfo &info = _extra_station_names[i];
if (extra_names[i]) continue;
if (!HasBit(info.flags, name_class)) continue;
@@ -333,7 +333,7 @@ static StringID GenerateStationName(Station *st, TileIndex tile, StationNaming n
if (HasBit(info.flags, ESNIF_NOT_CENTRAL) && is_central) continue;
if (HasBit(info.flags, ESNIF_NEAR_WATER) && !near_water) continue;
if (HasBit(info.flags, ESNIF_NOT_NEAR_WATER) && near_water) continue;
candidates.push_back(i);
candidates.push_back(static_cast<uint16_t>(i));
}
if (!candidates.empty()) {