diff options
Diffstat (limited to 'train_cmd.c')
-rw-r--r-- | train_cmd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/train_cmd.c b/train_cmd.c index cb6306d91..342883e1f 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -496,6 +496,7 @@ int32 CmdBuildRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) NormalizeTrainVehInDepot(v); InvalidateWindow(WC_VEHICLE_DEPOT, tile); + _vehicle_sort_dirty[VEHTRAIN] = true; // build a trainengine InvalidateWindow(WC_TRAINS_LIST, v->owner); InvalidateWindow(WC_COMPANY, v->owner); } @@ -793,7 +794,10 @@ int32 CmdSellRailWagon(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (flags & DC_EXEC) { // always redraw the depot. maybe redraw train list InvalidateWindow(WC_VEHICLE_DEPOT, first->tile); - if (first->subtype == 0) InvalidateWindow(WC_TRAINS_LIST, first->owner); + if (first->subtype == 0) { + _vehicle_sort_dirty[VEHTRAIN] = true; // sell a wagon / locomotive + InvalidateWindow(WC_TRAINS_LIST, first->owner); + } // when selling an attached locomotive. we need to delete its window. if (v->subtype == 0) { DeleteWindowById(WC_VEHICLE_VIEW, v->index); @@ -2198,6 +2202,7 @@ static void DeleteLastWagon(Vehicle *v) InvalidateWindow(WC_VEHICLE_DETAILS, v->index); DeleteWindowById(WC_VEHICLE_VIEW, v->index); + _vehicle_sort_dirty[VEHTRAIN] = true; // remove crashed train InvalidateWindow(WC_TRAINS_LIST, v->owner); InvalidateWindow(WC_COMPANY, v->owner); |