summaryrefslogtreecommitdiff
path: root/src/order_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-09-02 17:54:40 +0000
committerrubidium <rubidium@openttd.org>2009-09-02 17:54:40 +0000
commita8d768cf6ebb4fb11bae9f0dcf78e115b7f7db1a (patch)
tree3dc889ce298da685d49d89a871196a7db989f25c /src/order_cmd.cpp
parent1f5268a1d29d1d15cdd8588834654f328d33296c (diff)
downloadopenttd-a8d768cf6ebb4fb11bae9f0dcf78e115b7f7db1a.tar.xz
(svn r17384) -Fix [FS#2859]: remove all order window state changes out of the drawing routine and call them immediately when changes happen instead of on the next OnPaint. This prevents pressing buttons when they should've been already disabled.
Diffstat (limited to 'src/order_cmd.cpp')
-rw-r--r--src/order_cmd.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp
index 0b344b08d..8eb7f7e97 100644
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -791,7 +791,7 @@ CommandCost CmdSkipToOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
- InvalidateVehicleOrder(v, 0);
+ InvalidateVehicleOrder(v, -2);
}
/* We have an aircraft/ship, they have a mini-schedule, so update them all */
@@ -1097,7 +1097,7 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
u->current_order.GetLoadType() != order->GetLoadType()) {
u->current_order.SetLoadType(order->GetLoadType());
}
- InvalidateVehicleOrder(u, 0);
+ InvalidateVehicleOrder(u, -2);
}
}
@@ -1158,7 +1158,7 @@ CommandCost CmdCloneOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
dst->AddToShared(src);
InvalidateVehicleOrder(dst, -1);
- InvalidateVehicleOrder(src, 0);
+ InvalidateVehicleOrder(src, -2);
InvalidateWindowClassesData(GetWindowClassForVehicleType(dst->type), 0);
}
@@ -1252,7 +1252,7 @@ CommandCost CmdOrderRefit(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
for (Vehicle *u = v->FirstShared(); u != NULL; u = u->NextShared()) {
/* Update any possible open window of the vehicle */
- InvalidateVehicleOrder(u, 0);
+ InvalidateVehicleOrder(u, -2);
/* If the vehicle already got the current depot set as current order, then update current order as well */
if (u->cur_order_index == order_number && (u->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) {
@@ -1795,7 +1795,7 @@ bool ProcessOrders(Vehicle *v)
/* Otherwise set it, and determine the destination tile. */
v->current_order = *order;
- InvalidateVehicleOrder(v, 0);
+ InvalidateVehicleOrder(v, -2);
switch (v->type) {
default:
NOT_REACHED();