equal
deleted
inserted
replaced
23 } |
23 } |
24 |
24 |
25 uint i; |
25 uint i; |
26 for (i = 1; i < MAX_UVALUE(EngineID); i++) { |
26 for (i = 1; i < MAX_UVALUE(EngineID); i++) { |
27 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, engine_type, v); |
27 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, engine_type, v); |
28 if (callback == CALLBACK_FAILED || callback == 0xFF) break; |
28 if (callback == CALLBACK_FAILED || GB(callback, 0, 8) == 0xFF) break; |
29 } |
29 } |
30 |
30 |
31 delete v; |
31 delete v; |
32 |
32 |
33 return i - 1; |
33 return i - 1; |
50 |
50 |
51 if (!HasBit(EngInfo(engine)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) return capacity; |
51 if (!HasBit(EngInfo(engine)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) return capacity; |
52 |
52 |
53 for (uint i = 1; i < MAX_UVALUE(EngineID); i++) { |
53 for (uint i = 1; i < MAX_UVALUE(EngineID); i++) { |
54 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, engine, NULL); |
54 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, engine, NULL); |
55 if (callback == CALLBACK_FAILED || callback == 0xFF) break; |
55 if (callback == CALLBACK_FAILED || GB(callback, 0, 8) == 0xFF) break; |
56 |
56 |
57 EngineID artic_engine = GetFirstEngineOfType(type) + GB(callback, 0, 7); |
57 EngineID artic_engine = GetFirstEngineOfType(type) + GB(callback, 0, 7); |
58 |
58 |
59 if (type == VEH_TRAIN) { |
59 if (type == VEH_TRAIN) { |
60 const RailVehicleInfo *rvi = RailVehInfo(artic_engine); |
60 const RailVehicleInfo *rvi = RailVehInfo(artic_engine); |
76 |
76 |
77 if (!HasBit(EngInfo(v->engine_type)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) return; |
77 if (!HasBit(EngInfo(v->engine_type)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) return; |
78 |
78 |
79 for (uint i = 1; i < MAX_UVALUE(EngineID); i++) { |
79 for (uint i = 1; i < MAX_UVALUE(EngineID); i++) { |
80 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, v->engine_type, v); |
80 uint16 callback = GetVehicleCallback(CBID_VEHICLE_ARTIC_ENGINE, i, 0, v->engine_type, v); |
81 if (callback == CALLBACK_FAILED || callback == 0xFF) return; |
81 if (callback == CALLBACK_FAILED || GB(callback, 0, 8) == 0xFF) return; |
82 |
82 |
83 /* Attempt to use pre-allocated vehicles until they run out. This can happen |
83 /* Attempt to use pre-allocated vehicles until they run out. This can happen |
84 * if the callback returns different values depending on the cargo type. */ |
84 * if the callback returns different values depending on the cargo type. */ |
85 u->SetNext(vl[i]); |
85 u->SetNext(vl[i]); |
86 if (u->Next() == NULL) return; |
86 if (u->Next() == NULL) return; |