mirror of https://github.com/OpenTTD/OpenTTD
Codechange: explicitly initialise Group member variables
parent
b4a4ca83ff
commit
63e99871c1
33
src/group.h
33
src/group.h
|
@ -22,13 +22,13 @@ extern GroupPool _group_pool; ///< Pool of groups.
|
||||||
|
|
||||||
/** Statistics and caches on the vehicles in a group. */
|
/** Statistics and caches on the vehicles in a group. */
|
||||||
struct GroupStatistics {
|
struct GroupStatistics {
|
||||||
Money profit_last_year; ///< Sum of profits for all vehicles.
|
Money profit_last_year = 0; ///< Sum of profits for all vehicles.
|
||||||
Money profit_last_year_min_age; ///< Sum of profits for vehicles considered for profit statistics.
|
Money profit_last_year_min_age = 0; ///< 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.
|
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 = 0; ///< Number of vehicles.
|
||||||
uint16_t num_vehicle_min_age; ///< Number of vehicles considered for profit statistics;
|
uint16_t num_vehicle_min_age = 0; ///< Number of vehicles considered for profit statistics;
|
||||||
bool autoreplace_defined; ///< Are any autoreplace rules set?
|
bool autoreplace_defined = false; ///< Are any autoreplace rules set?
|
||||||
bool autoreplace_finished; ///< Have all autoreplacement finished?
|
bool autoreplace_finished = false; ///< Have all autoreplacement finished?
|
||||||
|
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
|
@ -70,20 +70,21 @@ using GroupFlags = EnumBitSet<GroupFlag, uint8_t>;
|
||||||
|
|
||||||
/** Group data. */
|
/** Group data. */
|
||||||
struct Group : GroupPool::PoolItem<&_group_pool> {
|
struct Group : GroupPool::PoolItem<&_group_pool> {
|
||||||
std::string name; ///< Group Name
|
std::string name{}; ///< Group Name
|
||||||
Owner owner; ///< Group Owner
|
Owner owner = INVALID_OWNER; ///< Group Owner
|
||||||
VehicleType vehicle_type; ///< Vehicle type of the group
|
VehicleType vehicle_type = VEH_INVALID; ///< Vehicle type of the group
|
||||||
|
|
||||||
GroupFlags flags{}; ///< Group flags
|
GroupFlags flags{}; ///< Group flags
|
||||||
Livery livery; ///< Custom colour scheme for vehicles in this group
|
Livery livery{}; ///< Custom colour scheme for vehicles in this group
|
||||||
GroupStatistics statistics; ///< NOSAVE: Statistics and caches on the vehicles in the group.
|
GroupStatistics statistics{}; ///< NOSAVE: Statistics and caches on the vehicles in the group.
|
||||||
|
|
||||||
bool folded; ///< NOSAVE: Is this group folded in the group view?
|
bool folded = false; ///< NOSAVE: Is this group folded in the group view?
|
||||||
|
|
||||||
GroupID parent; ///< Parent group
|
GroupID parent = GroupID::Invalid(); ///< Parent group
|
||||||
uint16_t number; ///< Per-company group number.
|
uint16_t number = 0; ///< Per-company group number.
|
||||||
|
|
||||||
Group(CompanyID owner = CompanyID::Invalid());
|
Group() {}
|
||||||
|
Group(CompanyID owner, VehicleType vehicle_type) : owner(owner), vehicle_type(vehicle_type) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -319,12 +319,6 @@ void UpdateCompanyGroupLiveries(const Company *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Group::Group(Owner owner)
|
|
||||||
{
|
|
||||||
this->owner = owner;
|
|
||||||
this->folded = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new vehicle group.
|
* Create a new vehicle group.
|
||||||
|
@ -346,9 +340,7 @@ std::tuple<CommandCost, GroupID> CmdCreateGroup(DoCommandFlags flags, VehicleTyp
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags.Test(DoCommandFlag::Execute)) {
|
if (flags.Test(DoCommandFlag::Execute)) {
|
||||||
Group *g = new Group(_current_company);
|
Group *g = new Group(_current_company, vt);
|
||||||
g->vehicle_type = vt;
|
|
||||||
g->parent = GroupID::Invalid();
|
|
||||||
|
|
||||||
Company *c = Company::Get(g->owner);
|
Company *c = Company::Get(g->owner);
|
||||||
g->number = c->freegroups.UseID(c->freegroups.NextID());
|
g->number = c->freegroups.UseID(c->freegroups.NextID());
|
||||||
|
|
Loading…
Reference in New Issue