Changeset - r10927:eb69eaf0227d
[Not reviewed]
master
0 11 0
glx - 15 years ago 2009-01-25 00:57:03
glx@openttd.org
(svn r15263) -Codechange: added Engine::GetCost() to remove some code duplication.
11 files changed with 100 insertions and 131 deletions:
0 comments (0 inline, 0 general)
bin/ai/regression/regression.txt
Show inline comments
 
@@ -1529,7 +1529,7 @@
 
    GetCapacity():      40
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         795
 
    GetPrice():         79
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1544,7 +1544,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         733
 
    GetPrice():         73
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1559,7 +1559,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         566
 
    GetPrice():         56
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1574,7 +1574,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         643
 
    GetPrice():         64
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1589,7 +1589,7 @@
 
    GetCapacity():      25
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         618
 
    GetPrice():         61
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1604,7 +1604,7 @@
 
    GetCapacity():      25
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         611
 
    GetPrice():         60
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1619,7 +1619,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         585
 
    GetPrice():         58
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1634,7 +1634,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         582
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1649,7 +1649,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         576
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1664,7 +1664,7 @@
 
    GetCapacity():      20
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         630
 
    GetPrice():         62
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1679,7 +1679,7 @@
 
    GetCapacity():      20
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         820
 
    GetPrice():         81
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1979,7 +1979,7 @@
 
    GetCapacity():      45
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         795
 
    GetPrice():         79
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -1994,7 +1994,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         733
 
    GetPrice():         73
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2009,7 +2009,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         566
 
    GetPrice():         56
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2024,7 +2024,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         643
 
    GetPrice():         64
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2039,7 +2039,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         618
 
    GetPrice():         61
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2054,7 +2054,7 @@
 
    GetCapacity():      30
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         611
 
    GetPrice():         60
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2069,7 +2069,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         585
 
    GetPrice():         58
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2084,7 +2084,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         582
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2099,7 +2099,7 @@
 
    GetCapacity():      35
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         576
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2114,7 +2114,7 @@
 
    GetCapacity():      25
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         630
 
    GetPrice():         62
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2129,7 +2129,7 @@
 
    GetCapacity():      25
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         820
 
    GetPrice():         81
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2459,7 +2459,7 @@
 
    GetCapacity():      47
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         795
 
    GetPrice():         79
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2474,7 +2474,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         733
 
    GetPrice():         73
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2489,7 +2489,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         566
 
    GetPrice():         56
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2504,7 +2504,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         643
 
    GetPrice():         64
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2519,7 +2519,7 @@
 
    GetCapacity():      32
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         618
 
    GetPrice():         61
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2534,7 +2534,7 @@
 
    GetCapacity():      32
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         611
 
    GetPrice():         60
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2549,7 +2549,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         585
 
    GetPrice():         58
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2564,7 +2564,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         582
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2579,7 +2579,7 @@
 
    GetCapacity():      37
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         576
 
    GetPrice():         57
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2594,7 +2594,7 @@
 
    GetCapacity():      27
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         630
 
    GetPrice():         62
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
 
@@ -2609,7 +2609,7 @@
 
    GetCapacity():      27
 
    GetReliability():   0
 
    GetMaxSpeed():      0
 
    GetPrice():         820
 
    GetPrice():         81
 
    GetMaxAge():        7320
 
    GetRunningCost():   0
 
    GetVehicleType():   0
src/ai/api/ai_engine.cpp
Show inline comments
 
@@ -157,29 +157,7 @@
 
