(svn r2400) - Fix: [newgrf] Load power for dual-headed engines correctly
authorhackykid
Thu, 02 Jun 2005 21:38:50 +0000
changeset 1894 c76c6bc57121
parent 1893 99e4c49938af
child 1895 0d499b71a782
(svn r2400) - Fix: [newgrf] Load power for dual-headed engines correctly
newgrf.c
--- a/newgrf.c	Thu Jun 02 19:55:37 2005 +0000
+++ b/newgrf.c	Thu Jun 02 21:38:50 2005 +0000
@@ -225,6 +225,9 @@
 			FOR_EACH_OBJECT {
 				uint16 power = grf_load_word(&buf);
 
+				if (rvi[i].flags & RVI_MULTIHEAD)
+					power /= 2;
+
 				rvi[i].power = power;
 				dewagonize(power, engine + i);
 			}
@@ -269,9 +272,13 @@
 				uint8 dual = grf_load_byte(&buf);
 
 				if (dual != 0) {
-					rvi[i].flags |= 1;
+					if (!(rvi[i].flags & RVI_MULTIHEAD)) // adjust power if needed
+						rvi[i].power /= 2;
+					rvi[i].flags |= RVI_MULTIHEAD;
 				} else {
-					rvi[i].flags &= ~1;
+					if (rvi[i].flags & RVI_MULTIHEAD) // adjust power if needed
+						rvi[i].power *= 2;
+					rvi[i].flags &= ~RVI_MULTIHEAD;
 				}
 			}
 		}	break;