summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newgrf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/newgrf.c b/newgrf.c
index 1c697430a..e51307eba 100644
--- a/newgrf.c
+++ b/newgrf.c
@@ -267,7 +267,7 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
uint8 tracktype = grf_load_byte(&buf);
switch (tracktype) {
- case 0: ei[i].railtype = RAILTYPE_RAIL; break;
+ case 0: ei[i].railtype = rvi[i].engclass == 2 ? RAILTYPE_ELECTRIC : RAILTYPE_RAIL; break;
case 1: ei[i].railtype = RAILTYPE_MONO; break;
case 2: ei[i].railtype = RAILTYPE_MAGLEV; break;
default:
@@ -405,12 +405,13 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
engclass = 1;
} else if (traction <= 0x31) {
engclass = 2;
- ei[i].railtype = RAILTYPE_ELECTRIC;
} else if (traction <= 0x41) {
engclass = 2;
} else {
break;
}
+ if (ei[i].railtype == RAILTYPE_RAIL && engclass == 2) ei[i].railtype = RAILTYPE_ELECTRIC;
+ if (ei[i].railtype == RAILTYPE_ELECTRIC && engclass != 2) ei[i].railtype = RAILTYPE_RAIL;
rvi[i].engclass = engclass;
}