{
 
	if (!IsValidEngine(engine_id)) return -1;
 

	
 
	switch (::GetEngine(engine_id)->type) {
 
		case VEH_ROAD: {
 
			const RoadVehicleInfo *vi = ::RoadVehInfo(engine_id);
 
			return (_price.roadveh_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_TRAIN: {
 
			const RailVehicleInfo *vi = ::RailVehInfo(engine_id);
 
			return (_price.build_railvehicle >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_SHIP: {
 
			const ShipVehicleInfo *vi = ::ShipVehInfo(engine_id);
 
			return (_price.ship_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_AIRCRAFT: {
 
			const AircraftVehicleInfo *vi = ::AircraftVehInfo(engine_id);
 
			return (_price.aircraft_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		default: NOT_REACHED();
 
	}
 
	return ::GetEngine(engine_id)->GetCost();
 
}
 

	
 
/* static */ int32 AIEngine::GetMaxAge(EngineID engine_id)
src/ai/api/ai_event_types.cpp
Show inline comments
 
@@ -113,29 +113,7 @@ int32 AIEventEnginePreview::GetMaxSpeed(
 

	
 
Money AIEventEnginePreview::GetPrice()
 
{
 
	switch (::GetEngine(engine)->type) {
 
		case VEH_ROAD: {
 
			const RoadVehicleInfo *vi = ::RoadVehInfo(engine);
 
			return (_price.roadveh_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_TRAIN: {
 
			const RailVehicleInfo *vi = ::RailVehInfo(engine);
 
			return (_price.build_railvehicle >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_SHIP: {
 
			const ShipVehicleInfo *vi = ::ShipVehInfo(engine);
 
			return (_price.ship_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		case VEH_AIRCRAFT: {
 
			const AircraftVehicleInfo *vi = ::AircraftVehInfo(engine);
 
			return (_price.aircraft_base >> 3) * vi->cost_factor >> 5;
 
		} break;
 

	
 
		default: NOT_REACHED();
 
	}
 
	return ::GetEngine(engine)->GetCost();
 
}
 

	
 
Money AIEventEnginePreview::GetRunningCost()
src/aircraft_cmd.cpp
Show inline comments
 
@@ -223,12 +223,6 @@ void GetAircraftSpriteSize(EngineID engi
 
	height = spr->height;
 
}
 

	
 
static CommandCost EstimateAircraftCost(EngineID engine, const AircraftVehicleInfo *avi)
 
{
 
	return CommandCost(EXPENSES_NEW_VEHICLES, GetEngineProperty(engine, 0x0B, avi->cost_factor) * (_price.aircraft_base >> 3) >> 5);
 
}
 

	
 

	
 
/**
 
 * Calculates cargo capacity based on an aircraft's passenger
 
 * and mail capacities.
 
@@ -266,7 +260,8 @@ CommandCost CmdBuildAircraft(TileIndex t
 
	if (!IsEngineBuildable(p1, VEH_AIRCRAFT, _current_company)) return_cmd_error(STR_AIRCRAFT_NOT_AVAILABLE);
 

	
 
	const AircraftVehicleInfo *avi = AircraftVehInfo(p1);
 
	CommandCost value = EstimateAircraftCost(p1, avi);
 
	const Engine *e = GetEngine(p1);
 
	CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
 

	
 
	/* to just query the cost, it is not neccessary to have a valid tile (automation/AI) */
 
	if (flags & DC_QUERY_COST) return value;
 
@@ -374,7 +369,6 @@ CommandCost CmdBuildAircraft(TileIndex t
 
			u->cargo_cap = 0;
 
		}
 

	
 
		const Engine *e = GetEngine(p1);
 
		v->reliability = e->reliability;
 
		v->reliability_spd_dec = e->reliability_spd_dec;
 
		v->max_age = e->lifelength * DAYS_IN_LEAP_YEAR;
src/build_vehicle_gui.cpp
Show inline comments
 
@@ -482,8 +482,10 @@ static int DrawCargoCapacityInfo(int x, 
 
/* Draw rail wagon specific details */
 
static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const RailVehicleInfo *rvi)
 
{
 
	const Engine *e = GetEngine(engine_number);
 

	
 
	/* Purchase cost */
 
	SetDParam(0, (GetEngineProperty(engine_number, 0x17, rvi->cost_factor) * _price.build_railwagon) >> 8);
 
	SetDParam(0, e->GetCost());
 
	DrawString(x, y, STR_PURCHASE_INFO_COST, TC_FROMSTRING);
 
	y += 10;
 

	
 
@@ -506,7 +508,7 @@ static int DrawRailWagonPurchaseInfo(int
 

	
 
	/* Running cost */
 
	if (rvi->running_cost_class != 0xFF) {
 
		SetDParam(0, GetEngine(engine_number)->GetRunningCost());
 
		SetDParam(0, e->GetRunningCost());
 
		DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, TC_FROMSTRING);
 
		y += 10;
 
	}
 
@@ -519,9 +521,10 @@ static int DrawRailEnginePurchaseInfo(in
 
{
 
	int multihead = (rvi->railveh_type == RAILVEH_MULTIHEAD ? 1 : 0);
 
	uint weight = GetEngineProperty(engine_number, 0x16, rvi->weight);
 
	const Engine *e = GetEngine(engine_number);
 

	
 
	/* Purchase Cost - Engine weight */
 
	SetDParam(0, GetEngineProperty(engine_number, 0x17, rvi->cost_factor) * (_price.build_railvehicle >> 3) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, weight << multihead);
 
	DrawString(x, y, STR_PURCHASE_INFO_COST_WEIGHT, TC_FROMSTRING);
 
	y += 10;
 
@@ -541,7 +544,7 @@ static int DrawRailEnginePurchaseInfo(in
 

	
 
	/* Running cost */
 
	if (rvi->running_cost_class != 0xFF) {
 
		SetDParam(0, GetEngine(engine_number)->GetRunningCost());
 
		SetDParam(0, e->GetRunningCost());
 
		DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, TC_FROMSTRING);
 
		y += 10;
 
	}
 
@@ -560,14 +563,16 @@ static int DrawRailEnginePurchaseInfo(in
 
/* Draw road vehicle specific details */
 
static int DrawRoadVehPurchaseInfo(int x, int y, EngineID engine_number, const RoadVehicleInfo *rvi)
 
{
 
	const Engine *e = GetEngine(engine_number);
 

	
 
	/* Purchase cost - Max speed */
 
	SetDParam(0, GetEngineProperty(engine_number, 0x11, rvi->cost_factor) * (_price.roadveh_base >> 3) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, rvi->max_speed * 10 / 32);
 
	DrawString(x, y, STR_PURCHASE_INFO_COST_SPEED, TC_FROMSTRING);
 
	y += 10;
 

	
 
	/* Running cost */
 
	SetDParam(0, GetEngine(engine_number)->GetRunningCost());
 
	SetDParam(0, e->GetRunningCost());
 
	DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, TC_FROMSTRING);
 
	y += 10;
 

	
 
@@ -578,8 +583,10 @@ static int DrawRoadVehPurchaseInfo(int x
 
/* Draw ship specific details */
 
static int DrawShipPurchaseInfo(int x, int y, EngineID engine_number, const ShipVehicleInfo *svi)
 
{
 
	const Engine *e = GetEngine(engine_number);
 

	
 
	/* Purchase cost - Max speed */
 
	SetDParam(0, GetEngineProperty(engine_number, 0x0A, svi->cost_factor) * (_price.ship_base >> 3) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, GetEngineProperty(engine_number, 0x0B, svi->max_speed) * 10 / 32);
 
	DrawString(x, y, STR_PURCHASE_INFO_COST_SPEED, TC_FROMSTRING);
 
	y += 10;
 
@@ -592,7 +599,7 @@ static int DrawShipPurchaseInfo(int x, i
 
	y += 10;
 

	
 
	/* Running cost */
 
	SetDParam(0, GetEngine(engine_number)->GetRunningCost());
 
	SetDParam(0, e->GetRunningCost());
 
	DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, TC_FROMSTRING);
 
	y += 10;
 

	
 
@@ -603,9 +610,10 @@ static int DrawShipPurchaseInfo(int x, i
 
static int DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number, const AircraftVehicleInfo *avi)
 
{
 
	CargoID cargo;
 
	const Engine *e = GetEngine(engine_number);
 

	
 
	/* Purchase cost - Max speed */
 
	SetDParam(0, GetEngineProperty(engine_number, 0x0B, avi->cost_factor) * (_price.aircraft_base >> 3) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, avi->max_speed * 10 / 16);
 
	DrawString(x, y, STR_PURCHASE_INFO_COST_SPEED, TC_FROMSTRING);
 
	y += 10;
 
@@ -627,7 +635,7 @@ static int DrawAircraftPurchaseInfo(int 
 
	y += 10;
 

	
 
	/* Running cost */
 
	SetDParam(0, GetEngine(engine_number)->GetRunningCost());
 
	SetDParam(0, e->GetRunningCost());
 
	DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, TC_FROMSTRING);
 
	y += 10;
 

	
src/engine.cpp
Show inline comments
 
@@ -137,6 +137,28 @@ Money Engine::GetRunningCost() const
 
	}
 
}
 

	
 
Money Engine::GetCost() const
 
{
 
	switch (this->type) {
 
		case VEH_ROAD:
 
			return GetEngineProperty(this->index, 0x11, this->u.road.cost_factor) * (_price.roadveh_base >> 3) >> 5;
 

	
 
		case VEH_TRAIN:
 
			if (this->u.rail.railveh_type == RAILVEH_WAGON) {
 
				return (GetEngineProperty(this->index, 0x17, this->u.rail.cost_factor) * _price.build_railwagon) >> 8;
 
			} else {
 
				return GetEngineProperty(this->index, 0x17, this->u.rail.cost_factor) * (_price.build_railvehicle >> 3) >> 5;
 
			}
 
		case VEH_SHIP:
 
			return GetEngineProperty(this->index, 0x0A, this->u.ship.cost_factor) * (_price.ship_base >> 3) >> 5;
 

	
 
		case VEH_AIRCRAFT:
 
			return GetEngineProperty(this->index, 0x0B, this->u.air.cost_factor) * (_price.aircraft_base >> 3) >> 5;
 

	
 
		default: NOT_REACHED();
 
	}
 
}
 

	
 
/** Sets cached values in Company::num_vehicles and Group::num_vehicles
 
 */
 
void SetCachedEngineCounts()
src/engine_base.h
Show inline comments
 
@@ -51,6 +51,7 @@ struct Engine : PoolItem<Engine, EngineI
 
	inline bool IsValid() const { return this->info.climates != 0; }
 

	
 
	Money GetRunningCost() const;
 
	Money GetCost() const;
 
};
 

	
 
static inline bool IsEngineIndex(uint index)
src/engine_gui.cpp
Show inline comments
 
@@ -129,13 +129,14 @@ static void DrawTrainEngineInfo(EngineID
 
{
 
	const RailVehicleInfo *rvi = RailVehInfo(engine);
 
	int multihead = (rvi->railveh_type == RAILVEH_MULTIHEAD) ? 1 : 0;
 
	const Engine *e = GetEngine(engine);
 

	
 
	SetDParam(0, (_price.build_railvehicle >> 3) * GetEngineProperty(engine, 0x17, rvi->cost_factor) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(2, GetEngineProperty(engine, 0x09, rvi->max_speed) * 10 / 16);
 
	SetDParam(3, GetEngineProperty(engine, 0x0B, rvi->power));
 
	SetDParam(1, GetEngineProperty(engine, 0x16, rvi->weight) << multihead);
 

	
 
	SetDParam(4, GetEngine(engine)->GetRunningCost());
 
	SetDParam(4, e->GetRunningCost());
 

	
 
	uint capacity = GetTotalCapacityOfArticulatedParts(engine, VEH_TRAIN);
 
	if (capacity != 0) {
 
@@ -150,11 +151,13 @@ static void DrawTrainEngineInfo(EngineID
 
static void DrawAircraftEngineInfo(EngineID engine, int x, int y, int maxw)
 
{
 
	const AircraftVehicleInfo *avi = AircraftVehInfo(engine);
 
	SetDParam(0, (_price.aircraft_base >> 3) * GetEngineProperty(engine, 0x0B, avi->cost_factor) >> 5);
 
	const Engine *e = GetEngine(engine);
 

	
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, avi->max_speed * 10 / 16);
 
	SetDParam(2, avi->passenger_capacity);
 
	SetDParam(3, avi->mail_capacity);
 
	SetDParam(4, GetEngine(engine)->GetRunningCost());
 
	SetDParam(4, e->GetRunningCost());
 

	
 
	DrawStringMultiCenter(x, y, STR_A02E_COST_MAX_SPEED_CAPACITY, maxw);
 
}
 
@@ -162,10 +165,11 @@ static void DrawAircraftEngineInfo(Engin
 
static void DrawRoadVehEngineInfo(EngineID engine, int x, int y, int maxw)
 
{
 
	const RoadVehicleInfo *rvi = RoadVehInfo(engine);
 
	const Engine *e = GetEngine(engine);
 

	
 
	SetDParam(0, (_price.roadveh_base >> 3) * GetEngineProperty(engine, 0x11, rvi->cost_factor) >> 5);
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, rvi->max_speed * 10 / 32);
 
	SetDParam(2, GetEngine(engine)->GetRunningCost());
 
	SetDParam(2, e->GetRunningCost());
 
	SetDParam(3, rvi->cargo_type);
 
	SetDParam(4, GetTotalCapacityOfArticulatedParts(engine, VEH_ROAD));
 

	
 
@@ -175,11 +179,13 @@ static void DrawRoadVehEngineInfo(Engine
 
static void DrawShipEngineInfo(EngineID engine, int x, int y, int maxw)
 
{
 
	const ShipVehicleInfo *svi = ShipVehInfo(engine);
 
	SetDParam(0, GetEngineProperty(engine, 0x0A, svi->cost_factor) * (_price.ship_base >> 3) >> 5);
 
	const Engine *e = GetEngine(engine);
 

	
 
	SetDParam(0, e->GetCost());
 
	SetDParam(1, GetEngineProperty(engine, 0x0B, svi->max_speed) * 10 / 32);
 
	SetDParam(2, svi->cargo_type);
 
	SetDParam(3, GetEngineProperty(engine, 0x0D, svi->capacity));
 
	SetDParam(4, GetEngine(engine)->GetRunningCost());
 
	SetDParam(4, e->GetRunningCost());
 
	DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
 
}
 

	
src/roadveh_cmd.cpp
Show inline comments
 
@@ -134,11 +134,6 @@ void DrawRoadVehEngine(int x, int y, Eng
 
	DrawSprite(GetRoadVehIcon(engine), pal, x, y);
 
}
 

	
 
static CommandCost EstimateRoadVehCost(EngineID engine_type)
 
{
 
	return CommandCost(EXPENSES_NEW_VEHICLES, ((_price.roadveh_base >> 3) * GetEngineProperty(engine_type, 0x11, RoadVehInfo(engine_type)->cost_factor)) >> 5);
 
}
 

	
 
byte GetRoadVehLength(const Vehicle *v)
 
{
 
	byte length = 8;
 
@@ -176,14 +171,13 @@ void RoadVehUpdateCache(Vehicle *v)
 
 */
 
CommandCost CmdBuildRoadVeh(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, const char *text)
 
{
 
	CommandCost cost;
 
	Vehicle *v;
 
	UnitID unit_num;
 
	Engine *e;
 

	
 
	if (!IsEngineBuildable(p1, VEH_ROAD, _current_company)) return_cmd_error(STR_ROAD_VEHICLE_NOT_AVAILABLE);
 

	
 
	cost = EstimateRoadVehCost(p1);
 
	const Engine *e = GetEngine(p1);
 
	CommandCost cost(EXPENSES_NEW_VEHICLES, e->GetCost());
 
	if (flags & DC_QUERY_COST) return cost;
 

	
 
	/* The ai_new queries the vehicle cost before building the route,
 
@@ -251,7 +245,6 @@ CommandCost CmdBuildRoadVeh(TileIndex ti
 
		v->max_speed = rvi->max_speed;
 
		v->engine_type = (EngineID)p1;
 

	
 
		e = GetEngine(p1);
 
		v->reliability = e->reliability;
 
		v->reliability_spd_dec = e->reliability_spd_dec;
 
		v->max_age = e->lifelength * DAYS_IN_LEAP_YEAR;
src/ship_cmd.cpp
Show inline comments
 
@@ -341,11 +341,6 @@ static bool ShipAccelerate(Vehicle *v)
 
	return (t < v->progress);
 
}
 

	
 
static CommandCost EstimateShipCost(EngineID engine_type)
 
{
 
	return CommandCost(EXPENSES_NEW_VEHICLES, GetEngineProperty(engine_type, 0x0A, ShipVehInfo(engine_type)->cost_factor) * (_price.ship_base >> 3) >> 5);
 
}
 

	
 
static void ShipArrivesAt(const Vehicle *v, Station *st)
 
{
 
	/* Check if station was ever visited before */
 
@@ -746,13 +741,13 @@ void Ship::Tick()
 
 */
 
CommandCost CmdBuildShip(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, const char *text)
 
{
 
	CommandCost value;
 
	UnitID unit_num;
 
	Engine *e;
 

	
 
	if (!IsEngineBuildable(p1, VEH_SHIP, _current_company)) return_cmd_error(STR_SHIP_NOT_AVAILABLE);
 

	
 
	value = EstimateShipCost(p1);
 
	const Engine *e = GetEngine(p1);
 
	CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
 

	
 
	if (flags & DC_QUERY_COST) return value;
 

	
 
	/* The ai_new queries the vehicle cost before building the route,
 
@@ -797,7 +792,6 @@ CommandCost CmdBuildShip(TileIndex tile,
 
		v->max_speed = svi->max_speed;
 
		v->engine_type = p1;
 

	
 
		e = GetEngine(p1);
 
		v->reliability = e->reliability;
 
		v->reliability_spd_dec = e->reliability_spd_dec;
 
		v->max_age = e->lifelength * DAYS_IN_LEAP_YEAR;
src/train_cmd.cpp
Show inline comments
 
@@ -605,7 +605,7 @@ void DrawTrainEngine(int x, int y, Engin
 
static CommandCost CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags)
 
{
 
	const RailVehicleInfo *rvi = RailVehInfo(engine);
 
	CommandCost value(EXPENSES_NEW_VEHICLES, (GetEngineProperty(engine, 0x17, rvi->cost_factor) * _price.build_railwagon) >> 8);
 
	CommandCost value(EXPENSES_NEW_VEHICLES, GetEngine(engine)->GetCost());
 

	
 
	uint num_vehicles = 1 + CountArticulatedParts(engine, false);
 

	
 
@@ -713,11 +713,6 @@ static void NormalizeTrainVehInDepot(con
 
	}
 
}
 

	
 
static CommandCost EstimateTrainCost(EngineID engine, const RailVehicleInfo *rvi)
 
{
 
	return CommandCost(EXPENSES_NEW_VEHICLES, GetEngineProperty(engine, 0x17, rvi->cost_factor) * (_price.build_railvehicle >> 3) >> 5);
 
}
 

	
 
static void AddRearEngineToMultiheadedTrain(Vehicle *v, Vehicle *u, bool building)
 
{
 
	u = new (u) Train();
 
@@ -768,7 +763,8 @@ CommandCost CmdBuildRailVehicle(TileInde
 

	
 
	if (rvi->railveh_type == RAILVEH_WAGON) return CmdBuildRailWagon(p1, tile, flags);
 

	
 
	CommandCost value = EstimateTrainCost(p1, rvi);
 
	const Engine *e = GetEngine(p1);
 
	CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
 

	
 
	uint num_vehicles =
 
		(rvi->railveh_type == RAILVEH_MULTIHEAD ? 2 : 1) +
 
@@ -820,7 +816,6 @@ CommandCost CmdBuildRailVehicle(TileInde
 

	
 
			v->engine_type = p1;
 

	
 
			const Engine *e = GetEngine(p1);
 
			v->reliability = e->reliability;
 
			v->reliability_spd_dec = e->reliability_spd_dec;
 
			v->max_age = e->lifelength * DAYS_IN_LEAP_YEAR;
0 comments (0 inline, 0 general)