Changeset - r18147:1f8d7928a7f1
[Not reviewed]
master
0 4 0
frosch - 13 years ago 2011-10-03 17:24:31
frosch@openttd.org
(svn r22982) -Cleanup: Remove CountCompanyVehicles() and use ALL_GROUP statistics instead.
4 files changed with 12 insertions and 28 deletions:
0 comments (0 inline, 0 general)
src/company_cmd.cpp
Show inline comments
 
@@ -610,15 +610,14 @@ void InitializeCompanies()
 
 */
 
bool MayCompanyTakeOver(CompanyID cbig, CompanyID csmall)
 
{
 
	uint big_counts[4], small_counts[4];
 
	CountCompanyVehicles(cbig,   big_counts);
 
	CountCompanyVehicles(csmall, small_counts);
 
	const Company *c1 = Company::Get(cbig);
 
	const Company *c2 = Company::Get(csmall);
 

	
 
	/* Do the combined vehicle counts stay within the limits? */
 
	return big_counts[VEH_TRAIN]     + small_counts[VEH_TRAIN]    <= _settings_game.vehicle.max_trains &&
 
		big_counts[VEH_ROAD]     + small_counts[VEH_ROAD]     <= _settings_game.vehicle.max_roadveh &&
 
		big_counts[VEH_SHIP]     + small_counts[VEH_SHIP]     <= _settings_game.vehicle.max_ships &&
 
		big_counts[VEH_AIRCRAFT] + small_counts[VEH_AIRCRAFT] <= _settings_game.vehicle.max_aircraft;
 
	return c1->group_all[VEH_TRAIN].num_vehicle + c2->group_all[VEH_TRAIN].num_vehicle <= _settings_game.vehicle.max_trains &&
 
		c1->group_all[VEH_ROAD].num_vehicle     + c2->group_all[VEH_ROAD].num_vehicle     <= _settings_game.vehicle.max_roadveh &&
 
		c1->group_all[VEH_SHIP].num_vehicle     + c2->group_all[VEH_SHIP].num_vehicle     <= _settings_game.vehicle.max_ships &&
 
		c1->group_all[VEH_AIRCRAFT].num_vehicle + c2->group_all[VEH_AIRCRAFT].num_vehicle <= _settings_game.vehicle.max_aircraft;
 
}
 

	
 
/**
src/company_gui.cpp
Show inline comments
 
@@ -1888,7 +1888,10 @@ struct CompanyWindow : Window
 

	
 
			case CW_WIDGET_DESC_VEHICLE_COUNTS: {
 
				uint amounts[4];
 
				CountCompanyVehicles((CompanyID)this->window_number, amounts);
 
				amounts[0] = c->group_all[VEH_TRAIN].num_vehicle;
 
				amounts[1] = c->group_all[VEH_ROAD].num_vehicle;
 
				amounts[2] = c->group_all[VEH_SHIP].num_vehicle;
 
				amounts[3] = c->group_all[VEH_AIRCRAFT].num_vehicle;
 

	
 
				int y = r.top;
 
				if (amounts[0] + amounts[1] + amounts[2] + amounts[3] == 0) {
src/vehicle.cpp
Show inline comments
 
@@ -600,21 +600,6 @@ uint CountVehiclesInChain(const Vehicle 
 
}
 

	
 
/**
 
 * Count the number of vehicles of a company.
 
 * @param c Company owning the vehicles.
 
 * @param [out] counts Array of counts. Contains the vehicle count ordered by type afterwards.
 
 */
 
void CountCompanyVehicles(CompanyID cid, uint counts[4])
 
{
 
	for (uint i = 0; i < 4; i++) counts[i] = 0;
 

	
 
	const Vehicle *v;
 
	FOR_ALL_VEHICLES(v) {
 
		if (v->owner == cid && v->IsPrimaryVehicle()) counts[v->type]++;
 
	}
 
}
 

	
 
/**
 
 * Check if a vehicle is counted in num_engines in each company struct
 
 * @return true if the vehicle is counted in num_engines
 
 */
 
@@ -1518,10 +1503,8 @@ UnitID GetFreeUnitNumber(VehicleType typ
 
		default: NOT_REACHED();
 
	}
 

	
 
	uint amounts[4];
 
	CountCompanyVehicles(_current_company, amounts);
 
	assert((uint)type < lengthof(amounts));
 
	if (amounts[type] >= max_veh) return UINT16_MAX; // Currently already at the limit, no room to make a new one.
 
	const Company *c = Company::Get(_current_company);
 
	if (c->group_all[type].num_vehicle >= max_veh) return UINT16_MAX; // Currently already at the limit, no room to make a new one.
 

	
 
	FreeUnitIDGenerator gen(type, _current_company);
 

	
src/vehicle_func.h
Show inline comments
 
@@ -30,7 +30,6 @@ typedef Vehicle *VehicleFromPosProc(Vehi
 

	
 
void VehicleServiceInDepot(Vehicle *v);
 
uint CountVehiclesInChain(const Vehicle *v);
 
void CountCompanyVehicles(CompanyID cid, uint counts[4]);
 
void FindVehicleOnPos(TileIndex tile, void *data, VehicleFromPosProc *proc);
 
void FindVehicleOnPosXY(int x, int y, void *data, VehicleFromPosProc *proc);
 
bool HasVehicleOnPos(TileIndex tile, void *data, VehicleFromPosProc *proc);
0 comments (0 inline, 0 general)