diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 849f3d27b8..f3188dcd15 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -4761,7 +4761,13 @@ static ChangeInfoResult RoadTypeChangeInfo(uint id, int numinfo, int prop, const 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 %u road/tram type does not match road type %u, ignoring", resolved_rt, rt); + } + break; case 0x18: SetBit(rti->introduction_required_roadtypes, resolved_rt); break; case 0x19: SetBit(rti->introduces_roadtypes, resolved_rt); break; }