mirror of https://github.com/OpenTTD/OpenTTD
(svn r6395) -Fix: when converting a depot from/to elrail, update the power of trains that are in it
parent
85a71fcea9
commit
ec6189081d
15
rail_cmd.c
15
rail_cmd.c
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue