changeset 5115:bacb9baa7012 draft

(svn r7194) -Fix (FS#237): the electric rail type was not set correctly for NewGRFs where the engine traction type was set before the track type of the trains.
author rubidium <rubidium@openttd.org>
date Fri, 17 Nov 2006 18:06:40 +0000
parents e545bf65aa81
children f1c1c82db73c
files newgrf.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/newgrf.c
+++ b/newgrf.c
@@ -267,7 +267,7 @@
 				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 @@
 					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;
 			}