diff --git a/src/newgrf.cpp b/src/newgrf.cpp index d882ebbe4a..8108f2eee1 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -4484,7 +4484,13 @@ static ChangeInfoResult RoadTypeChangeInfo(uint id, int numinfo, int prop, ByteR RoadType resolved_rt = GetRoadTypeByLabel(BSWAP32(label), false); if (resolved_rt != INVALID_ROADTYPE) { switch (prop) { - case 0x0F: SetBit(rti->powered_roadtypes, resolved_rt); break; + case 0x0F: + if (GetRoadTramType(resolved_rt) == rtt) { + SetBit(rti->powered_roadtypes, resolved_rt); + } else { + GrfMsg(1, "RoadTypeChangeInfo: Powered road type list: Road type {} road/tram type does not match road type {}, ignoring", resolved_rt, rt); + } + break; case 0x18: SetBit(rti->introduction_required_roadtypes, resolved_rt); break; case 0x19: SetBit(rti->introduces_roadtypes, resolved_rt); break; }