Fix #7197: Invalidate depot buttons when necessary. (#7212)

This commit is contained in:
PeterN 2019-02-10 08:43:54 +00:00 committed by GitHub
parent 6e21190858
commit d242875d27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 1 deletions

View File

@ -1490,6 +1490,8 @@ void VehicleEnterDepot(Vehicle *v)
TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT); TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT);
v->MarkDirty(); v->MarkDirty();
InvalidateWindowData(WC_VEHICLE_VIEW, v->index);
if (v->current_order.IsType(OT_GOTO_DEPOT)) { if (v->current_order.IsType(OT_GOTO_DEPOT)) {
SetWindowDirty(WC_VEHICLE_VIEW, v->index); SetWindowDirty(WC_VEHICLE_VIEW, v->index);

View File

@ -585,6 +585,7 @@ CommandCost CmdStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1,
SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP);
SetWindowDirty(WC_VEHICLE_DEPOT, v->tile); SetWindowDirty(WC_VEHICLE_DEPOT, v->tile);
SetWindowClassesDirty(GetWindowClassForVehicleType(v->type)); SetWindowClassesDirty(GetWindowClassForVehicleType(v->type));
InvalidateWindowData(WC_VEHICLE_VIEW, v->index);
} }
return CommandCost(); return CommandCost();
} }

View File

@ -2503,6 +2503,8 @@ public:
this->GetWidget<NWidgetCore>(WID_VV_SHOW_ORDERS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP + v->type; this->GetWidget<NWidgetCore>(WID_VV_SHOW_ORDERS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP + v->type;
this->GetWidget<NWidgetCore>(WID_VV_SHOW_DETAILS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP + v->type; this->GetWidget<NWidgetCore>(WID_VV_SHOW_DETAILS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP + v->type;
this->GetWidget<NWidgetCore>(WID_VV_CLONE)->tool_tip = STR_VEHICLE_VIEW_CLONE_TRAIN_INFO + v->type; this->GetWidget<NWidgetCore>(WID_VV_CLONE)->tool_tip = STR_VEHICLE_VIEW_CLONE_TRAIN_INFO + v->type;
this->UpdateButtonStatus();
} }
~VehicleViewWindow() ~VehicleViewWindow()
@ -2732,7 +2734,7 @@ public:
} }
} }
virtual void OnGameTick() void UpdateButtonStatus()
{ {
const Vehicle *v = Vehicle::Get(this->window_number); const Vehicle *v = Vehicle::Get(this->window_number);
bool veh_stopped = v->IsStoppedInDepot(); bool veh_stopped = v->IsStoppedInDepot();
@ -2769,6 +2771,8 @@ public:
* Nothing to do for this window. */ * Nothing to do for this window. */
return; return;
} }
this->UpdateButtonStatus();
} }
virtual bool IsNewGRFInspectable() const virtual bool IsNewGRFInspectable() const