Codechange: Use GetVisibleRangeIterators() in more places. (#12190)

This replaces more first/last index calculation, along with indexed array/vector access, with iterator access instead.
This commit is contained in:
Peter Nelson
2024-02-27 20:10:06 +00:00
committed by GitHub
parent 529d813496
commit d4f0f0e2c5
14 changed files with 58 additions and 65 deletions

View File

@@ -933,13 +933,13 @@ struct SpriteAlignerWindow : Window {
const NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget);
int step_size = nwid->resize_y;
std::vector<SpriteID> &list = _newgrf_debug_sprite_picker.sprites;
int max = std::min<int>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)list.size());
const std::vector<SpriteID> &list = _newgrf_debug_sprite_picker.sprites;
Rect ir = r.Shrink(WidgetDimensions::scaled.matrix);
for (int i = this->vscroll->GetPosition(); i < max; i++) {
SetDParam(0, list[i]);
DrawString(ir, STR_JUST_COMMA, list[i] == this->current_sprite ? TC_WHITE : TC_BLACK, SA_RIGHT | SA_FORCE);
auto [first, last] = this->vscroll->GetVisibleRangeIterators(list);
for (auto it = first; it != last; ++it) {
SetDParam(0, *it);
DrawString(ir, STR_JUST_COMMA, *it == this->current_sprite ? TC_WHITE : TC_BLACK, SA_RIGHT | SA_FORCE);
ir.top += step_size;
}
break;