File diff r4076:ac684fc44bc2 → r4077:259c4c4aacad
vehicle.c
Show inline comments
 
@@ -481,7 +481,7 @@ Vehicle *GetPrevVehicleInChain(const Veh
 

	
 
	u = GetFirstVehicleInChain(v);
 

	
 
 	// Check to see if this is the first
 
	// Check to see if this is the first
 
	if (v == u) return NULL;
 

	
 
	do {
 
@@ -637,7 +637,9 @@ static bool CanFillVehicle_FullLoadAny(V
 

	
 
	//if the aircraft carries passengers and is NOT full, then
 
	//continue loading, no matter how much mail is in
 
	if ((v->type == VEH_Aircraft) && (v->cargo_type == CT_PASSENGERS) && (v->cargo_cap != v->cargo_count)) {
 
	if (v->type == VEH_Aircraft &&
 
			v->cargo_type == CT_PASSENGERS &&
 
			v->cargo_cap != v->cargo_count) {
 
		return true;
 
	}
 

	
 
@@ -648,9 +650,14 @@ static bool CanFillVehicle_FullLoadAny(V
 

	
 
		if (v->cargo_cap != 0) {
 
			uint32 mask = 1 << v->cargo_type;
 
			if (v->cargo_cap == v->cargo_count) full |= mask; else not_full |= mask;
 

	
 
			if (v->cargo_cap == v->cargo_count) {
 
				full |= mask;
 
			} else {
 
				not_full |= mask;
 
			}
 
		}
 
	} while ( (v=v->next) != NULL);
 
	} while ((v = v->next) != NULL);
 

	
 
	// continue loading if there is a non full cargo type and no cargo type that is full
 
	return not_full && (full & ~not_full) == 0;
 
@@ -670,13 +677,11 @@ bool CanFillVehicle(Vehicle *v)
 
			))) {
 

	
 
		// If patch is active, use alternative CanFillVehicle-function
 
		if (_patches.full_load_any)
 
			return CanFillVehicle_FullLoadAny(v);
 
		if (_patches.full_load_any) return CanFillVehicle_FullLoadAny(v);
 

	
 
		do {
 
			if (v->cargo_count != v->cargo_cap)
 
				return true;
 
		} while ( (v=v->next) != NULL);
 
			if (v->cargo_count != v->cargo_cap) return true;
 
		} while ((v = v->next) != NULL);
 
	}
 
	return false;
 
}
 
@@ -754,14 +759,12 @@ void ViewportAddVehicles(DrawPixelInfo *
 
				veh = v->next_hash;
 
			}
 

	
 
			if (x == x2)
 
				break;
 
			if (x == x2) break;
 
			x = (x + 1) & 0x3F;
 
		}
 
		x = xb;
 

	
 
		if (y == y2)
 
			break;
 
		if (y == y2) break;
 
		y = (y + 0x40) & ((0x3F) << 6);
 
	}
 
}