OpenTTD Source 20241224-master-gf74b0cf984
vehicle_gui.h File Reference

Functions related to the vehicle's GUIs. More...

#include "window_type.h"
#include "vehicle_type.h"
#include "vehicle_gui_base.h"
#include "vehiclelist.h"
#include "order_type.h"
#include "station_type.h"
#include "engine_type.h"
#include "company_type.h"

Go to the source code of this file.

Data Structures

struct  TestedEngineDetails
 Extra information about refitted cargo and capacity. More...
 
struct  VehicleCellSize
 Dimensions of a cell in the purchase/depot windows. More...
 

Enumerations

enum  TrainDetailsWindowTabs : uint8_t { TDW_TAB_CARGO = 0 , TDW_TAB_INFO , TDW_TAB_CAPACITY , TDW_TAB_TOTALS }
 The tabs in the train details window. More...
 
enum  VehicleInvalidateWindowData { VIWD_REMOVE_ALL_ORDERS = -1 , VIWD_MODIFY_ORDERS = -2 , VIWD_CONSIST_CHANGED = -3 , VIWD_AUTOREPLACE = -4 }
 Special values for vehicle-related windows for the data parameter of InvalidateWindowData. More...
 

Functions

void ShowVehicleRefitWindow (const Vehicle *v, VehicleOrderID order, Window *parent, bool auto_refit=false)
 Show the refit window for a vehicle.
 
int DrawVehiclePurchaseInfo (int left, int right, int y, EngineID engine_number, TestedEngineDetails &te)
 Draw the purchase info details of a vehicle at a given location.
 
void DrawTrainImage (const Train *v, const Rect &r, VehicleID selection, EngineImageType image_type, int skip, VehicleID drag_dest=INVALID_VEHICLE)
 Draws an image of a whole train.
 
void DrawRoadVehImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type, int skip=0)
 Draws an image of a road vehicle chain.
 
void DrawShipImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type)
 Draws an image of a ship.
 
void DrawAircraftImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type)
 Draws an image of an aircraft.
 
void ShowBuildVehicleWindow (TileIndex tile, VehicleType type)
 
uint ShowRefitOptionsList (int left, int right, int y, EngineID engine)
 Display list of cargo types of the engine, for the purchase information window.
 
StringID GetCargoSubtypeText (const Vehicle *v)
 Get the cargo subtype text from NewGRF for the vehicle details window.
 
void ShowVehicleListWindow (const Vehicle *v)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type, StationID station)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type, TileIndex depot_tile)
 
uint GetVehicleHeight (VehicleType type)
 Get the height of a single vehicle in the GUIs.
 
int GetSingleVehicleWidth (const Vehicle *v, EngineImageType image_type)
 Get the width of a vehicle (part) in pixels.
 
int GetVehicleWidth (const Vehicle *v, EngineImageType image_type)
 Get the width of a vehicle (including all parts of the consist) in pixels.
 
VehicleCellSize GetVehicleImageCellSize (VehicleType type, EngineImageType image_type)
 Get the GUI cell size for a vehicle image.
 
WindowClass GetWindowClassForVehicleType (VehicleType vt)
 Get WindowClass for vehicle list of given vehicle type.
 
void ShowVehicleViewWindow (const Vehicle *v)
 Shows the vehicle view window of the given vehicle.
 
bool VehicleClicked (const Vehicle *v)
 Dispatch a "vehicle selected" event if any window waits for it.
 
bool VehicleClicked (VehicleList::const_iterator begin, VehicleList::const_iterator end)
 Dispatch a "vehicle group selected" event if any window waits for it.
 
bool VehicleClicked (const GUIVehicleGroup &vehgroup)
 Dispatch a "vehicle group selected" event if any window waits for it.
 
void StartStopVehicle (const Vehicle *v, bool texteffect)
 Executes CMD_START_STOP_VEHICLE for given vehicle.
 
VehicleCheckClickOnVehicle (const struct Viewport *vp, int x, int y)
 
void StopGlobalFollowVehicle (const Vehicle *v)
 
void DrawVehicleImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type, int skip)
 Draws an image of a vehicle chain.
 
void SetMouseCursorVehicle (const Vehicle *v, EngineImageType image_type)
 Set the mouse cursor to look like a vehicle.
 

Detailed Description

Functions related to the vehicle's GUIs.

Definition in file vehicle_gui.h.

Enumeration Type Documentation

◆ TrainDetailsWindowTabs

enum TrainDetailsWindowTabs : uint8_t

