OpenTTD
Data Structures | Typedefs | Enumerations | Functions
vehiclelist.h File Reference

Functions and type for generating vehicle lists. More...

#include "core/smallvec_type.hpp"
#include "vehicle_type.h"
#include "company_type.h"
#include "tile_type.h"

Go to the source code of this file.

Data Structures

struct  VehicleListIdentifier
 The information about a vehicle list. More...
 

Typedefs

typedef SmallVector< const Vehicle *, 32 > VehicleList
 A list of vehicles. More...
 

Enumerations

enum  VehicleListType {
  VL_STANDARD, VL_SHARED_ORDERS, VL_STATION_LIST, VL_DEPOT_LIST,
  VL_GROUP_LIST, VLT_END
}
 Vehicle List type flags.
 

Functions

bool GenerateVehicleSortList (VehicleList *list, const VehicleListIdentifier &identifier)
 Generate a list of vehicles based on window type. More...
 
void BuildDepotVehicleList (VehicleType type, TileIndex tile, VehicleList *engine_list, VehicleList *wagon_list, bool individual_wagons=false)
 Generate a list of vehicles inside a depot. More...
 
uint GetUnitNumberDigits (VehicleList &vehicles)
 Get the number of digits the biggest unit number of a set of vehicles has. More...
 

Detailed Description

Functions and type for generating vehicle lists.

Definition in file vehiclelist.h.

Typedef Documentation

◆ VehicleList

typedef SmallVector<const Vehicle *, 32> VehicleList

A list of vehicles.

Definition at line 55 of file vehiclelist.h.

Function Documentation

◆ BuildDepotVehicleList()

void BuildDepotVehicleList ( VehicleType  type,
TileIndex  tile,
VehicleList engines,
VehicleList wagons,
bool  individual_wagons 
)

Generate a list of vehicles inside a depot.

Parameters
typeType of vehicle
tileThe tile the depot is located on
enginesPointer to list to add vehicles to
wagonsPointer to list to add wagons to (can be NULL)
individual_wagonsIf true add every wagon to wagons which is not attached to an engine. If false only add the first wagon of every row.

Definition at line 71 of file vehiclelist.cpp.

References SmallVector< T, S >::Append(), SmallVector< T, S >::Clear(), SmallVector< T, S >::Compact(), SpecializedVehicle< T, Type >::First(), FOR_ALL_VEHICLES, SpecializedVehicle< Train, Type >::From(), Vehicle::IsArticulatedPart(), GroundVehicle< T, Type >::IsFreeWagon(), Vehicle::IsInDepot(), Vehicle::IsPrimaryVehicle(), GroundVehicle< T, Type >::IsRearDualheaded(), Vehicle::tile, TRACK_BIT_DEPOT, BaseVehicle::type, and VEH_TRAIN.

Referenced by CmdDepotMassAutoReplace(), CmdMassStartStopVehicle(), and DepotWindow::OnPaint().

◆ GenerateVehicleSortList()

bool GenerateVehicleSortList ( VehicleList list,
const VehicleListIdentifier vli 
)

Generate a list of vehicles based on window type.

Parameters
listPointer to list to add vehicles to
vliThe identifier of this vehicle list.
Returns
false if invalid list is requested

Definition at line 116 of file vehiclelist.cpp.

References SmallVector< T, S >::Clear(), and VehicleListIdentifier::type.

Referenced by CmdMassStartStopVehicle(), GetUnitNumberDigits(), and SendAllVehiclesToDepot().

◆ GetUnitNumberDigits()

uint GetUnitNumberDigits ( VehicleList vehicles)

Get the number of digits the biggest unit number of a set of vehicles has.

Parameters
vehiclesThe list of vehicles.
Returns
The number of digits to allocate space for.

Definition at line 106 of file vehicle_gui.cpp.

References SmallVector< T, S >::Begin(), DEBUG, SmallVector< T, S >::End(), GenerateVehicleSortList(), GetUnitNumberDigits(), SmallVector< T, S >::Length(), GUIList< T, F >::NeedRebuild(), GUIList< T, F >::RebuildDone(), Scrollbar::SetCount(), VehicleListIdentifier::type, BaseVehicleListWindow::unitnumber_digits, BaseVehicleListWindow::vehicles, and BaseVehicleListWindow::vli.

Referenced by GetUnitNumberDigits().