Codechange: comparison result is always the same due to earlier check

Practically the length of the handlers not being equal to the number of
features is the problem as it means something was forgotten when adding
a new feature, so static assert to that and let the existing check on
the feature number take care of invalid data from the NewGRFs.
This commit is contained in:
Rubidium 2021-05-10 23:02:44 +02:00 committed by rubidium42
parent aa5a8fe28a
commit e6f0d63e25
1 changed files with 2 additions and 1 deletions

View File

@ -4746,6 +4746,7 @@ static void FeatureChangeInfo(ByteReader *buf)
/* GSF_ROADTYPES */ RoadTypeChangeInfo,
/* GSF_TRAMTYPES */ TramTypeChangeInfo,
};
static_assert(GSF_END == lengthof(handler));
uint8 feature = buf->ReadByte();
uint8 numprops = buf->ReadByte();
@ -4760,7 +4761,7 @@ static void FeatureChangeInfo(ByteReader *buf)
grfmsg(6, "FeatureChangeInfo: Feature 0x%02X, %d properties, to apply to %d+%d",
feature, numprops, engine, numinfo);
if (feature >= lengthof(handler) || handler[feature] == nullptr) {
if (handler[feature] == nullptr) {
if (feature != GSF_CARGOES) grfmsg(1, "FeatureChangeInfo: Unsupported feature 0x%02X, skipping", feature);
return;
}