OpenTTD Source 20241224-master-gf74b0cf984
|
Statistics and caches on the vehicles in a group. More...
#include <group.h>
Public Member Functions | |
void | Clear () |
Clear all caches. | |
void | ClearProfits () |
void | ClearAutoreplace () |
uint16_t | GetNumEngines (EngineID engine) const |
Get number of vehicles of a specific engine ID. | |
Static Public Member Functions | |
static GroupStatistics & | Get (CompanyID company, GroupID id_g, VehicleType type) |
Returns the GroupStatistics for a specific group. | |
static GroupStatistics & | Get (const Vehicle *v) |
Returns the GroupStatistic for the group of a vehicle. | |
static GroupStatistics & | GetAllGroup (const Vehicle *v) |
Returns the GroupStatistic for the ALL_GROUPO of a vehicle type. | |
static void | CountVehicle (const Vehicle *v, int delta) |
Update num_vehicle when adding or removing a vehicle. | |
static void | CountEngine (const Vehicle *v, int delta) |
Update num_engines when adding/removing an engine. | |
static void | AddProfitLastYear (const Vehicle *v) |
Add a vehicle's last year profit to the profit sum of its group. | |
static void | VehicleReachedMinAge (const Vehicle *v) |
Add a vehicle to the profit sum of its group. | |
static void | UpdateProfits () |
Recompute the profits for all groups. | |
static void | UpdateAfterLoad () |
Update all caches after loading a game, changing NewGRF, etc. | |
static void | UpdateAutoreplace (CompanyID company) |
Update autoreplace_defined and autoreplace_finished of all statistics of a company. | |
Data Fields | |
Money | profit_last_year |
Sum of profits for all vehicles. | |
Money | profit_last_year_min_age |
Sum of profits for vehicles considered for profit statistics. | |
std::map< EngineID, uint16_t > | num_engines |
Caches the number of engines of each type the company owns. | |
uint16_t | num_vehicle |
Number of vehicles. | |
uint16_t | num_vehicle_min_age |
Number of vehicles considered for profit statistics;. | |
bool | autoreplace_defined |
Are any autoreplace rules set? | |
bool | autoreplace_finished |
Have all autoreplacement finished? | |
|
static |
Add a vehicle's last year profit to the profit sum of its group.
Definition at line 168 of file group_cmd.cpp.
References Get(), GetAllGroup(), Vehicle::GetDisplayProfitLastYear(), and profit_last_year.
Referenced by CopyHeadSpecificThings(), and UpdateProfits().
void GroupStatistics::Clear | ( | ) |
Clear all caches.
Definition at line 33 of file group_cmd.cpp.
|
static |
Update num_engines when adding/removing an engine.
v | Engine to count. |
delta | +1 to add, -1 to remove. |
Definition at line 158 of file group_cmd.cpp.
References Vehicle::engine_type, Get(), GetAllGroup(), and num_engines.
Referenced by ChangeOwnershipOfCompanyItems(), CmdBuildVehicle(), Vehicle::PreDestructor(), and UpdateAfterLoad().
|
static |
Update num_vehicle when adding or removing a vehicle.
v | Vehicle to count. |
delta | +1 to add, -1 to remove. |
Definition at line 133 of file group_cmd.cpp.
References Vehicle::economy_age, Get(), GetAllGroup(), Vehicle::GetDisplayProfitLastYear(), num_vehicle, num_vehicle_min_age, profit_last_year, profit_last_year_min_age, and VEHICLE_PROFIT_MIN_AGE.
Referenced by AddVehicleToGroup(), ChangeOwnershipOfCompanyItems(), CmdBuildVehicle(), CmdMoveRailVehicle(), CmdSellRailWagon(), Vehicle::PreDestructor(), and UpdateAfterLoad().
|
static |
Returns the GroupStatistics for a specific group.
company | Owner of the group. |
id_g | GroupID of the group. |
type | VehicleType of the vehicles in the group. |
Definition at line 63 of file group_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get(), IsAllGroupID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::IsValidID(), Group::owner, Group::statistics, and Group::vehicle_type.
Referenced by AddProfitLastYear(), CountEngine(), CountVehicle(), VehicleGroupWindow::DrawGroupInfo(), Get(), GetAllGroup(), GetGroupNumEngines(), GetGroupNumVehicle(), GetGroupNumVehicleMinAge(), GetGroupProfitLastYearMinAge(), UpdateAutoreplace(), UpdateNumEngineGroup(), and VehicleReachedMinAge().
|
static |
Returns the GroupStatistic for the group of a vehicle.
v | Vehicle. |
Definition at line 83 of file group_cmd.cpp.
References Get(), Vehicle::group_id, Vehicle::owner, and BaseVehicle::type.
|
static |
Returns the GroupStatistic for the ALL_GROUPO of a vehicle type.
v | Vehicle. |
Definition at line 93 of file group_cmd.cpp.
References ALL_GROUP, Get(), Vehicle::owner, and BaseVehicle::type.
Referenced by AddProfitLastYear(), CountEngine(), CountVehicle(), and VehicleReachedMinAge().
uint16_t GroupStatistics::GetNumEngines | ( | EngineID | engine | ) | const |
Get number of vehicles of a specific engine ID.
engine | Engine ID. |
Definition at line 49 of file group_cmd.cpp.
References num_engines.
Referenced by GetGroupNumEngines().
|
static |
Update all caches after loading a game, changing NewGRF, etc.
Definition at line 101 of file group_cmd.cpp.
References CountEngine(), CountVehicle(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Iterate(), UpdateAutoreplace(), and VEH_COMPANY_END.
Referenced by AfterLoadGame(), InitializeWindowsAndCaches(), and ReloadNewGRFData().
|
static |
Update autoreplace_defined and autoreplace_finished of all statistics of a company.
company | Company to update statistics for. |
Definition at line 221 of file group_cmd.cpp.
References autoreplace_defined, autoreplace_finished, CompanyProperties::engine_renew_list, Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetGroupNumEngines(), Company::group_all, Company::group_default, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), Engine::type, and VEH_COMPANY_END.
Referenced by ChangeOwnershipOfCompanyItems(), CmdAddVehicleGroup(), CmdAlterGroup(), CmdBuildVehicle(), CmdSetAutoReplace(), Vehicle::PreDestructor(), SetTrainGroupID(), UpdateAfterLoad(), and UpdateTrainGroupID().
|
static |
Recompute the profits for all groups.
Definition at line 194 of file group_cmd.cpp.
References AddProfitLastYear(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Iterate(), VEH_COMPANY_END, VEHICLE_PROFIT_MIN_AGE, and VehicleReachedMinAge().
|
static |
Add a vehicle to the profit sum of its group.
Definition at line 180 of file group_cmd.cpp.
References Get(), GetAllGroup(), Vehicle::GetDisplayProfitLastYear(), num_vehicle_min_age, and profit_last_year_min_age.
Referenced by EconomyAgeVehicle(), and UpdateProfits().
bool GroupStatistics::autoreplace_defined |
Are any autoreplace rules set?
Definition at line 30 of file group.h.
Referenced by UpdateAutoreplace().
bool GroupStatistics::autoreplace_finished |
Have all autoreplacement finished?
Definition at line 31 of file group.h.
Referenced by UpdateAutoreplace().
std::map<EngineID, uint16_t> GroupStatistics::num_engines |
Caches the number of engines of each type the company owns.
Definition at line 27 of file group.h.
Referenced by CountEngine(), GetNumEngines(), and UpdateNumEngineGroup().
uint16_t GroupStatistics::num_vehicle |
Number of vehicles.
Definition at line 28 of file group.h.
Referenced by CheckTakeoverVehicleLimit(), CountVehicle(), VehicleGroupWindow::DrawGroupInfo(), GetFreeUnitNumber(), and GetGroupNumVehicle().
uint16_t GroupStatistics::num_vehicle_min_age |
Number of vehicles considered for profit statistics;.
Definition at line 29 of file group.h.
Referenced by CountVehicle(), GetGroupNumVehicleMinAge(), and VehicleReachedMinAge().
Money GroupStatistics::profit_last_year |
Sum of profits for all vehicles.
Definition at line 25 of file group.h.
Referenced by AddProfitLastYear(), and CountVehicle().
Money GroupStatistics::profit_last_year_min_age |
Sum of profits for vehicles considered for profit statistics.
Definition at line 26 of file group.h.
Referenced by CountVehicle(), GetGroupProfitLastYearMinAge(), and VehicleReachedMinAge().