The tabs in the train details window.

Enumerator
TDW_TAB_CARGO 

Tab with cargo carried by the vehicles.

TDW_TAB_INFO 

Tab with name and value of the vehicles.

TDW_TAB_CAPACITY 

Tab with cargo capacity of the vehicles.

TDW_TAB_TOTALS 

Tab with sum of total cargo transported.

Definition at line 25 of file vehicle_gui.h.

◆ VehicleInvalidateWindowData

Special values for vehicle-related windows for the data parameter of InvalidateWindowData.

Enumerator
VIWD_REMOVE_ALL_ORDERS 

Removed / replaced all orders (after deleting / sharing).

VIWD_MODIFY_ORDERS 

Other order modifications.

VIWD_CONSIST_CHANGED 

Vehicle composition was changed.

VIWD_AUTOREPLACE 

Autoreplace replaced the vehicle.

Definition at line 34 of file vehicle_gui.h.

Function Documentation

◆ DrawAircraftImage()

◆ DrawRoadVehImage()

◆ DrawShipImage()

◆ DrawTrainImage()

◆ DrawVehicleImage()

void DrawVehicleImage ( const Vehicle v,
const Rect r,
VehicleID  selection,
EngineImageType  image_type,
int  skip 
)

Draws an image of a vehicle chain.

Parameters
vFront vehicle
rRect to draw at
selectionSelected vehicle to draw a frame around
skipNumber of pixels to skip at the front (for scrolling)

Definition at line 1734 of file vehicle_gui.cpp.

References DrawAircraftImage(), DrawRoadVehImage(), DrawShipImage(), DrawTrainImage(), SpecializedVehicle< T, Type >::From(), BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

Referenced by NewGRFInspectWindow::DrawVehicleChainWidget(), BaseVehicleListWindow::DrawVehicleListItems(), RefitWindow::DrawWidget(), and VehicleDetailsWindow::DrawWidget().

◆ DrawVehiclePurchaseInfo()

◆ GetCargoSubtypeText()

◆ GetSingleVehicleWidth()

int GetSingleVehicleWidth ( const Vehicle v,
EngineImageType  image_type 
)

Get the width of a vehicle (part) in pixels.

Parameters
vVehicle to get the width for.
Returns
Width of the vehicle.

Definition at line 3580 of file vehicle_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, SpecializedVehicle< T, Type >::From(), VehicleSpriteSeq::GetBounds(), Vehicle::GetImage(), TD_RTL, BaseVehicle::type, UnScaleGUI(), VEH_ROAD, VEH_TRAIN, and Rect::Width().

Referenced by VehicleDetailsWindow::DrawWidget(), GetVehicleWidth(), and SetMouseCursorVehicle().

◆ GetVehicleHeight()

uint GetVehicleHeight ( VehicleType  type)
inline

Get the height of a single vehicle in the GUIs.

Parameters
typethe vehicle type to look at
Returns
the height

Definition at line 74 of file vehicle_gui.h.

References VEH_ROAD, and VEH_TRAIN.

Referenced by VehicleDetailsWindow::DrawWidget(), GetVehicleListHeight(), and RefitWindow::UpdateWidgetSize().

◆ GetVehicleImageCellSize()

VehicleCellSize GetVehicleImageCellSize ( VehicleType  type,
EngineImageType  image_type 
)

Get the GUI cell size for a vehicle image.

Parameters
typeVehicle type to get the size for.
image_typeImage type to get size for.
Precondition
image_type == EIT_IN_DEPOT || image_type == EIT_PURCHASE
Returns
Cell dimensions for the vehicle and image type.

Definition at line 161 of file depot_gui.cpp.

References _base_block_sizes_depot, _base_block_sizes_purchase, EIT_IN_DEPOT, and EIT_PURCHASE.

Referenced by DrawEngineList(), NewGRFInspectWindow::DrawVehicleChainWidget(), GetEngineListHeight(), DepotWindow::OnInit(), BuildVehicleWindow::UpdateWidgetSize(), and NewGRFInspectWindow::UpdateWidgetSize().

◆ GetVehicleWidth()

int GetVehicleWidth ( const Vehicle v,
EngineImageType  image_type 
)

Get the width of a vehicle (including all parts of the consist) in pixels.

Parameters
vVehicle to get the width for.
Returns
Width of the vehicle.

Definition at line 3604 of file vehicle_gui.cpp.

