diff options
author | frosch <frosch@openttd.org> | 2011-10-03 17:24:31 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2011-10-03 17:24:31 +0000 |
commit | 1a12008fcf0808d2426158c25e579158c47d94d0 (patch) | |
tree | a0275bc05f4092ce27dddb639355d8354a4a8442 /src | |
parent | dd74536bef66a4e1d214caab38805d0c70acb075 (diff) | |
download | openttd-1a12008fcf0808d2426158c25e579158c47d94d0.tar.xz |
(svn r22982) -Cleanup: Remove CountCompanyVehicles() and use ALL_GROUP statistics instead.
Diffstat (limited to 'src')
-rw-r--r-- | src/company_cmd.cpp | 13 | ||||
-rw-r--r-- | src/company_gui.cpp | 5 | ||||
-rw-r--r-- | src/vehicle.cpp | 21 | ||||
-rw-r--r-- | src/vehicle_func.h | 1 |
4 files changed, 12 insertions, 28 deletions
diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index f72d131e0..df08fff00 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -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; } /** diff --git a/src/company_gui.cpp b/src/company_gui.cpp index a79ef5eb1..a224c1dcc 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -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) { diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 6c34d51f3..890e5e221 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -600,21 +600,6 @@ uint CountVehiclesInChain(const Vehicle *v) } /** - * 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 type) 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); diff --git a/src/vehicle_func.h b/src/vehicle_func.h index 166c0b9cf..475c8a313 100644 --- a/src/vehicle_func.h +++ b/src/vehicle_func.h @@ -30,7 +30,6 @@ typedef Vehicle *VehicleFromPosProc(Vehicle *v, void *data); 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); |