diff options
author | hackykid <hackykid@openttd.org> | 2005-06-02 21:38:50 +0000 |
---|---|---|
committer | hackykid <hackykid@openttd.org> | 2005-06-02 21:38:50 +0000 |
commit | 6849e086f5a19094129e2b7b2046421fad571774 (patch) | |
tree | 58e4bf7630579c8a06dd513ca53cf664ee4874bc | |
parent | 922b9dd7f36087db2041abc9cbb35090d52959f4 (diff) | |
download | openttd-6849e086f5a19094129e2b7b2046421fad571774.tar.xz |
(svn r2400) - Fix: [newgrf] Load power for dual-headed engines correctly
-rw-r--r-- | newgrf.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -225,6 +225,9 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf 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 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf 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; |