summaryrefslogtreecommitdiff
path: root/ship_gui.c
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2006-10-02 00:28:31 +0000
committerbelugas <belugas@openttd.org>2006-10-02 00:28:31 +0000
commit2c45339e0ae0fa0b466b725eb2280a16a5b167d5 (patch)
tree824c32c54efb62eb8db1cd43c94dbe8c28a30b9a /ship_gui.c
parent21591b5219a99a9d798c43dc2d89e7d00475f7cd (diff)
downloadopenttd-2c45339e0ae0fa0b466b725eb2280a16a5b167d5.tar.xz
(svn r6612) -Codechange: Use accessors for hidden_state.
Another step toward merging XTDwidget. The only two files not converted (window.h and widget.c) will be done at the very last commit)
Diffstat (limited to 'ship_gui.c')
-rw-r--r--ship_gui.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/ship_gui.c b/ship_gui.c
index bf1114d1c..7d8cfa868 100644
--- a/ship_gui.c
+++ b/ship_gui.c
@@ -477,13 +477,16 @@ static void ShipViewWndProc(Window *w, WindowEvent *e)
DeleteWindowById(WC_VEHICLE_DETAILS, w->window_number);
break;
- case WE_MOUSELOOP:
- {
+ case WE_MOUSELOOP: {
const Vehicle *v = GetVehicle(w->window_number);
- uint32 h = IsShipInDepotStopped(v) ? 1 << 7 : 1 << 11;
-
- if (h != w->hidden_state) {
- w->hidden_state = h;
+ bool ship_stopped = IsShipInDepotStopped(v);
+
+ /* Widget 7 (send to depot) must be hidden if the ship is already stopped in depot.
+ * Widget 11 (clone) should then be shown, since cloning is allowed only while in depot and stopped.
+ * This sytem allows to have two buttons, on top of each otherother*/
+ if (ship_stopped != IsWindowWidgetHidden(w, 7) || ship_stopped == IsWindowWidgetHidden(w, 11)) {
+ SetWindowWidgetHiddenState(w, 7, ship_stopped); // send to depot
+ SetWindowWidgetHiddenState(w, 11, !ship_stopped); // clone
SetWindowDirty(w);
}
}