Changeset - r17060:2c02ec0aa11a
[Not reviewed]
master
0 2 0
rubidium - 13 years ago 2011-01-15 18:14:29
rubidium@openttd.org
(svn r21807) -Codechange: split automatic order removal into a separate function (fonsinchen)
2 files changed with 15 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/vehicle.cpp
Show inline comments
 
@@ -1736,6 +1736,18 @@ uint GetVehicleCapacity(const Vehicle *v
 
	return capacity;
 
}
 

	
 
/**
 
 * Delete all automatic orders which were not reached.
 
 */
 
void Vehicle::DeleteUnreachedAutoOrders()
 
{
 
	const Order *order = this->GetOrder(this->cur_order_index);
 
	while (order != NULL && order->IsType(OT_AUTOMATIC)) {
 
		/* Delete order effectively deletes order, so get the next before deleting it. */
 
		order = order->next;
 
		DeleteOrder(this, this->cur_order_index);
 
	}
 
}
 

	
 
void Vehicle::BeginLoading()
 
{
 
@@ -1743,13 +1755,7 @@ void Vehicle::BeginLoading()
 

	
 
	if (this->current_order.IsType(OT_GOTO_STATION) &&
 
			this->current_order.GetDestination() == this->last_station_visited) {
 
		/* Delete all automatic orders which were not reached */
 
		const Order *order = this->GetOrder(this->cur_order_index);
 
		while (order != NULL && order->IsType(OT_AUTOMATIC)) {
 
			/* Delete order effectively deletes order, so get the next before deleting it. */
 
			order = order->next;
 
			DeleteOrder(this, this->cur_order_index);
 
		}
 
		this->DeleteUnreachedAutoOrders();
 

	
 
		/* Now cur_order_index points to the destination station, and we can start loading */
 
		this->current_order.MakeLoading(true);
src/vehicle_base.h
Show inline comments
 
@@ -243,6 +243,8 @@ public:
 
	GroundVehicleCache *GetGroundVehicleCache();
 
	const GroundVehicleCache *GetGroundVehicleCache() const;
 

	
 
	void DeleteUnreachedAutoOrders();
 

	
 
	/**
 
	 * Handle the loading of the vehicle; when not it skips through dummy
 
	 * orders and does nothing in all other cases.
0 comments (0 inline, 0 general)