|
OpenTTD Source
1.10.0-RC1
|
Base class for groups and group functions. More...
#include "group_type.h"#include "core/pool_type.hpp"#include "company_type.h"#include "vehicle_type.h"#include "engine_type.h"#include "livery.h"Go to the source code of this file.
Data Structures | |
| struct | GroupStatistics |
| Statistics and caches on the vehicles in a group. More... | |
| struct | Group |
| Group data. More... | |
Typedefs | |
| typedef Pool< Group, GroupID, 16, 64000 > | GroupPool |
Functions | |
| static bool | IsDefaultGroupID (GroupID index) |
| static bool | IsAllGroupID (GroupID id_g) |
| Checks if a GroupID stands for all vehicles of a company. More... | |
| uint | GetGroupNumEngines (CompanyID company, GroupID id_g, EngineID id_e) |
| Get the number of engines with EngineID id_e in the group with GroupID id_g and its sub-groups. More... | |
| uint | GetGroupNumVehicle (CompanyID company, GroupID id_g, VehicleType type) |
| Get the number of vehicles in the group with GroupID id_g and its sub-groups. More... | |
| uint | GetGroupNumProfitVehicle (CompanyID company, GroupID id_g, VehicleType type) |
| Get the number of vehicles above profit minimum age in the group with GroupID id_g and its sub-groups. More... | |
| Money | GetGroupProfitLastYear (CompanyID company, GroupID id_g, VehicleType type) |
| Get last year's profit for the group with GroupID id_g and its sub-groups. More... | |
| void | SetTrainGroupID (Train *v, GroupID grp) |
| Affect the groupID of a train to new_g. More... | |
| void | UpdateTrainGroupID (Train *v) |
| Recalculates the groupID of a train. More... | |
| void | RemoveVehicleFromGroup (const Vehicle *v) |
| Decrease the num_vehicle variable before delete an front engine from a group. More... | |
| void | RemoveAllGroupsForCompany (const CompanyID company) |
| bool | GroupIsInGroup (GroupID search, GroupID group) |
| Test if GroupID group is a descendant of (or is) GroupID search. More... | |
Variables | |
| GroupPool | _group_pool |
| Pool of groups. | |
| GroupID | _new_group_id |
Base class for groups and group functions.
Definition in file group.h.
Get the number of engines with EngineID id_e in the group with GroupID id_g and its sub-groups.
| company | The company the group belongs to |
| id_g | The GroupID of the group used |
| id_e | The EngineID of the engine to count |
Definition at line 783 of file group_cmd.cpp.
References GroupStatistics::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< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), GroupStatistics::num_engines, Group::parent, and Engine::type.
Referenced by ReplaceVehicleWindow::GenerateReplaceVehList(), InvalidateAutoreplaceWindow(), and IsAllGroupID().
| uint GetGroupNumProfitVehicle | ( | CompanyID | company, |
| GroupID | id_g, | ||
| VehicleType | type | ||
| ) |
Get the number of vehicles above profit minimum age in the group with GroupID id_g and its sub-groups.
| company | The company the group belongs to |
| id_g | The GroupID of the group used |
| type | The vehicle type of the group |
Definition at line 818 of file group_cmd.cpp.
References GroupStatistics::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), GroupStatistics::num_profit_vehicle, and Group::parent.
Referenced by IsAllGroupID().
| uint GetGroupNumVehicle | ( | CompanyID | company, |
| GroupID | id_g, | ||
| VehicleType | type | ||
| ) |
Get the number of vehicles in the group with GroupID id_g and its sub-groups.
| company | The company the group belongs to |
| id_g | The GroupID of the group used |
| type | The vehicle type of the group |
Definition at line 801 of file group_cmd.cpp.
References GroupStatistics::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), GroupStatistics::num_vehicle, and Group::parent.
Referenced by IsAllGroupID().
| Money GetGroupProfitLastYear | ( | CompanyID | company, |
| GroupID | id_g, | ||
| VehicleType | type | ||
| ) |
Get last year's profit for the group with GroupID id_g and its sub-groups.
| company | The company the group belongs to |
| id_g | The GroupID of the group used |
| type | The vehicle type of the group |
Definition at line 835 of file group_cmd.cpp.
References GroupStatistics::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), Group::parent, and GroupStatistics::profit_last_year.
Referenced by IsAllGroupID().
Test if GroupID group is a descendant of (or is) GroupID search.
| search | The GroupID to search in |
| group | The GroupID to search for |
Definition at line 858 of file group_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get(), INVALID_GROUP, and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::IsValidID().
Referenced by CmdAlterGroup(), and GetEngineReplacement().
|
inlinestatic |
Checks if a GroupID stands for all vehicles of a company.
| id_g | The GroupID to check |
Definition at line 93 of file group.h.
References ALL_GROUP, GetGroupNumEngines(), GetGroupNumProfitVehicle(), GetGroupNumVehicle(), GetGroupProfitLastYear(), RemoveVehicleFromGroup(), SetTrainGroupID(), and UpdateTrainGroupID().
Referenced by CmdSetAutoReplace(), VehicleGroupWindow::DirtyHighlightedGroupWidget(), VehicleGroupWindow::OnClick(), and VehicleGroupWindow::OnInvalidateData().
| void RemoveVehicleFromGroup | ( | const Vehicle * | v | ) |
Decrease the num_vehicle variable before delete an front engine from a group.
| v | FrontEngine of the train we want to remove. |
Definition at line 715 of file group_cmd.cpp.
References Vehicle::IsPrimaryVehicle().
Referenced by IsAllGroupID().
Affect the groupID of a train to new_g.
| v | First vehicle of the chain. |
| new_g | index of array group |
Definition at line 729 of file group_cmd.cpp.
Referenced by IsAllGroupID().
| void UpdateTrainGroupID | ( | Train * | v | ) |
Recalculates the groupID of a train.
Should be called each time a vehicle is added to/removed from the chain,.
| v | First vehicle of the chain. |
Definition at line 757 of file group_cmd.cpp.
Referenced by IsAllGroupID(), and NormaliseTrainHead().