(svn r5861) - Backport from trunk (r5839): 0.4
authorDarkvater
Sat, 12 Aug 2006 12:22:38 +0000
branch0.4
changeset 10074 cae7dc5c5dfe
parent 10073 a1d404ac9820
child 10075 7ae6bc813772
(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
ship_gui.c
--- /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;
+}
--- 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);