Changeset - r13482:56711f143646
[Not reviewed]
master
0 6 0
frosch - 15 years ago 2009-11-08 13:02:05
frosch@openttd.org
(svn r18011) -Feature(ette): [NewGRF] CB 36 for roadvehicle property 09 'running cost factor'.
6 files changed with 23 insertions and 12 deletions:
0 comments (0 inline, 0 general)
src/engine.cpp
Show inline comments
 
@@ -205,11 +205,15 @@ uint Engine::GetDisplayDefaultCapacity(u
 
Money Engine::GetRunningCost() const
 
{
 
	switch (this->type) {
 
		case VEH_ROAD:
 
			return this->u.road.running_cost * GetPriceByIndex(this->u.road.running_cost_class) >> 8;
 
		case VEH_ROAD: {
 
			if (this->u.road.running_cost_class == INVALID_PRICE) return 0;
 
			return GetEngineProperty(this->index, PROP_ROADVEH_RUNNING_COST_FACTOR, this->u.road.running_cost) * GetPriceByIndex(this->u.road.running_cost_class) >> 8;
 
		}
 

	
 
		case VEH_TRAIN:
 
		case VEH_TRAIN: {
 
			if (this->u.rail.running_cost_class == INVALID_PRICE) return 0;
 
			return GetEngineProperty(this->index, PROP_TRAIN_RUNNING_COST_FACTOR, this->u.rail.running_cost) * GetPriceByIndex(this->u.rail.running_cost_class) >> 8;
 
		}
 

	
 
		case VEH_SHIP:
 
			return GetEngineProperty(this->index, PROP_SHIP_RUNNING_COST_FACTOR, this->u.ship.running_cost) * _price[PR_RUNNING_SHIP] >> 8;
 
@@ -233,6 +237,7 @@ Money Engine::GetCost() const
 
			} else {
 
				return GetEngineProperty(this->index, PROP_TRAIN_COST_FACTOR, this->u.rail.cost_factor) * (_price[PR_BUILD_VEHICLE_TRAIN] >> 3) >> 5;
 
			}
 

	
 
		case VEH_SHIP:
 
			return GetEngineProperty(this->index, PROP_SHIP_COST_FACTOR, this->u.ship.cost_factor) * (_price[PR_BUILD_VEHICLE_SHIP] >> 3) >> 5;
 

	
src/newgrf.cpp
Show inline comments
 
@@ -752,7 +752,7 @@ static ChangeInfoResult RoadVehicleChang
 
				rvi->max_speed = grf_load_byte(&buf);
 
				break;
 

	
 
			case 0x09: // Running cost factor
 
			case PROP_ROADVEH_RUNNING_COST_FACTOR: // 0x09 Running cost factor
 
				rvi->running_cost = grf_load_byte(&buf);
 
				break;
 

	
src/newgrf_properties.h
Show inline comments
 
@@ -27,6 +27,7 @@ enum PropertyID {
 
	PROP_TRAIN_TRACTIVE_EFFORT                  = 0x1F, ///< Tractive effort coefficient in 1/256
 
	PROP_TRAIN_USER_DATA                        = 0x25, ///< User defined data for vehicle variable 0x42
 

	
 
	PROP_ROADVEH_RUNNING_COST_FACTOR            = 0x09, ///< Yearly runningcost
 
	PROP_ROADVEH_CARGO_CAPACITY                 = 0x0F, ///< Capacity
 
	PROP_ROADVEH_COST_FACTOR                    = 0x11, ///< Purchase cost
 

	
src/roadveh.h
Show inline comments
 
@@ -121,13 +121,7 @@ struct RoadVehicle : public SpecializedV
 
	SpriteID GetImage(Direction direction) const;
 
	int GetDisplaySpeed() const { return this->cur_speed / 2; }
 
	int GetDisplayMaxSpeed() const { return this->max_speed / 2; }
 

	
 
	Money GetRunningCost() const
 
	{
 
		const RoadVehicleInfo *rvi = RoadVehInfo(this->engine_type);
 
		return rvi->running_cost * GetPriceByIndex(rvi->running_cost_class);
 
	}
 

	
 
	Money GetRunningCost() const;
 
	int GetDisplayImageWidth(Point *offset = NULL) const;
 
	bool IsInDepot() const { return this->state == RVSB_IN_DEPOT; }
 
	bool IsStoppedInDepot() const;
src/roadveh_cmd.cpp
Show inline comments
 
@@ -1821,6 +1821,17 @@ static bool RoadVehController(RoadVehicl
 
	return true;
 
}
 

	
 
Money RoadVehicle::GetRunningCost() const
 
{
 
	const RoadVehicleInfo *rvi = RoadVehInfo(this->engine_type);
 
	if (rvi->running_cost_class == INVALID_PRICE) return 0;
 

	
 
	uint cost_factor = GetVehicleProperty(this, PROP_ROADVEH_RUNNING_COST_FACTOR, rvi->running_cost);
 
	if (cost_factor == 0) return 0;
 

	
 
	return cost_factor * GetPriceByIndex(rvi->running_cost_class);
 
}
 

	
 
bool RoadVehicle::Tick()
 
{
 
	if (this->IsRoadVehFront()) {
src/train_cmd.cpp
Show inline comments
 
@@ -4438,7 +4438,7 @@ Money Train::GetRunningCost() const
 
		const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 
		if (rvi->running_cost_class == INVALID_PRICE) continue;
 

	
 
		byte cost_factor = GetVehicleProperty(v, PROP_TRAIN_RUNNING_COST_FACTOR, rvi->running_cost);
 
		uint cost_factor = GetVehicleProperty(v, PROP_TRAIN_RUNNING_COST_FACTOR, rvi->running_cost);
 
		if (cost_factor == 0) continue;
 

	
 
		/* Halve running cost for multiheaded parts */
0 comments (0 inline, 0 general)