summaryrefslogtreecommitdiff
path: root/src/economy.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2011-11-08 17:28:05 +0000
committerfrosch <frosch@openttd.org>2011-11-08 17:28:05 +0000
commit7d4568361c92bcf448859f47103a59c0735a4f99 (patch)
treefb58a52a1a031149feb3354a5afda1525e2164c7 /src/economy.cpp
parent8dcbd673cfa9e9f1f4036fe053a9ebd78bb0328a (diff)
downloadopenttd-7d4568361c92bcf448859f47103a59c0735a4f99.tar.xz
(svn r23151) -Change: [NewGRF v8] Deprecate callback 12, and use callback 36 instead.
Diffstat (limited to 'src/economy.cpp')
-rw-r--r--src/economy.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/economy.cpp b/src/economy.cpp
index 79d8a0b99..48cd28296 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -1207,8 +1207,15 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
/* 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);
- if (_settings_game.order.gradual_loading && HasBit(e->info.callback_mask, CBM_VEHICLE_LOAD_AMOUNT)) {
- uint16 cb_load_amount = GetVehicleCallback(CBID_VEHICLE_LOAD_AMOUNT, 0, 0, v->engine_type, v);
+ if (_settings_game.order.gradual_loading) {
+ uint16 cb_load_amount = CALLBACK_FAILED;
+ if (e->GetGRF() != NULL && e->GetGRF()->grf_version >= 8) {
+ /* Use callback 36 */
+ cb_load_amount = GetVehicleProperty(v, PROP_VEHICLE_LOAD_AMOUNT, CALLBACK_FAILED);
+ } else if (HasBit(e->info.callback_mask, CBM_VEHICLE_LOAD_AMOUNT)) {
+ /* Use callback 12 */
+ cb_load_amount = GetVehicleCallback(CBID_VEHICLE_LOAD_AMOUNT, 0, 0, v->engine_type, v);
+ }
if (cb_load_amount != CALLBACK_FAILED) {
if (e->GetGRF()->grf_version < 8) cb_load_amount = GB(cb_load_amount, 0, 8);
if (cb_load_amount >= 0x100) {