Changeset - r14018:d1a56e5ea25b
[Not reviewed]
master
0 1 0
frosch - 14 years ago 2009-12-20 15:21:39
frosch@openttd.org
(svn r18571) -Fix (r18551): Vehicles not carrying any cargo (e.g. engines) were not considered for sending to depot for replacement.
1 file changed with 14 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/vehicle.cpp
Show inline comments
 
@@ -125,9 +125,20 @@ bool Vehicle::NeedsServicing() const
 
		if (new_engine == INVALID_ENGINE || !HasBit(Engine::Get(new_engine)->company_avail, v->owner)) continue;
 

	
 
		/* Check refittability */
 
		CargoID cargo_type = CT_INVALID;
 
		if (IsArticulatedVehicleCarryingDifferentCargos(v, &cargo_type) || cargo_type == CT_INVALID ||
 
				!HasBit(GetIntersectionOfArticulatedRefitMasks(new_engine, true), cargo_type)) continue;
 
		uint32 available_cargo_types, union_mask;
 
		GetArticulatedRefitMasks(new_engine, true, &union_mask, &available_cargo_types);
 
		/* Is there anything to refit? */
 
		if (union_mask != 0) {
 
			CargoID cargo_type;
 
			/* We cannot refit to mixed cargos in an automated way */
 
			if (IsArticulatedVehicleCarryingDifferentCargos(v, &cargo_type)) continue;
 

	
 
			/* Did the old vehicle carry anything? */
 
			if (cargo_type != CT_INVALID) {
 
				/* We can't refit the vehicle to carry the cargo we want */
 
				if (!HasBit(available_cargo_types, cargo_type)) continue;
 
			}
 
		}
 

	
 
		/* Check money.
 
		 * We want 2*(the price of the new vehicle) without looking at the value of the vehicle we are going to sell. */
0 comments (0 inline, 0 general)