From 2452a20e07b03ef13cb0db55f99868be08188b2a Mon Sep 17 00:00:00 2001 From: Darkvater Date: Sat, 12 Aug 2006 12:22:38 +0000 Subject: [PATCH] (svn r5861) - Backport from trunk (r5839): A ship in a depot must be stopped before allowed to be cloned (copied ship.h from trunk). --- ship.h | 15 +++++++++++++++ ship_gui.c | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 ship.h diff --git a/ship.h b/ship.h new file mode 100644 index 0000000000..271ae7f085 --- /dev/null +++ b/ship.h @@ -0,0 +1,15 @@ +/* $Id$ */ + +#include "vehicle.h" + + +static inline bool IsShipInDepot(const Vehicle* v) +{ + assert(v->type == VEH_Ship); + return v->u.ship.state == 0x80; +} + +static inline bool IsShipInDepotStopped(const Vehicle* v) +{ + return IsShipInDepot(v) && v->vehstatus & VS_STOPPED; +} diff --git a/ship_gui.c b/ship_gui.c index 19aaa11537..bf265690ee 100644 --- a/ship_gui.c +++ b/ship_gui.c @@ -4,6 +4,7 @@ #include "openttd.h" #include "debug.h" #include "functions.h" +#include "ship.h" #include "table/strings.h" #include "table/sprites.h" #include "map.h" @@ -569,7 +570,7 @@ static void ShipViewWndProc(Window *w, WindowEvent *e) { Vehicle *v; uint32 h; v = GetVehicle(w->window_number); - h = IsTileDepotType(v->tile, TRANSPORT_WATER) && v->vehstatus & VS_HIDDEN ? (1<< 7) : (1 << 11); + h = IsShipInDepotStopped(v) ? (1<< 7) : (1 << 11); if (h != w->hidden_state) { w->hidden_state = h; SetWindowDirty(w);