summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
diff options
context:
space:
mode:
authorRubidium <rubidium@openttd.org>2021-05-10 23:02:44 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-05-15 10:16:10 +0200
commite6f0d63e258d9847ed564864ddc04967d780c1de (patch)
treebfd9ae20b028db3439451e0f189716cefea18c19 /src/newgrf.cpp
parentaa5a8fe28a224fd581b6053e4a5ce38f3e1a9694 (diff)
downloadopenttd-e6f0d63e258d9847ed564864ddc04967d780c1de.tar.xz
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.
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r--src/newgrf.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 29b6a4903..d2b3449c9 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -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;
}