20 #include "table/strings.h"
36 assert(front == NULL || front->engine_type == front_type);
43 if (front_engine->
GetGRF()->grf_version < 8) {
45 callback =
GB(callback, 0, 8);
47 if (mirrored != NULL) *mirrored =
HasBit(callback, 7);
48 callback =
GB(callback, 0, 7);
52 if (mirrored != NULL) *mirrored =
HasBit(callback, 14);
53 callback =
GB(callback, 0, 14);
84 if (!purchase_window) {
111 if (cargo_type != NULL) *cargo_type = cargo;
127 uint32 cargoes = e->info.refit_mask;
129 if (include_initial_cargo_type) {
148 if (cargo_type <
NUM_CARGO) capacity[cargo_type] = cargo_capacity;
159 if (cargo_type <
NUM_CARGO) capacity[cargo_type] += cargo_capacity;
181 if (cargo_type < NUM_CARGO && cargo_capacity > 0) {
182 (*cargoes)[cargo_type] += cargo_capacity;
193 if (cargo_type < NUM_CARGO && cargo_capacity > 0) {
194 (*cargoes)[cargo_type] += cargo_capacity;
235 *union_mask = veh_cargoes;
236 *intersection_mask = (veh_cargoes != 0) ? veh_cargoes : UINT32_MAX;
246 *union_mask |= veh_cargoes;
247 if (veh_cargoes != 0) *intersection_mask &= veh_cargoes;
259 uint32 union_mask, intersection_mask;
272 uint32 union_mask, intersection_mask;
274 return intersection_mask;
293 if (cargo_type != NULL) *cargo_type =
CT_INVALID;
301 if (cargo_type != NULL) *cargo_type = first_cargo;
317 uint32 purchase_refit_union, purchase_refit_intersection;
321 uint32 real_refit_union = 0;
322 uint32 real_refit_intersection = UINT_MAX;
327 real_refit_union |= refit_mask;
328 if (refit_mask != 0) real_refit_intersection &= refit_mask;
337 bool carries_more =
false;
339 if (real_default_capacity[cid] != 0 && purchase_default_capacity[cid] == 0) {
346 if (real_refit_union != purchase_refit_union || real_refit_intersection != purchase_refit_intersection || carries_more) {
375 default: NOT_REACHED();
384 t->track = front->track;
385 t->railtype = front->railtype;
387 t->
spritenum = e_artic->u.rail.image_index;
411 rv->roadtype = front->roadtype;
412 rv->compatible_roadtypes = front->compatible_roadtypes;
414 rv->
spritenum = e_artic->u.road.image_index;
417 rv->
cargo_cap = e_artic->u.road.capacity;