Changeset - r6608:f2d13a751f0b
[Not reviewed]
master
0 4 0
peter1138 - 17 years ago 2007-05-12 07:05:34
peter1138@openttd.org
(svn r9828) -Codechange: [NewGRF] Add support for changing cargo capacity with callback 36. This is set on construction for ships and roadvehicles, and whenever carriages are attached for trains.
4 files changed with 14 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/build_vehicle_gui.cpp
Show inline comments
 
@@ -386,7 +386,7 @@ static int DrawRailWagonPurchaseInfo(int
 
	/* Wagon weight - (including cargo) */
 
	uint weight = GetEngineProperty(engine_number, 0x16, rvi->weight);
 
	SetDParam(0, weight);
 
	SetDParam(1, (GetCargo(rvi->cargo_type)->weight * rvi->capacity >> 4) + weight);
 
	SetDParam(1, (GetCargo(rvi->cargo_type)->weight * GetEngineProperty(engine_number, 0x14, rvi->capacity) >> 4) + weight);
 
	DrawString(x, y, STR_PURCHASE_INFO_WEIGHT_CWEIGHT, 0);
 
	y += 10;
 

	
 
@@ -461,7 +461,7 @@ static int DrawRoadVehPurchaseInfo(int x
 

	
 
	/* Cargo type + capacity */
 
	SetDParam(0, rvi->cargo_type);
 
	SetDParam(1, rvi->capacity);
 
	SetDParam(1, GetEngineProperty(engine_number, 0x0F, rvi->capacity));
 
	SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
 
	DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
 
	y += 10;
 
@@ -480,7 +480,7 @@ static int DrawShipPurchaseInfo(int x, i
 

	
 
	/* Cargo type + capacity */
 
	SetDParam(0, svi->cargo_type);
 
	SetDParam(1, svi->capacity);
 
	SetDParam(1, GetEngineProperty(engine_number, 0x0D, svi->capacity));
 
	SetDParam(2, svi->refittable ? STR_9842_REFITTABLE : STR_EMPTY);
 
	DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
 
	y += 10;
 
@@ -545,8 +545,9 @@ int DrawVehiclePurchaseInfo(int x, int y
 
	switch (e->type) {
 
		case VEH_TRAIN: {
 
			const RailVehicleInfo *rvi = RailVehInfo(engine_number);
 
			uint capacity = GetEngineProperty(engine_number, 0x14, rvi->capacity);
 

	
 
			refitable = (EngInfo(engine_number)->refit_mask != 0) && (rvi->capacity > 0);
 
			refitable = (EngInfo(engine_number)->refit_mask != 0) && (capacity > 0);
 

	
 
			if (rvi->railveh_type == RAILVEH_WAGON) {
 
				y = DrawRailWagonPurchaseInfo(x, y, engine_number, rvi);
 
@@ -562,7 +563,7 @@ int DrawVehiclePurchaseInfo(int x, int y
 
				int multihead = (rvi->railveh_type == RAILVEH_MULTIHEAD ? 1 : 0);
 

	
 
				SetDParam(0, rvi->cargo_type);
 
				SetDParam(1, (rvi->capacity * (CountArticulatedParts(engine_number) + 1)) << multihead);
 
				SetDParam(1, (capacity * (CountArticulatedParts(engine_number) + 1)) << multihead);
 
				SetDParam(2, refitable ? STR_9842_REFITTABLE : STR_EMPTY);
 
			}
 
			DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
src/roadveh_cmd.cpp
Show inline comments
 
@@ -211,6 +211,8 @@ int32 CmdBuildRoadVeh(TileIndex tile, ui
 
		v->vehicle_flags = 0;
 
		if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
 

	
 
		v->cargo_cap = GetVehicleProperty(v, 0x0F, rvi->capacity);
 

	
 
		VehiclePositionChanged(v);
 

	
 
		InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
 
@@ -1849,7 +1851,7 @@ int32 CmdRefitRoadVeh(TileIndex tile, ui
 
		 * carry twice as much mail/goods as normal cargo, and four times as
 
		 * many passengers
 
		 */
 
		capacity = rvi->capacity;
 
		capacity = GetVehicleProperty(v, 0x0F, rvi->capacity);
 
		switch (old_cid) {
 
			case CT_PASSENGERS: break;
 
			case CT_MAIL:
src/ship_cmd.cpp
Show inline comments
 
@@ -878,6 +878,8 @@ int32 CmdBuildShip(TileIndex tile, uint3
 
		v->vehicle_flags = 0;
 
		if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
 

	
 
		v->cargo_cap = GetVehicleProperty(v, 0x0D, svi->capacity);
 

	
 
		VehiclePositionChanged(v);
 

	
 
		InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
 
@@ -1090,7 +1092,7 @@ int32 CmdRefitShip(TileIndex tile, uint3
 
	}
 

	
 
	if (capacity == CALLBACK_FAILED) {
 
		capacity = ShipVehInfo(v->engine_type)->capacity;
 
		capacity = GetVehicleProperty(v, 0x0D, ShipVehInfo(v->engine_type)->capacity);
 
	}
 
	_returned_refit_capacity = capacity;
 

	
src/train_cmd.cpp
Show inline comments
 
@@ -220,6 +220,8 @@ void TrainConsistChanged(Vehicle* v)
 
			}
 
		}
 

	
 
		u->cargo_cap = GetVehicleProperty(u, 0x14, rvi_u->capacity);
 

	
 
		/* check the vehicle length (callback) */
 
		uint16 veh_len = CALLBACK_FAILED;
 
		if (HASBIT(EngInfo(u->engine_type)->callbackmask, CBM_VEHICLE_LENGTH)) {
0 comments (0 inline, 0 general)