src/build_vehicle_gui.cpp
changeset 5817 0bd3e66ece83
parent 5816 ddd0bcff1cb2
child 5819 77fa0b7a6065
equal deleted inserted replaced
5816:ddd0bcff1cb2 5817:0bd3e66ece83
   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 */