OpenTTD Source  20241108-master-g80f628063a
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. 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...
 
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. 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 : 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()

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

Draws an image of an aircraft.

Parameters
vFront vehicle
rRect to draw at
selectionSelected 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
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 122 of file roadveh_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, FillDrawPixelInfo(), SpecializedVehicle< T, 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
vFront vehicle
rRect to draw at
selectionSelected 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
vFront vehicle
rRect to draw at
selectionSelected vehicle to draw a frame around
skipNumber of pixels to skip at the front (for scrolling)
drag_destThe 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
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.

◆ 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,ylocation where to draw the info
engine_numberthe engine of which to draw the info of
Returns
y after drawing all the text

Definition at line 917 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
vVehicle to get the width for.
Returns
Width of the vehicle.

Definition at line 3574 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 GetVehicleWidth().

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

◆ 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(), 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
vVehicle to get the width for.
Returns
Width of the vehicle.

Definition at line 3598 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
vtvehicle 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
vVehicle
image_typeType of vehicle image to use.

Definition at line 3616 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
*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, 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
vVehicle to start/stop
texteffectShould a texteffect be shown?

Definition at line 3003 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
vehgroupthe GUIVehicleGroup representing the vehicle group
Returns
did any window accept vehicle group selection?

Definition at line 3541 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 3508 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
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 3525 of file vehicle_gui.cpp.