1
0
Fork 0

(svn r6395) -Fix: when converting a depot from/to elrail, update the power of trains that are in it

release/0.5
glx 2006-09-05 16:40:23 +00:00
parent 85a71fcea9
commit ec6189081d
2 changed files with 14 additions and 2 deletions

View File

@ -31,6 +31,7 @@
#include "yapf/yapf.h"
#include "newgrf_callbacks.h"
#include "newgrf_station.h"
#include "train.h"
const byte _track_sloped_sprites[14] = {
14, 15, 22, 13,
@ -886,13 +887,23 @@ static int32 DoConvertRail(TileIndex tile, RailType totype, bool exec)
for (tracks = GetTrackBits(tile); tracks != TRACK_BIT_NONE; tracks = KILL_FIRST_BIT(tracks))
YapfNotifyTrackLayoutChange(tile, FIND_FIRST_BIT(tracks));
/* Update build vehicle window related to this depot */
if (IsTileDepotType(tile, TRANSPORT_RAIL)) {
Window *w = FindWindowById(WC_BUILD_VEHICLE, tile);
Vehicle *v;
Window *w;
/* Update build vehicle window related to this depot */
w = FindWindowById(WC_BUILD_VEHICLE, tile);
if (w != NULL) {
WP(w,buildtrain_d).railtype = totype;
SetWindowDirty(w);
}
/* update power of trains in this depot */
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_Train && IsFrontEngine(v) && v->tile == tile && v->u.rail.track == 0x80) {
TrainPowerChanged(v);
}
}
}
}

View File

@ -113,6 +113,7 @@ void TrainPowerChanged(Vehicle* v)
if (v->u.rail.cached_power != power) {
v->u.rail.cached_power = power;
InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
}
}