summaryrefslogtreecommitdiff
path: root/src/build_vehicle_gui.cpp
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-05-12 07:05:34 +0000
committerpeter1138 <peter1138@openttd.org>2007-05-12 07:05:34 +0000
commite16ea9b7582056a3483f5de6553573fccc792d15 (patch)
treeaa8b73d935ad66bb61ddc8bd2026585301060743 /src/build_vehicle_gui.cpp
parentaae8d359e609c9f47acd7aba9ca6305fa6a0682e (diff)
downloadopenttd-e16ea9b7582056a3483f5de6553573fccc792d15.tar.xz
(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.
Diffstat (limited to 'src/build_vehicle_gui.cpp')
-rw-r--r--src/build_vehicle_gui.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp
index 6e66ea7ca..c7fb5f30e 100644
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -386,7 +386,7 @@ static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const
/* 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, int y, EngineID engine_number, const R
/* 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, int y, EngineID engine_number, const Ship
/* 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, uint w, EngineID engine_number)
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, uint w, EngineID engine_number)
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);