# HG changeset patch # User PeterN # Date 2023-05-13 21:27:32 # Node ID 12ceee3b2fcf51c886d682b5970cf0498098da37 # Parent 6d04fd50809db8e2d7b932542b78fa90f62588fb Fix: Don't use a loop to test if classid is valid. (#10818) Additionally the Object class test was broken. diff --git a/src/object_gui.cpp b/src/object_gui.cpp --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -182,19 +182,8 @@ public: } else { /* Check if the previously selected object class is not available anymore as a * result of starting a new game without the corresponding NewGRF. */ - bool available = false; - for (uint i = 0; ObjectClass::GetClassCount(); ++i) { - if ((ObjectClassID)i == _selected_object_class) { - available = true; - break; - } - } - - if (available) { - this->SelectOtherClass(_selected_object_class); - } else { - this->SelectOtherClass(this->object_classes[0]); - } + bool available = _selected_object_class < ObjectClass::GetClassCount(); + this->SelectOtherClass(available ? _selected_object_class : this->object_classes[0]); } if (this->CanRestoreSelectedObject()) { diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1089,14 +1089,7 @@ public: } else { /* Check if the previously selected station class is not available anymore as a * result of starting a new game without the corresponding NewGRF. */ - bool available = false; - for (uint i = 0; i < StationClass::GetClassCount(); ++i) { - if ((StationClassID)i == _railstation.station_class) { - available = true; - break; - } - } - + bool available = _railstation.station_class < StationClass::GetClassCount(); this->SelectOtherClass(available ? _railstation.station_class : StationClassID::STAT_CLASS_DFLT); } }