References GetSingleVehicleWidth(), SpecializedVehicle< T, Type >::Next(), BaseVehicle::type, VEH_ROAD, and VEH_TRAIN.

Referenced by RefitWindow::OnInvalidateData(), and RefitWindow::OnResize().

◆ GetWindowClassForVehicleType()

◆ SetMouseCursorVehicle()

◆ ShowBuildVehicleWindow()

void ShowBuildVehicleWindow ( TileIndex  tile,
VehicleType  type 
)

Definition at line 1933 of file build_vehicle_gui.cpp.

◆ ShowRefitOptionsList()

uint ShowRefitOptionsList ( int  left,
int  right,
int  y,
EngineID  engine 
)

Display list of cargo types of the engine, for the purchase information window.

Definition at line 1377 of file vehicle_gui.cpp.

References _cargo_mask, CountBits(), DrawStringMultiLine(), GetUnionOfArticulatedRefitMasks(), HasAtMostOneBit(), and SetDParam().

Referenced by DrawVehiclePurchaseInfo().

◆ ShowVehicleListWindow() [1/4]

void ShowVehicleListWindow ( CompanyID  company,
VehicleType  vehicle_type 
)

Definition at line 2331 of file vehicle_gui.cpp.

◆ ShowVehicleListWindow() [2/4]

void ShowVehicleListWindow ( CompanyID  company,
VehicleType  vehicle_type,
StationID  station 
)

Definition at line 2350 of file vehicle_gui.cpp.

◆ ShowVehicleListWindow() [3/4]

void ShowVehicleListWindow ( CompanyID  company,
VehicleType  vehicle_type,
TileIndex  depot_tile 
)

Definition at line 2355 of file vehicle_gui.cpp.

◆ ShowVehicleListWindow() [4/4]

void ShowVehicleListWindow ( const Vehicle v)

Definition at line 2345 of file vehicle_gui.cpp.

◆ ShowVehicleRefitWindow()

void ShowVehicleRefitWindow ( const Vehicle v,
VehicleOrderID  order,
Window parent,
bool  auto_refit 
)

Show the refit window for a vehicle.

Parameters
*vThe vehicle to show the refit window for
orderof the vehicle to assign refit to, or INVALID_VEH_ORDER_ID to refit the vehicle now
parentthe parent window of the refit window
auto_refitChoose cargo for auto-refitting

Definition at line 1369 of file vehicle_gui.cpp.

References CloseWindowById(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Window::parent, and WC_VEHICLE_REFIT.

Referenced by VehicleViewWindow::OnClick(), and OrdersWindow::OrderClick_Refit().

◆ ShowVehicleViewWindow()

◆ StartStopVehicle()

void StartStopVehicle ( const Vehicle v,
bool  texteffect 
)

◆ StopGlobalFollowVehicle()

void StopGlobalFollowVehicle ( const Vehicle v)

Definition at line 3552 of file vehicle_gui.cpp.

◆ VehicleClicked() [1/3]

bool VehicleClicked ( const GUIVehicleGroup vehgroup)

Dispatch a "vehicle group selected" event if any window waits for it.

Parameters
vehgroupthe GUIVehicleGroup representing the vehicle group
Returns
did any window accept vehicle group selection?

Definition at line 3547 of file vehicle_gui.cpp.

References VehicleClicked(), GUIVehicleGroup::vehicles_begin, and GUIVehicleGroup::vehicles_end.

◆ VehicleClicked() [2/3]

bool VehicleClicked ( const Vehicle v)

Dispatch a "vehicle selected" event if any window waits for it.

Parameters
vselected vehicle;
Returns
did any window accept vehicle selection?

Definition at line 3514 of file vehicle_gui.cpp.

References Vehicle::First(), TileHighlightData::GetCallbackWnd(), HT_VEHICLE, Vehicle::IsPrimaryVehicle(), Window::OnVehicleSelect(), and TileHighlightData::place_mode.

Referenced by DepotWindow::DepotClick(), VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), and VehicleClicked().

◆ VehicleClicked() [3/3]

bool VehicleClicked ( VehicleList::const_iterator  begin,
VehicleList::const_iterator  end 
)

Dispatch a "vehicle group selected" event if any window waits for it.

Parameters
beginiterator to the start of the range of vehicles
enditerator to the end of the range of vehicles
Returns
did any window accept vehicle group selection?

Definition at line 3531 of file vehicle_gui.cpp.

References TileHighlightData::GetCallbackWnd(), HT_VEHICLE, Window::OnVehicleSelect(), and TileHighlightData::place_mode.