OpenTTD Source: src/vehicle_gui.h File Reference

OpenTTD Source 14.0-RC3

Data Structures | Enumerations | Functions
vehicle_gui.h File Reference
`#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 : byte { 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. More...
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. More...
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. More...
void | DrawRoadVehImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type, int skip=0)
| Draws an image of a road vehicle chain. More...
void | DrawShipImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type)
| Draws an image of a ship. More...
void | DrawAircraftImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type)
| Draws an image of an aircraft. More...
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. More...
int | GetSingleVehicleWidth (const Vehicle *v, EngineImageType image_type)
| Get the width of a vehicle (part) in pixels. More...
int | GetVehicleWidth (const Vehicle *v, EngineImageType image_type)
| Get the width of a vehicle (including all parts of the consist) in pixels. More...
VehicleCellSize | GetVehicleImageCellSize (VehicleType type, EngineImageType image_type)
| Get the GUI cell size for a vehicle image. More...
WindowClass | GetWindowClassForVehicleType (VehicleType vt)
| Get WindowClass for vehicle list of given vehicle type. More...
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. More...
bool | VehicleClicked (VehicleList::const_iterator begin, VehicleList::const_iterator end)
| Dispatch a "vehicle group selected" event if any window waits for it. More...
bool | VehicleClicked (const GUIVehicleGroup &vehgroup)
| Dispatch a "vehicle group selected" event if any window waits for it. More...
void | StartStopVehicle (const Vehicle *v, bool texteffect)
| Executes CMD_START_STOP_VEHICLE for given vehicle. More...
Vehicle * | CheckClickOnVehicle (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. More...
void | SetMouseCursorVehicle (const Vehicle *v, EngineImageType image_type)
| Set the mouse cursor to look like a vehicle. More...

## Detailed Description

Functions related to the vehicle's GUIs.

Definition in file vehicle_gui.h.

## Enumeration Type Documentation

## ◆ TrainDetailsWindowTabs

enum TrainDetailsWindowTabs : byte

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

enum 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()

void DrawAircraftImage | ( | const Vehicle * | v,
|  | const Rect & | r,
|  | VehicleID | selection,
|  | EngineImageType | image_type
| ) |  |

Draws an image of an aircraft.

Parameters

  v | Front vehicle
  r | Rect to draw at
  selection | Selected vehicle to draw a frame around

Definition at line 79 of file aircraft_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, VehicleSpriteSeq::GetBounds(), Vehicle::GetImage(), TD_RTL, UnScaleGUI(), and Rect::Width().

Referenced by DrawVehicleImage().

## ◆ DrawRoadVehImage()

void DrawRoadVehImage | ( | const Vehicle * | v,
|  | const Rect & | r,
|  | VehicleID | selection,
|  | EngineImageType | image_type,
|  | int | skip
| ) |  |

Draws an image of a road vehicle chain.

Parameters

  v | Front vehicle
  r | Rect to draw at
  selection | Selected vehicle to draw a frame around
  skip | Number of pixels to skip at the front (for scrolling)

Definition at line 122 of file roadveh_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, FillDrawPixelInfo(), SpecializedVehicle< RoadVehicle, Type >::From(), TD_RTL, and Rect::Width().

Referenced by DrawVehicleImage().

## ◆ DrawShipImage()

void DrawShipImage | ( | const Vehicle * | v,
|  | const Rect & | r,
|  | VehicleID | selection,
|  | EngineImageType | image_type
| ) |  |

Draws an image of a ship.

Parameters

  v | Front vehicle
  r | Rect to draw at
  selection | Selected vehicle to draw a frame around

Definition at line 30 of file ship_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, VehicleSpriteSeq::GetBounds(), Vehicle::GetImage(), TD_RTL, UnScaleGUI(), and Rect::Width().

Referenced by DrawVehicleImage().

## ◆ DrawTrainImage()

void DrawTrainImage | ( | const Train * | v,
|  | const Rect & | r,
|  | VehicleID | selection,
|  | EngineImageType | image_type,
|  | int | skip,
|  | VehicleID | drag_dest
| ) |  |

Draws an image of a whole train.

Parameters

  v | Front vehicle
  r | Rect to draw at
  selection | Selected vehicle to draw a frame around
  skip | Number of pixels to skip at the front (for scrolling)
  drag_dest | The vehicle another one is dragged over, `INVALID_VEHICLE` if none.

Definition at line 93 of file train_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, FillDrawPixelInfo(), TD_RTL, and Rect::Width().

Referenced by DrawVehicleImage().

## ◆ DrawVehicleImage()

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

Draws an image of a vehicle chain.

Parameters

  v | Front vehicle
  r | Rect to draw at
  selection | Selected vehicle to draw a frame around
  skip | Number of pixels to skip at the front (for scrolling)

Definition at line 1653 of file vehicle_gui.cpp.

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

## ◆ DrawVehiclePurchaseInfo()

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.

Parameters

  left,right,y | location where to draw the info
  engine_number | the engine of which to draw the info of

Returns
  y after drawing all the text

Definition at line 920 of file build_vehicle_gui.cpp.

Referenced by ReplaceVehicleWindow::OnPaint(), and BuildVehicleWindow::OnPaint().

## ◆ GetSingleVehicleWidth()

int GetSingleVehicleWidth | ( | const Vehicle * | v,
|  | EngineImageType | image_type
| ) |  |

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

Parameters

  v | Vehicle to get the width for.

Returns
  Width of the vehicle.

Definition at line 3474 of file vehicle_gui.cpp.

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

Referenced by GetVehicleWidth().

## ◆ GetVehicleHeight()

uint GetVehicleHeight | ( | VehicleType | type | ) |
| inline

Get the height of a single vehicle in the GUIs.

Parameters

  type | the 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 GetVehicleListHeight().

## ◆ GetVehicleImageCellSize()

VehicleCellSize GetVehicleImageCellSize | ( | VehicleType | type,
|  | EngineImageType | image_type
| ) |  |

Get the GUI cell size for a vehicle image.

Parameters

  type | Vehicle type to get the size for.
  image_type | Image 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 GetEngineListHeight(), and DepotWindow::OnInit().

## ◆ GetVehicleWidth()

int GetVehicleWidth | ( | const Vehicle * | v,
|  | EngineImageType | image_type
| ) |  |

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

Parameters

  v | Vehicle to get the width for.

Returns
  Width of the vehicle.

Definition at line 3498 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()

WindowClass GetWindowClassForVehicleType | ( | VehicleType | vt | ) |
| inline

Get WindowClass for vehicle list of given vehicle type.

Parameters

  vt | vehicle type to check

Returns
  corresponding window class

Note
  works only for company buildable vehicle types

Definition at line 97 of file vehicle_gui.h.

Referenced by CmdAddSharedVehicleGroup(), CmdDeleteGroup(), CmdRemoveAllVehiclesGroup(), CmdRenameDepot(), CmdRenameVehicle(), Vehicle::Crash(), DecloneOrder(), FindVehicleGroupWindow(), and Vehicle::HandlePathfindingResult().

## ◆ SetMouseCursorVehicle()

void SetMouseCursorVehicle | ( | const Vehicle * | v,
|  | EngineImageType | image_type
| ) |  |

Set the mouse cursor to look like a vehicle.

Parameters

  v | Vehicle
  image_type | Type of vehicle image to use.

Definition at line 3516 of file vehicle_gui.cpp.

References _current_text_dir, and TD_RTL.

## ◆ ShowVehicleRefitWindow()

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

Show the refit window for a vehicle.

Parameters

  *v | The vehicle to show the refit window for
  order | of the vehicle to assign refit to, or INVALID_VEH_ORDER_ID to refit the vehicle now
  parent | the parent window of the refit window
  auto_refit | Choose cargo for auto-refitting

Definition at line 1288 of file vehicle_gui.cpp.

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

Referenced by OrdersWindow::OrderClick_Refit().

## ◆ StartStopVehicle()

void StartStopVehicle | ( | const Vehicle * | v,
|  | bool | texteffect
| ) |  |

Executes CMD_START_STOP_VEHICLE for given vehicle.

Parameters

  v | Vehicle to start/stop
  texteffect | Should a texteffect be shown?

Definition at line 2910 of file vehicle_gui.cpp.

References _vehicle_msg_translation_table, and Vehicle::IsPrimaryVehicle().

## ◆ VehicleClicked() [1/3]

bool VehicleClicked | ( | const GUIVehicleGroup & | vehgroup | ) |

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

Parameters

  vehgroup | the GUIVehicleGroup representing the vehicle group

Returns
  did any window accept vehicle group selection?

Definition at line 3441 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

  v | selected vehicle;

Returns
  did any window accept vehicle selection?

Definition at line 3408 of file vehicle_gui.cpp.

Referenced by 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

  begin | iterator to the start of the range of vehicles
  end | iterator to the end of the range of vehicles

Returns
  did any window accept vehicle group selection?

Definition at line 3425 of file vehicle_gui.cpp.