Changeset - r20464:619e7a8b3055
[Not reviewed]
master
0 1 0
frosch - 11 years ago 2013-06-26 20:38:32
frosch@openttd.org
(svn r25479) -Fix (r23861): [NewGRF] When cargo NewGRF define a mulitplier to modify vehicle capacities, use the same multiplier to modify loading speed.
1 file changed with 8 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/economy.cpp
Show inline comments
 
@@ -1255,13 +1255,14 @@ void PrepareUnload(Vehicle *front_v)
 
 * @param v Vehicle to be queried.
 
 * @return Amount of cargo the vehicle can load at once.
 
 */
 
static byte GetLoadAmount(Vehicle *v)
 
static uint GetLoadAmount(Vehicle *v)
 
{
 
	const Engine *e = v->GetEngine();
 
	byte load_amount = e->info.load_amount;
 

	
 
	/* The default loadamount for mail is 1/4 of the load amount for passengers */
 
	if (v->type == VEH_AIRCRAFT && !Aircraft::From(v)->IsNormalAircraft()) load_amount = CeilDiv(load_amount, 4);
 
	bool air_mail = v->type == VEH_AIRCRAFT && !Aircraft::From(v)->IsNormalAircraft();
 
	if (air_mail) load_amount = CeilDiv(load_amount, 4);
 

	
 
	if (_settings_game.order.gradual_loading) {
 
		uint16 cb_load_amount = CALLBACK_FAILED;
 
@@ -1281,6 +1282,10 @@ static byte GetLoadAmount(Vehicle *v)
 
			}
 
		}
 
	}
 

	
 
	/* Scale load amount the same as capacity */
 
	if (HasBit(e->info.misc_flags, EF_NO_DEFAULT_CARGO_MULTIPLIER) && !air_mail) load_amount = CeilDiv(load_amount * CargoSpec::Get(v->cargo_type)->multiplier, 0x100);
 

	
 
	return load_amount;
 
}
 

	
 
@@ -1401,7 +1406,7 @@ static void LoadUnloadVehicle(Vehicle *f
 
		if (v->cargo_cap == 0) continue;
 
		artic_part++;
 

	
 
		byte load_amount = GetLoadAmount(v);
 
		uint load_amount = GetLoadAmount(v);
 

	
 
		GoodsEntry *ge = &st->goods[v->cargo_type];
 

	
0 comments (0 inline, 0 general)