# HG changeset patch # User Darkvater # Date 1155385358 0 # Node ID cae7dc5c5dfe7b6a037f124ed9d1cf2ab3d351e0 # Parent a1d404ac9820583a7c5063ee7445558c6ab70fc1 (svn r5861) - Backport from trunk (r5839): A ship in a depot must be stopped before allowed to be cloned (copied ship.h from trunk). diff -r a1d404ac9820 -r cae7dc5c5dfe ship.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ship.h Sat Aug 12 12:22:38 2006 +0000 @@ -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 -r a1d404ac9820 -r cae7dc5c5dfe ship_gui.c --- a/ship_gui.c Sat Aug 12 12:13:08 2006 +0000 +++ b/ship_gui.c Sat Aug 12 12:22:38 2006 +0000 @@ -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 @@ 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);