|
@@ -353,18 +353,18 @@ CommandCost CmdCreateGroup(TileIndex til
|
|
|
CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const std::string &text)
|
|
|
{
|
|
|
Group *g = Group::GetIfValid(p1);
|
|
|
if (g == nullptr || g->owner != _current_company) return CMD_ERROR;
|
|
|
|
|
|
/* Remove all vehicles from the group */
|
|
|
DoCommand(0, p1, 0, flags, CMD_REMOVE_ALL_VEHICLES_GROUP);
|
|
|
DoCommand(flags, CMD_REMOVE_ALL_VEHICLES_GROUP, 0, p1, 0);
|
|
|
|
|
|
/* Delete sub-groups */
|
|
|
for (const Group *gp : Group::Iterate()) {
|
|
|
if (gp->parent == g->index) {
|
|
|
DoCommand(0, gp->index, 0, flags, CMD_DELETE_GROUP);
|
|
|
DoCommand(flags, CMD_DELETE_GROUP, 0, gp->index, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (flags & DC_EXEC) {
|
|
|
/* Update backupped orders if needed */
|
|
|
OrderBackup::ClearGroup(g->index);
|
|
@@ -577,13 +577,13 @@ CommandCost CmdAddSharedVehicleGroup(Til
|
|
|
for (const Vehicle *v : Vehicle::Iterate()) {
|
|
|
if (v->type == type && v->IsPrimaryVehicle()) {
|
|
|
if (v->group_id != id_g) continue;
|
|
|
|
|
|
/* For each shared vehicles add it to the group */
|
|
|
for (Vehicle *v2 = v->FirstShared(); v2 != nullptr; v2 = v2->NextShared()) {
|
|
|
if (v2->group_id != id_g) DoCommand(tile, id_g, v2->index, flags, CMD_ADD_VEHICLE_GROUP, text);
|
|
|
if (v2->group_id != id_g) DoCommand(flags, CMD_ADD_VEHICLE_GROUP, tile, id_g, v2->index, text);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
InvalidateWindowData(GetWindowClassForVehicleType(type), VehicleListIdentifier(VL_GROUP_LIST, type, _current_company).Pack());
|
|
|
}
|
|
@@ -613,13 +613,13 @@ CommandCost CmdRemoveAllVehiclesGroup(Ti
|
|
|
/* Find each Vehicle that belongs to the group old_g and add it to the default group */
|
|
|
for (const Vehicle *v : Vehicle::Iterate()) {
|
|
|
if (v->IsPrimaryVehicle()) {
|
|
|
if (v->group_id != old_g) continue;
|
|
|
|
|
|
/* Add The Vehicle to the default group */
|
|
|
DoCommand(tile, DEFAULT_GROUP, v->index, flags, CMD_ADD_VEHICLE_GROUP, text);
|
|
|
DoCommand(flags, CMD_ADD_VEHICLE_GROUP, tile, DEFAULT_GROUP, v->index, text);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), VehicleListIdentifier(VL_GROUP_LIST, g->vehicle_type, _current_company).Pack());
|
|
|
}
|
|
|
|