equal
deleted
inserted
replaced
369 STR_ENGINE_SORT_CARGO_CAPACITY, |
369 STR_ENGINE_SORT_CARGO_CAPACITY, |
370 INVALID_STRING_ID |
370 INVALID_STRING_ID |
371 }}; |
371 }}; |
372 |
372 |
373 /* Draw rail wagon specific details */ |
373 /* Draw rail wagon specific details */ |
374 static int DrawVehiclePurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi) |
374 static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi) |
375 { |
375 { |
376 /* Purchase cost */ |
376 /* Purchase cost */ |
377 SetDParam(0, (rvi->base_cost * _price.build_railwagon) >> 8); |
377 SetDParam(0, (rvi->base_cost * _price.build_railwagon) >> 8); |
378 DrawString(x, y, STR_PURCHASE_INFO_COST, 0); |
378 DrawString(x, y, STR_PURCHASE_INFO_COST, 0); |
379 y += 10; |
379 y += 10; |
392 } |
392 } |
393 return y; |
393 return y; |
394 } |
394 } |
395 |
395 |
396 /* Draw locomotive specific details */ |
396 /* Draw locomotive specific details */ |
397 static int DrawVehiclePurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi, const Engine *e) |
397 static int DrawRailEnginePurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi, const Engine *e) |
398 { |
398 { |
399 int multihead = (rvi->flags&RVI_MULTIHEAD?1:0); |
399 int multihead = (rvi->flags&RVI_MULTIHEAD?1:0); |
400 |
400 |
401 /* Purchase Cost - Engine weight */ |
401 /* Purchase Cost - Engine weight */ |
402 SetDParam(0, rvi->base_cost * (_price.build_railvehicle >> 3) >> 5); |
402 SetDParam(0, rvi->base_cost * (_price.build_railvehicle >> 3) >> 5); |
432 |
432 |
433 return y; |
433 return y; |
434 } |
434 } |
435 |
435 |
436 /* Draw road vehicle specific details */ |
436 /* Draw road vehicle specific details */ |
437 static int DrawVehiclePurchaseInfo(int x, int y, EngineID engine_number, const RoadVehicleInfo *rvi) |
437 static int DrawRoadVehPurchaseInfo(int x, int y, EngineID engine_number, const RoadVehicleInfo *rvi) |
438 { |
438 { |
439 bool refittable = (_engine_info[engine_number].refit_mask != 0); |
439 bool refittable = (_engine_info[engine_number].refit_mask != 0); |
440 |
440 |
441 /* Purchase cost - Max speed */ |
441 /* Purchase cost - Max speed */ |
442 SetDParam(0, rvi->base_cost * (_price.roadveh_base>>3)>>5); |
442 SetDParam(0, rvi->base_cost * (_price.roadveh_base>>3)>>5); |
458 |
458 |
459 return y; |
459 return y; |
460 } |
460 } |
461 |
461 |
462 /* Draw ship specific details */ |
462 /* Draw ship specific details */ |
463 static int DrawVehiclePurchaseInfo(int x, int y, EngineID engine_number, const ShipVehicleInfo *svi) |
463 static int DrawShipPurchaseInfo(int x, int y, EngineID engine_number, const ShipVehicleInfo *svi) |
464 { |
464 { |
465 /* Purchase cost - Max speed */ |
465 /* Purchase cost - Max speed */ |
466 SetDParam(0, svi->base_cost * (_price.ship_base>>3)>>5); |
466 SetDParam(0, svi->base_cost * (_price.ship_base>>3)>>5); |
467 SetDParam(1, svi->max_speed / 2); |
467 SetDParam(1, svi->max_speed / 2); |
468 DrawString(x,y, STR_PURCHASE_INFO_COST_SPEED, 0); |
468 DrawString(x,y, STR_PURCHASE_INFO_COST_SPEED, 0); |
482 |
482 |
483 return y; |
483 return y; |
484 } |
484 } |
485 |
485 |
486 /* Draw aircraft specific details */ |
486 /* Draw aircraft specific details */ |
487 static int DrawVehiclePurchaseInfo(int x, int y, EngineID engine_number, const AircraftVehicleInfo *avi) |
487 static int DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number, const AircraftVehicleInfo *avi) |
488 { |
488 { |
489 CargoID cargo; |
489 CargoID cargo; |
490 |
490 |
491 /* Purchase cost - Max speed */ |
491 /* Purchase cost - Max speed */ |
492 SetDParam(0, avi->base_cost * (_price.aircraft_base>>3)>>5); |
492 SetDParam(0, avi->base_cost * (_price.aircraft_base>>3)>>5); |
534 switch (e->type) { |
534 switch (e->type) { |
535 case VEH_Train: { |
535 case VEH_Train: { |
536 const RailVehicleInfo *rvi = RailVehInfo(engine_number); |
536 const RailVehicleInfo *rvi = RailVehInfo(engine_number); |
537 |
537 |
538 if (rvi->flags & RVI_WAGON) { |
538 if (rvi->flags & RVI_WAGON) { |
539 y = DrawVehiclePurchaseInfo(x, y, engine_number, rvi); |
539 y = DrawRailWagonPurchaseInfo(x, y, engine_number, rvi); |
540 refitable = true; |
540 refitable = true; |
541 } else { |
541 } else { |
542 y = DrawVehiclePurchaseInfo(x, y, engine_number, rvi, e); |
542 y = DrawRailEnginePurchaseInfo(x, y, engine_number, rvi, e); |
543 refitable = (rvi->capacity > 0); |
543 refitable = (rvi->capacity > 0); |
544 } |
544 } |
545 |
545 |
546 /* Cargo type + capacity, or N/A */ |
546 /* Cargo type + capacity, or N/A */ |
547 if (rvi->capacity == 0) { |
547 if (rvi->capacity == 0) { |
558 DrawString(x,y, STR_PURCHASE_INFO_CAPACITY, 0); |
558 DrawString(x,y, STR_PURCHASE_INFO_CAPACITY, 0); |
559 y += 10; |
559 y += 10; |
560 } |
560 } |
561 break; |
561 break; |
562 case VEH_Road: |
562 case VEH_Road: |
563 y = DrawVehiclePurchaseInfo(x, y, engine_number, RoadVehInfo(engine_number)); |
563 y = DrawRoadVehPurchaseInfo(x, y, engine_number, RoadVehInfo(engine_number)); |
564 refitable = true; |
564 refitable = true; |
565 break; |
565 break; |
566 case VEH_Ship: { |
566 case VEH_Ship: { |
567 const ShipVehicleInfo *svi = ShipVehInfo(engine_number); |
567 const ShipVehicleInfo *svi = ShipVehInfo(engine_number); |
568 y = DrawVehiclePurchaseInfo(x, y, engine_number, svi); |
568 y = DrawShipPurchaseInfo(x, y, engine_number, svi); |
569 refitable = svi->refittable; |
569 refitable = svi->refittable; |
570 } break; |
570 } break; |
571 case VEH_Aircraft: |
571 case VEH_Aircraft: |
572 y = DrawVehiclePurchaseInfo(x, y, engine_number, AircraftVehInfo(engine_number)); |
572 y = DrawAircraftPurchaseInfo(x, y, engine_number, AircraftVehInfo(engine_number)); |
573 refitable = true; |
573 refitable = true; |
574 break; |
574 break; |
575 } |
575 } |
576 |
576 |
577 /* Draw details, that applies to all types except rail wagons */ |
577 /* Draw details, that applies to all types except rail wagons */ |