Codechange: Use range-for iteration.

This commit is contained in:
Peter Nelson 2023-05-07 12:09:54 +01:00 committed by PeterN
parent cef3a2570d
commit e6740046ee
22 changed files with 169 additions and 193 deletions

View File

@ -124,9 +124,8 @@ public:
if (GetBlitters().size() == 0) return nullptr;
const char *bname = name.empty() ? default_blitter : name.c_str();
Blitters::iterator it = GetBlitters().begin();
for (; it != GetBlitters().end(); it++) {
BlitterFactory *b = (*it).second;
for (auto &it : GetBlitters()) {
BlitterFactory *b = it.second;
if (StrEqualsIgnoreCase(bname, b->name)) {
return b->IsUsable() ? b : nullptr;
}
@ -151,9 +150,8 @@ public:
static char *GetBlittersInfo(char *p, const char *last)
{
p += seprintf(p, last, "List of blitters:\n");
Blitters::iterator it = GetBlitters().begin();
for (; it != GetBlitters().end(); it++) {
BlitterFactory *b = (*it).second;
for (auto &it : GetBlitters()) {
BlitterFactory *b = it.second;
p += seprintf(p, last, "%18s: %s\n", b->name.c_str(), b->GetDescription().c_str());
}
p += seprintf(p, last, "\n");

View File

@ -380,8 +380,7 @@ void VehicleCargoList::AddToMeta(const CargoPacket *cp, MoveToAction action)
*/
void VehicleCargoList::AgeCargo()
{
for (ConstIterator it(this->packets.begin()); it != this->packets.end(); it++) {
CargoPacket *cp = *it;
for (const auto &cp : this->packets) {
/* If we're at the maximum, then we can't increase no more. */
if (cp->days_in_transit == UINT16_MAX) continue;

View File

@ -105,9 +105,8 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t
if (name.empty()) {
/* Probe for this driver, but do not fall back to dedicated/null! */
for (int priority = 10; priority > 0; priority--) {
Drivers::iterator it = GetDrivers().begin();
for (; it != GetDrivers().end(); ++it) {
DriverFactoryBase *d = (*it).second;
for (auto &it : GetDrivers()) {
DriverFactoryBase *d = it.second;
/* Check driver type */
if (d->type != type) continue;
@ -151,9 +150,8 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t
}
/* Find this driver */
Drivers::iterator it = GetDrivers().begin();
for (; it != GetDrivers().end(); ++it) {
DriverFactoryBase *d = (*it).second;
for (auto &it : GetDrivers()) {
DriverFactoryBase *d = it.second;
/* Check driver type */
if (d->type != type) continue;
@ -191,9 +189,8 @@ char *DriverFactoryBase::GetDriversInfo(char *p, const char *last)
p += seprintf(p, last, "List of %s drivers:\n", GetDriverTypeName(type));
for (int priority = 10; priority >= 0; priority--) {
Drivers::iterator it = GetDrivers().begin();
for (; it != GetDrivers().end(); it++) {
DriverFactoryBase *d = (*it).second;
for (auto &it : GetDrivers()) {
DriverFactoryBase *d = it.second;
if (d->type != type) continue;
if (d->priority != priority) continue;
p += seprintf(p, last, "%18s: %s\n", d->name, d->GetDescription());

View File

@ -1899,12 +1899,9 @@ void LoadUnloadStation(Station *st)
if (st->loading_vehicles.empty()) return;
Vehicle *last_loading = nullptr;
std::list<Vehicle *>::iterator iter;
/* Check if anything will be loaded at all. Otherwise we don't need to reserve either. */
for (iter = st->loading_vehicles.begin(); iter != st->loading_vehicles.end(); ++iter) {
Vehicle *v = *iter;
for (Vehicle *v : st->loading_vehicles) {
if ((v->vehstatus & (VS_STOPPED | VS_CRASHED))) continue;
assert(v->load_unload_ticks != 0);
@ -1920,8 +1917,7 @@ void LoadUnloadStation(Station *st)
*/
if (last_loading == nullptr) return;
for (iter = st->loading_vehicles.begin(); iter != st->loading_vehicles.end(); ++iter) {
Vehicle *v = *iter;
for (Vehicle *v : st->loading_vehicles) {
if (!(v->vehstatus & (VS_STOPPED | VS_CRASHED))) LoadUnloadVehicle(v);
if (v == last_loading) break;
}

View File

@ -288,12 +288,12 @@ FILE *FioFOpenFile(const std::string &filename, const char *mode, Subdirectory s
}
/* Resolve ONE directory link */
for (TarLinkList::iterator link = _tar_linklist[subdir].begin(); link != _tar_linklist[subdir].end(); link++) {
const std::string &src = link->first;
for (const auto &link : _tar_linklist[subdir]) {
const std::string &src = link.first;
size_t len = src.length();
if (resolved_name.length() >= len && resolved_name[len - 1] == PATHSEPCHAR && src.compare(0, len, resolved_name, 0, len) == 0) {
/* Apply link */
resolved_name.replace(0, len, link->second);
resolved_name.replace(0, len, link.second);
break; // Only resolve one level
}
}
@ -666,10 +666,8 @@ bool TarScanner::AddFile(const std::string &filename, size_t basepath_length, co
* The destination path must NOT contain any links.
* The source path may contain one directory link.
*/
for (TarLinkList::iterator link = links.begin(); link != links.end(); link++) {
const std::string &src = link->first;
const std::string &dest = link->second;
TarAddLink(src, dest, this->subdir);
for (auto &it : links) {
TarAddLink(it.first, it.second, this->subdir);
}
return true;
@ -705,16 +703,16 @@ bool ExtractTar(const std::string &tar_filename, Subdirectory subdir)
Debug(misc, 8, "Extracting {} to directory {}", tar_filename, filename);
FioCreateDirectory(filename);
for (TarFileList::iterator it2 = _tar_filelist[subdir].begin(); it2 != _tar_filelist[subdir].end(); it2++) {
if (tar_filename != it2->second.tar_filename) continue;
for (auto &it2 : _tar_filelist[subdir]) {
if (tar_filename != it2.second.tar_filename) continue;
filename.replace(p + 1, std::string::npos, it2->first);
filename.replace(p + 1, std::string::npos, it2.first);
Debug(misc, 9, " extracting {}", filename);
/* First open the file in the .tar. */
size_t to_copy = 0;
std::unique_ptr<FILE, FileDeleter> in(FioFOpenFileTar(it2->second, &to_copy));
std::unique_ptr<FILE, FileDeleter> in(FioFOpenFileTar(it2.second, &to_copy));
if (!in) {
Debug(misc, 6, "Extracting {} failed; could not open {}", filename, tar_filename);
return false;

View File

@ -51,8 +51,8 @@ void FlowMapper::Run(LinkGraphJob &job) const
* division by 0 if spawn date == last compression date. This matches
* LinkGraph::Monthly(). */
uint runtime = job.JoinDate() - job.Settings().recalc_time - job.LastCompression() + 1;
for (FlowStatMap::iterator i = flows.begin(); i != flows.end(); ++i) {
i->second.ScaleToMonthly(runtime);
for (auto &it : flows) {
it.second.ScaleToMonthly(runtime);
}
}
/* Clear paths. */

View File

@ -273,14 +273,14 @@ void LinkGraphOverlay::Draw(const DrawPixelInfo *dpi)
void LinkGraphOverlay::DrawLinks(const DrawPixelInfo *dpi) const
{
int width = ScaleGUITrad(this->scale);
for (LinkMap::const_iterator i(this->cached_links.begin()); i != this->cached_links.end(); ++i) {
if (!Station::IsValidID(i->first)) continue;
Point pta = this->GetStationMiddle(Station::Get(i->first));
for (StationLinkMap::const_iterator j(i->second.begin()); j != i->second.end(); ++j) {
if (!Station::IsValidID(j->first)) continue;
Point ptb = this->GetStationMiddle(Station::Get(j->first));
for (const auto &i : this->cached_links) {
if (!Station::IsValidID(i.first)) continue;
Point pta = this->GetStationMiddle(Station::Get(i.first));
for (const auto &j : i.second) {
if (!Station::IsValidID(j.first)) continue;
Point ptb = this->GetStationMiddle(Station::Get(j.first));
if (!this->IsLinkVisible(pta, ptb, dpi, width + 2)) continue;
this->DrawContent(pta, ptb, j->second);
this->DrawContent(pta, ptb, j.second);
}
}
}
@ -319,13 +319,13 @@ void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &c
void LinkGraphOverlay::DrawStationDots(const DrawPixelInfo *dpi) const
{
int width = ScaleGUITrad(this->scale);
for (StationSupplyList::const_iterator i(this->cached_stations.begin()); i != this->cached_stations.end(); ++i) {
const Station *st = Station::GetIfValid(i->first);
for (const auto &i : this->cached_stations) {
const Station *st = Station::GetIfValid(i.first);
if (st == nullptr) continue;
Point pt = this->GetStationMiddle(st);
if (!this->IsPointVisible(pt, dpi, 3 * width)) continue;
uint r = width * 2 + width * 2 * std::min(200U, i->second) / 200;
uint r = width * 2 + width * 2 * std::min(200U, i.second) / 200;
LinkGraphOverlay::DrawVertex(pt.x, pt.y, r,
_colour_gradient[st->owner != OWNER_NONE ?

View File

@ -110,8 +110,8 @@ void LinkGraphSchedule::JoinNext()
*/
void LinkGraphSchedule::SpawnAll()
{
for (JobList::iterator i = this->running.begin(); i != this->running.end(); ++i) {
(*i)->SpawnThread();
for (auto &it : this->running) {
it->SpawnThread();
}
}
@ -120,8 +120,8 @@ void LinkGraphSchedule::SpawnAll()
*/
/* static */ void LinkGraphSchedule::Clear()
{
for (JobList::iterator i(instance.running.begin()); i != instance.running.end(); ++i) {
(*i)->AbortJob();
for (auto &it : instance.running) {
it->AbortJob();
}
instance.running.clear();
instance.schedule.clear();

View File

@ -144,10 +144,10 @@ bool LinkRefresher::HandleRefit(CargoID refit_cargo)
*/
void LinkRefresher::ResetRefit()
{
for (RefitList::iterator it(this->refit_capacities.begin()); it != this->refit_capacities.end(); ++it) {
if (it->remaining == it->capacity) continue;
this->capacities[it->cargo] += it->capacity - it->remaining;
it->remaining = it->capacity;
for (auto &it : this->refit_capacities) {
if (it.remaining == it.capacity) continue;
this->capacities[it.cargo] += it.capacity - it.remaining;
it.remaining = it.capacity;
}
}

View File

@ -413,9 +413,9 @@ void MusicSystem::SaveCustomPlaylist(PlaylistChoices pl)
size_t num = 0;
MemSetT(settings_pl, 0, NUM_SONGS_PLAYLIST);
for (Playlist::const_iterator song = this->standard_playlists[pl].begin(); song != this->standard_playlists[pl].end(); ++song) {
for (const auto &song : this->standard_playlists[pl]) {
/* Music set indices in the settings playlist are 1-based, 0 means unused slot */
settings_pl[num++] = (byte)song->set_index + 1;
settings_pl[num++] = (byte)song.set_index + 1;
}
}
@ -510,10 +510,10 @@ struct MusicTrackSelectionWindow : public Window {
case WID_MTS_LIST_LEFT: case WID_MTS_LIST_RIGHT: {
Dimension d = {0, 0};
for (MusicSystem::Playlist::const_iterator song = _music.music_set.begin(); song != _music.music_set.end(); ++song) {
SetDParam(0, song->tracknr);
for (const auto &song : _music.music_set) {
SetDParam(0, song.tracknr);
SetDParam(1, 2);
SetDParamStr(2, song->songname);
SetDParamStr(2, song.songname);
Dimension d2 = GetStringBoundingBox(STR_PLAYLIST_TRACK_NAME);
d.width = std::max(d.width, d2.width);
d.height += d2.height;
@ -533,10 +533,10 @@ struct MusicTrackSelectionWindow : public Window {
GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), PC_BLACK);
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
for (MusicSystem::Playlist::const_iterator song = _music.music_set.begin(); song != _music.music_set.end(); ++song) {
SetDParam(0, song->tracknr);
for (const auto &song : _music.music_set) {
SetDParam(0, song.tracknr);
SetDParam(1, 2);
SetDParamStr(2, song->songname);
SetDParamStr(2, song.songname);
DrawString(tr, STR_PLAYLIST_TRACK_NAME);
tr.top += FONT_HEIGHT_SMALL;
}
@ -547,10 +547,10 @@ struct MusicTrackSelectionWindow : public Window {
GfxFillRect(r.Shrink(WidgetDimensions::scaled.bevel), PC_BLACK);
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
for (MusicSystem::Playlist::const_iterator song = _music.active_playlist.begin(); song != _music.active_playlist.end(); ++song) {
SetDParam(0, song->tracknr);
for (const auto &song : _music.active_playlist) {
SetDParam(0, song.tracknr);
SetDParam(1, 2);
SetDParamStr(2, song->songname);
SetDParamStr(2, song.songname);
DrawString(tr, STR_PLAYLIST_TRACK_NAME);
tr.top += FONT_HEIGHT_SMALL;
}
@ -698,8 +698,8 @@ struct MusicWindow : public Window {
case WID_M_TRACK_NAME: {
Dimension d = GetStringBoundingBox(STR_MUSIC_TITLE_NONE);
for (MusicSystem::Playlist::const_iterator song = _music.music_set.begin(); song != _music.music_set.end(); ++song) {
SetDParamStr(0, song->songname);
for (const auto &song : _music.music_set) {
SetDParamStr(0, song.songname);
d = maxdim(d, GetStringBoundingBox(STR_MUSIC_TITLE_NAME));
}
d.width += padding.width;

View File

@ -170,16 +170,16 @@ static uint16 GetGenericCallbackResult(uint8 feature, ResolverObject &object, ui
assert(feature < lengthof(_gcl));
/* Test each feature callback sprite group. */
for (GenericCallbackList::const_iterator it = _gcl[feature].begin(); it != _gcl[feature].end(); ++it) {
object.grffile = it->file;
object.root_spritegroup = it->group;
for (const auto &it : _gcl[feature]) {
object.grffile = it.file;
object.root_spritegroup = it.group;
/* Set callback param based on GRF version. */
object.callback_param1 = it->file->grf_version >= 8 ? param1_grfv8 : param1_grfv7;
object.callback_param1 = it.file->grf_version >= 8 ? param1_grfv8 : param1_grfv7;
uint16 result = object.ResolveCallback();
if (result == CALLBACK_FAILED) continue;
/* Return NewGRF file if necessary */
if (file != nullptr) *file = it->file;
if (file != nullptr) *file = it.file;
return result;
}

View File

@ -91,9 +91,9 @@ void AddChangedPersistentStorage(BasePersistentStorageArray *storage)
}
/* Discard all temporary changes */
for (std::set<BasePersistentStorageArray*>::iterator it = _changed_storage_arrays->begin(); it != _changed_storage_arrays->end(); it++) {
Debug(desync, 1, "Discarding persistent storage changes: Feature {}, GrfID {:08X}, Tile {}", (*it)->feature, BSWAP32((*it)->grfid), (*it)->tile);
(*it)->ClearChanges();
for (auto &it : *_changed_storage_arrays) {
Debug(desync, 1, "Discarding persistent storage changes: Feature {}, GrfID {:08X}, Tile {}", it->feature, BSWAP32(it->grfid), it->tile);
it->ClearChanges();
}
_changed_storage_arrays->clear();
}

View File

@ -35,9 +35,8 @@
grfid = this->ro.grffile->grfid;
}
std::list<PersistentStorage *>::iterator iter;
for (iter = this->t->psa_list.begin(); iter != this->t->psa_list.end(); iter++) {
if ((*iter)->grfid == grfid) return (*iter)->GetValue(parameter);
for (auto &it : this->t->psa_list) {
if (it->grfid == grfid) return it->GetValue(parameter);
}
return 0;
@ -133,10 +132,9 @@
if (grfid != this->ro.grffile->grfid) return;
/* Check if the storage exists. */
std::list<PersistentStorage *>::iterator iter;
for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
if ((*iter)->grfid == grfid) {
(*iter)->StoreValue(pos, value);
for (auto &it : t->psa_list) {
if (it->grfid == grfid) {
it->StoreValue(pos, value);
return;
}
}

View File

@ -336,8 +336,8 @@ Vehicle *FindVehiclesInRoadStop(Vehicle *v, void *data)
if (rv->state < RVSB_IN_ROAD_STOP) return nullptr;
/* Do not add duplicates! */
for (RVList::iterator it = rserh->vehicles.begin(); it != rserh->vehicles.end(); it++) {
if (rv == *it) return nullptr;
for (const auto &it : rserh->vehicles) {
if (rv == it) return nullptr;
}
rserh->vehicles.push_back(rv);
@ -367,8 +367,8 @@ void RoadStop::Entry::Rebuild(const RoadStop *rs, int side)
}
this->occupied = 0;
for (RVList::iterator it = rserh.vehicles.begin(); it != rserh.vehicles.end(); it++) {
this->occupied += (*it)->gcache.cached_total_length;
for (const auto &it : rserh.vehicles) {
this->occupied += it->gcache.cached_total_length;
}
}

View File

@ -283,9 +283,9 @@ static void InitializeWindowsAndCaches()
}
}
for (Town *t : Town::Iterate()) {
for (std::list<PersistentStorage *>::iterator it = t->psa_list.begin(); it != t->psa_list.end(); ++it) {
(*it)->feature = GSF_FAKE_TOWNS;
(*it)->tile = t->xy;
for (auto &it : t->psa_list) {
it->feature = GSF_FAKE_TOWNS;
it->tile = t->xy;
}
}
for (RoadVehicle *rv : RoadVehicle::Iterate()) {
@ -2157,13 +2157,11 @@ bool AfterLoadGame()
* add cargopayment for the vehicles that don't have it.
*/
for (Station *st : Station::Iterate()) {
std::list<Vehicle *>::iterator iter;
for (iter = st->loading_vehicles.begin(); iter != st->loading_vehicles.end(); ++iter) {
for (Vehicle *v : st->loading_vehicles) {
/* There are always as many CargoPayments as Vehicles. We need to make the
* assert() in Pool::GetNew() happy by calling CanAllocateItem(). */
static_assert(CargoPaymentPool::MAX_SIZE == VehiclePool::MAX_SIZE);
assert(CargoPayment::CanAllocateItem());
Vehicle *v = *iter;
if (v->cargo_payment == nullptr) v->cargo_payment = new CargoPayment(v);
}
}

View File

@ -310,22 +310,22 @@ public:
void Save(GoodsEntry *ge) const override
{
uint32 num_flows = 0;
for (FlowStatMap::const_iterator it(ge->flows.begin()); it != ge->flows.end(); ++it) {
num_flows += (uint32)it->second.GetShares()->size();
size_t num_flows = 0;
for (const auto &it : ge->flows) {
num_flows += it.second.GetShares()->size();
}
SlSetStructListLength(num_flows);
for (FlowStatMap::const_iterator outer_it(ge->flows.begin()); outer_it != ge->flows.end(); ++outer_it) {
const FlowStat::SharesMap *shares = outer_it->second.GetShares();
for (const auto &outer_it : ge->flows) {
const FlowStat::SharesMap *shares = outer_it.second.GetShares();
uint32 sum_shares = 0;
FlowSaveLoad flow;
flow.source = outer_it->first;
for (FlowStat::SharesMap::const_iterator inner_it(shares->begin()); inner_it != shares->end(); ++inner_it) {
flow.via = inner_it->second;
flow.share = inner_it->first - sum_shares;
flow.restricted = inner_it->first > outer_it->second.GetUnrestricted();
sum_shares = inner_it->first;
flow.source = outer_it.first;
for (auto &inner_it : *shares) {
flow.via = inner_it.second;
flow.share = inner_it.first - sum_shares;
flow.restricted = inner_it.first > outer_it.second.GetUnrestricted();
sum_shares = inner_it.first;
assert(flow.share > 0);
SlObject(&flow, this->GetDescription());
}

View File

@ -564,9 +564,9 @@ void ScriptList::AddList(ScriptList *list)
this->modifications++;
} else {
ScriptListMap *list_items = &list->items;
for (ScriptListMap::iterator iter = list_items->begin(); iter != list_items->end(); iter++) {
this->AddItem((*iter).first);
this->SetValue((*iter).first, (*iter).second);
for (auto &it : *list_items) {
this->AddItem(it.first);
this->SetValue(it.first, it.second);
}
}
}

View File

@ -1347,8 +1347,8 @@ void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right,
*/
void SettingsContainer::Init(byte level)
{
for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
(*it)->Init(level);
for (auto &it : this->entries) {
it->Init(level);
}
}
@ -1363,16 +1363,16 @@ void SettingsContainer::ResetAll()
/** Recursively close all folds of sub-pages */
void SettingsContainer::FoldAll()
{
for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
(*it)->FoldAll();
for (auto &it : this->entries) {
it->FoldAll();
}
}
/** Recursively open all folds of sub-pages */
void SettingsContainer::UnFoldAll()
{
for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
(*it)->UnFoldAll();
for (auto &it : this->entries) {
it->UnFoldAll();
}
}
@ -1383,8 +1383,8 @@ void SettingsContainer::UnFoldAll()
*/
void SettingsContainer::GetFoldingState(bool &all_folded, bool &all_unfolded) const
{
for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
(*it)->GetFoldingState(all_folded, all_unfolded);
for (auto &it : this->entries) {
it->GetFoldingState(all_folded, all_unfolded);
}
}
@ -1415,8 +1415,8 @@ bool SettingsContainer::UpdateFilterState(SettingFilter &filter, bool force_visi
*/
bool SettingsContainer::IsVisible(const BaseSettingEntry *item) const
{
for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
if ((*it)->IsVisible(item)) return true;
for (const auto &it : this->entries) {
if (it->IsVisible(item)) return true;
}
return false;
}
@ -1425,8 +1425,8 @@ bool SettingsContainer::IsVisible(const BaseSettingEntry *item) const
uint SettingsContainer::Length() const
{
uint length = 0;
for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
length += (*it)->Length();
for (const auto &it : this->entries) {
length += it->Length();
}
return length;
}
@ -1440,8 +1440,8 @@ uint SettingsContainer::Length() const
BaseSettingEntry *SettingsContainer::FindEntry(uint row_num, uint *cur_row)
{
BaseSettingEntry *pe = nullptr;
for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
pe = (*it)->FindEntry(row_num, cur_row);
for (const auto &it : this->entries) {
pe = it->FindEntry(row_num, cur_row);
if (pe != nullptr) {
break;
}
@ -1457,8 +1457,8 @@ BaseSettingEntry *SettingsContainer::FindEntry(uint row_num, uint *cur_row)
uint SettingsContainer::GetMaxHelpHeight(int maxw)
{
uint biggest = 0;
for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
biggest = std::max(biggest, (*it)->GetMaxHelpHeight(maxw));
for (const auto &it : this->entries) {
biggest = std::max(biggest, it->GetMaxHelpHeight(maxw));
}
return biggest;
}
@ -1480,11 +1480,9 @@ uint SettingsContainer::GetMaxHelpHeight(int maxw)
*/
uint SettingsContainer::Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row, uint parent_last) const
{
for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) {
cur_row = (*it)->Draw(settings_ptr, left, right, y, first_row, max_row, selected, cur_row, parent_last);
if (cur_row >= max_row) {
break;
}
for (const auto &it : this->entries) {
cur_row = it->Draw(settings_ptr, left, right, y, first_row, max_row, selected, cur_row, parent_last);
if (cur_row >= max_row) break;
}
return cur_row;
}

View File

@ -3781,10 +3781,10 @@ void RerouteCargo(Station *st, CargoID c, StationID avoid, StationID avoid2)
ge.cargo.Reroute(UINT_MAX, &ge.cargo, avoid, avoid2, &ge);
/* Reroute cargo staged to be transferred. */
for (std::list<Vehicle *>::iterator it(st->loading_vehicles.begin()); it != st->loading_vehicles.end(); ++it) {
for (Vehicle *v = *it; v != nullptr; v = v->Next()) {
if (v->cargo_type != c) continue;
v->cargo.Reroute(UINT_MAX, &v->cargo, avoid, avoid2, &ge);
for (Vehicle *v : st->loading_vehicles) {
for (Vehicle *u = v; u != nullptr; u = u->Next()) {
if (u->cargo_type != c) continue;
u->cargo.Reroute(UINT_MAX, &u->cargo, avoid, avoid2, &ge);
}
}
}
@ -4531,11 +4531,11 @@ static CommandCost TerraformTile_Station(TileIndex tile, DoCommandFlag flags, in
uint FlowStat::GetShare(StationID st) const
{
uint32 prev = 0;
for (SharesMap::const_iterator it = this->shares.begin(); it != this->shares.end(); ++it) {
if (it->second == st) {
return it->first - prev;
for (const auto &it : this->shares) {
if (it.second == st) {
return it.first - prev;
} else {
prev = it->first;
prev = it.first;
}
}
return 0;
@ -4605,9 +4605,9 @@ void FlowStat::Invalidate()
assert(!this->shares.empty());
SharesMap new_shares;
uint i = 0;
for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) {
new_shares[++i] = it->second;
if (it->first == this->unrestricted) this->unrestricted = i;
for (const auto &it : this->shares) {
new_shares[++i] = it.second;
if (it.first == this->unrestricted) this->unrestricted = i;
}
this->shares.swap(new_shares);
assert(!this->shares.empty() && this->unrestricted <= (--this->shares.end())->first);
@ -4629,29 +4629,29 @@ void FlowStat::ChangeShare(StationID st, int flow)
uint added_shares = 0;
uint last_share = 0;
SharesMap new_shares;
for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) {
if (it->second == st) {
for (const auto &it : this->shares) {
if (it.second == st) {
if (flow < 0) {
uint share = it->first - last_share;
uint share = it.first - last_share;
if (flow == INT_MIN || (uint)(-flow) >= share) {
removed_shares += share;
if (it->first <= this->unrestricted) this->unrestricted -= share;
if (it.first <= this->unrestricted) this->unrestricted -= share;
if (flow != INT_MIN) flow += share;
last_share = it->first;
last_share = it.first;
continue; // remove the whole share
}
removed_shares += (uint)(-flow);
} else {
added_shares += (uint)(flow);
}
if (it->first <= this->unrestricted) this->unrestricted += flow;
if (it.first <= this->unrestricted) this->unrestricted += flow;
/* If we don't continue above the whole flow has been added or
* removed. */
flow = 0;
}
new_shares[it->first + added_shares - removed_shares] = it->second;
last_share = it->first;
new_shares[it.first + added_shares - removed_shares] = it.second;
last_share = it.first;
}
if (flow > 0) {
new_shares[last_share + (uint)flow] = st;
@ -4675,19 +4675,19 @@ void FlowStat::RestrictShare(StationID st)
uint flow = 0;
uint last_share = 0;
SharesMap new_shares;
for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) {
for (auto &it : this->shares) {
if (flow == 0) {
if (it->first > this->unrestricted) return; // Not present or already restricted.
if (it->second == st) {
flow = it->first - last_share;
if (it.first > this->unrestricted) return; // Not present or already restricted.
if (it.second == st) {
flow = it.first - last_share;
this->unrestricted -= flow;
} else {
new_shares[it->first] = it->second;
new_shares[it.first] = it.second;
}
} else {
new_shares[it->first - flow] = it->second;
new_shares[it.first - flow] = it.second;
}
last_share = it->first;
last_share = it.first;
}
if (flow == 0) return;
new_shares[last_share + flow] = st;
@ -4742,10 +4742,10 @@ void FlowStat::ScaleToMonthly(uint runtime)
assert(runtime > 0);
SharesMap new_shares;
uint share = 0;
for (SharesMap::iterator i = this->shares.begin(); i != this->shares.end(); ++i) {
share = std::max(share + 1, i->first * 30 / runtime);
new_shares[share] = i->second;
if (this->unrestricted == i->first) this->unrestricted = share;
for (auto i : this->shares) {
share = std::max(share + 1, i.first * 30 / runtime);
new_shares[share] = i.second;
if (this->unrestricted == i.first) this->unrestricted = share;
}
this->shares.swap(new_shares);
}
@ -4795,8 +4795,8 @@ void FlowStatMap::PassOnFlow(StationID origin, StationID via, uint flow)
*/
void FlowStatMap::FinalizeLocalConsumption(StationID self)
{
for (FlowStatMap::iterator i = this->begin(); i != this->end(); ++i) {
FlowStat &fs = i->second;
for (auto &i : *this) {
FlowStat &fs = i.second;
uint local = fs.GetShare(INVALID_STATION);
if (local > INT_MAX) { // make sure it fits in an int
fs.ChangeShare(self, -INT_MAX);
@ -4840,8 +4840,8 @@ StationIDStack FlowStatMap::DeleteFlows(StationID via)
*/
void FlowStatMap::RestrictFlows(StationID via)
{
for (FlowStatMap::iterator it = this->begin(); it != this->end(); ++it) {
it->second.RestrictShare(via);
for (auto &it : *this) {
it.second.RestrictShare(via);
}
}
@ -4851,8 +4851,8 @@ void FlowStatMap::RestrictFlows(StationID via)
*/
void FlowStatMap::ReleaseFlows(StationID via)
{
for (FlowStatMap::iterator it = this->begin(); it != this->end(); ++it) {
it->second.ReleaseShare(via);
for (auto &it : *this) {
it.second.ReleaseShare(via);
}
}
@ -4863,8 +4863,8 @@ void FlowStatMap::ReleaseFlows(StationID via)
uint FlowStatMap::GetFlow() const
{
uint ret = 0;
for (FlowStatMap::const_iterator i = this->begin(); i != this->end(); ++i) {
ret += (--(i->second.GetShares()->end()))->first;
for (const auto &it : *this) {
ret += (--(it.second.GetShares()->end()))->first;
}
return ret;
}
@ -4877,8 +4877,8 @@ uint FlowStatMap::GetFlow() const
uint FlowStatMap::GetFlowVia(StationID via) const
{
uint ret = 0;
for (FlowStatMap::const_iterator i = this->begin(); i != this->end(); ++i) {
ret += i->second.GetShare(via);
for (const auto &it : *this) {
ret += it.second.GetShare(via);
}
return ret;
}

View File

@ -1058,9 +1058,9 @@ CargoDataEntry::~CargoDataEntry()
void CargoDataEntry::Clear()
{
if (this->children != nullptr) {
for (CargoDataSet::iterator i = this->children->begin(); i != this->children->end(); ++i) {
assert(*i != this);
delete *i;
for (auto &it : *this->children) {
assert(it != this);
delete it;
}
this->children->clear();
}
@ -1464,21 +1464,19 @@ struct StationViewWindow : public Window {
CargoDataEntry *cargo_entry = cached_destinations.InsertOrRetrieve(i);
cargo_entry->Clear();
const FlowStatMap &flows = st->goods[i].flows;
for (FlowStatMap::const_iterator it = flows.begin(); it != flows.end(); ++it) {
StationID from = it->first;
for (const auto &it : st->goods[i].flows) {
StationID from = it.first;
CargoDataEntry *source_entry = cargo_entry->InsertOrRetrieve(from);
const FlowStat::SharesMap *shares = it->second.GetShares();
uint32 prev_count = 0;
for (FlowStat::SharesMap::const_iterator flow_it = shares->begin(); flow_it != shares->end(); ++flow_it) {
StationID via = flow_it->second;
for (const auto &flow_it : *it.second.GetShares()) {
StationID via = flow_it.second;
CargoDataEntry *via_entry = source_entry->InsertOrRetrieve(via);
if (via == this->window_number) {
via_entry->InsertOrRetrieve(via)->Update(flow_it->first - prev_count);
via_entry->InsertOrRetrieve(via)->Update(flow_it.first - prev_count);
} else {
EstimateDestinations(i, from, via, flow_it->first - prev_count, via_entry);
EstimateDestinations(i, from, via, flow_it.first - prev_count, via_entry);
}
prev_count = flow_it->first;
prev_count = flow_it.first;
}
}
}

View File

@ -550,9 +550,8 @@ class NIHTown : public NIHelper {
{
Town *t = Town::Get(index);
std::list<PersistentStorage *>::iterator iter;
for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
if ((*iter)->grfid == grfid) return (int32 *)(&(*iter)->storage[0]);
for (const auto &it : t->psa_list) {
if (it->grfid == grfid) return &it->storage[0];
}
return nullptr;

View File

@ -222,9 +222,7 @@ std::tuple<CommandCost, Money, TileIndex> CmdTerraformLand(DoCommandFlag flags,
* Pass == 0: Collect tileareas which are caused to be auto-cleared.
* Pass == 1: Collect the actual cost. */
for (int pass = 0; pass < 2; pass++) {
for (TileIndexSet::const_iterator it = ts.dirty_tiles.begin(); it != ts.dirty_tiles.end(); it++) {
TileIndex t = *it;
for (const auto &t : ts.dirty_tiles) {
assert(t < Map::Size());
/* MP_VOID tiles can be terraformed but as tunnels and bridges
* cannot go under / over these tiles they don't need checking. */
@ -301,18 +299,17 @@ std::tuple<CommandCost, Money, TileIndex> CmdTerraformLand(DoCommandFlag flags,
if (flags & DC_EXEC) {
/* Mark affected areas dirty. */
for (TileIndexSet::const_iterator it = ts.dirty_tiles.begin(); it != ts.dirty_tiles.end(); it++) {
MarkTileDirtyByTile(*it);
TileIndexToHeightMap::const_iterator new_height = ts.tile_to_new_height.find(*it);
for (const auto &t : ts.dirty_tiles) {
MarkTileDirtyByTile(t);
TileIndexToHeightMap::const_iterator new_height = ts.tile_to_new_height.find(t);
if (new_height == ts.tile_to_new_height.end()) continue;
MarkTileDirtyByTile(*it, 0, new_height->second);
MarkTileDirtyByTile(t, 0, new_height->second);
}
/* change the height */
for (TileIndexToHeightMap::const_iterator it = ts.tile_to_new_height.begin();
it != ts.tile_to_new_height.end(); it++) {
TileIndex t = it->first;
int height = it->second;
for (const auto &it : ts.tile_to_new_height) {
TileIndex t = it.first;
int height = it.second;
SetTileHeight(t, (uint)height);
}