summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-02-05 15:58:42 +0000
committerrubidium <rubidium@openttd.org>2009-02-05 15:58:42 +0000
commitb7c7a1f70100957232172959ad9e532c5d3237ba (patch)
tree6779dd1fd0dec649bc15425c89520e958d1d25a1
parent324b54132c0e1fc2466d31681b2f3b403f04b69a (diff)
downloadopenttd-b7c7a1f70100957232172959ad9e532c5d3237ba.tar.xz
(svn r15354) -Fix (r14803): first shared of a vehicle could be NULL making it impossible to (share-)clone the vehicle.
-rw-r--r--src/order_cmd.cpp3
-rw-r--r--src/vehicle_base.h2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp
index 07cc76156..30aeaa5b2 100644
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -1427,9 +1427,8 @@ void CheckOrders(const Vehicle *v)
/* Do we only have 1 station in our order list? */
if (n_st < 2 && problem_type == -1) problem_type = 0;
- assert(v->orders.list); // otherwise the check for v->FirstShared() != v would have been true
#ifndef NDEBUG
- v->orders.list->DebugCheckSanity();
+ if (v->orders.list != NULL) v->orders.list->DebugCheckSanity();
#endif
/* We don't have a problem */
diff --git a/src/vehicle_base.h b/src/vehicle_base.h
index cfda648ec..fff20de4f 100644
--- a/src/vehicle_base.h
+++ b/src/vehicle_base.h
@@ -515,7 +515,7 @@ public:
* Get the first vehicle of this vehicle chain.
* @return the first vehicle of the chain.
*/
- inline Vehicle *FirstShared() const { return (this->orders.list == NULL) ? NULL : this->orders.list->GetFirstSharedVehicle(); }
+ inline Vehicle *FirstShared() const { return (this->orders.list == NULL) ? this->First() : this->orders.list->GetFirstSharedVehicle(); }
/**
* Check if we share our orders with another vehicle.