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

Functions/classes shared between the different vehicle list GUIs. More...

#include "cargo_type.h"
#include "timer/timer_game_calendar.h"
#include "economy_type.h"
#include "sortlist_type.h"
#include "vehicle_base.h"
#include "vehiclelist.h"
#include "window_gui.h"
#include "dropdown_type.h"

Go to the source code of this file.

Data Structures

struct  GUIVehicleGroup
 
struct  BaseVehicleListWindow
 
struct  CargoIconOverlay
 
struct  Sorting
 

Typedefs

typedef GUIList< const Vehicle *, std::nullptr_t, CargoIDGUIVehicleList
 
typedef GUIList< GUIVehicleGroup, std::nullptr_t, CargoIDGUIVehicleGroupList
 

Functions

bool ShowCargoIconOverlay ()
 Test if cargo icon overlays should be drawn.
 
void AddCargoIconOverlay (std::vector< CargoIconOverlay > &overlays, int x, int width, const Vehicle *v)
 Add a cargo icon to the list of overlays.
 
void DrawCargoIconOverlay (int x, int y, CargoID cid)
 Draw a cargo icon overlaying an existing sprite, with a black contrast outline.
 
void DrawCargoIconOverlays (std::span< const CargoIconOverlay > overlays, int y)
 Draw a list of cargo icon overlays.
 
uint GetVehicleListHeight (VehicleType type, uint divisor=1)
 Get the height of a vehicle in the vehicle list GUIs.
 

Variables

BaseVehicleListWindow::GroupBy _grouping [VLT_END][VEH_COMPANY_END]
 
Sorting _sorting [BaseVehicleListWindow::GB_END]
 

Detailed Description

Functions/classes shared between the different vehicle list GUIs.

Definition in file vehicle_gui_base.h.

Typedef Documentation

◆ GUIVehicleGroupList

Definition at line 65 of file vehicle_gui_base.h.

◆ GUIVehicleList

typedef GUIList<const Vehicle*, std::nullptr_t, CargoID> GUIVehicleList

Definition at line 22 of file vehicle_gui_base.h.

Function Documentation

◆ AddCargoIconOverlay()

void AddCargoIconOverlay ( std::vector< CargoIconOverlay > &  overlays,
int  x,
int  width,
const Vehicle v 
)

Add a cargo icon to the list of overlays.

Parameters
overlaysList of overlays.
xHorizontal position.
widthWidth available.
vVehicle to add.

Definition at line 348 of file vehicle_gui.cpp.

References _current_text_dir, Vehicle::cargo_cap, Vehicle::cargo_type, Vehicle::IsArticulatedPart(), Vehicle::Previous(), and TD_RTL.

Referenced by DrawRoadVehImage(), and DrawTrainImage().

◆ DrawCargoIconOverlay()

void DrawCargoIconOverlay ( int  x,
int  y,
CargoID  cid 
)

Draw a cargo icon overlaying an existing sprite, with a black contrast outline.

Parameters
xHorizontal position from left.
yVertical position from top.
cidCargo ID to draw icon for.

Definition at line 371 of file vehicle_gui.cpp.

References DrawSprite(), CargoSpec::Get(), CargoSpec::GetCargoIcon(), GetSpriteSize(), IsValidCargoID(), PALETTE_ALL_BLACK, ScaleGUITrad(), and ShowCargoIconOverlay().

Referenced by DrawAircraftImage(), DrawCargoIconOverlays(), and DrawShipImage().

◆ DrawCargoIconOverlays()

void DrawCargoIconOverlays ( std::span< const CargoIconOverlay overlays,
int  y 
)

Draw a list of cargo icon overlays.

Parameters
overlaysList of overlays.
yVertical position.

Definition at line 400 of file vehicle_gui.cpp.

References DrawCargoIconOverlay().

Referenced by DrawRoadVehImage(), and DrawTrainImage().

◆ GetVehicleListHeight()

uint GetVehicleListHeight ( VehicleType  type,
uint  divisor 
)

Get the height of a vehicle in the vehicle list GUIs.

Parameters
typethe vehicle type to look at
divisorthe resulting height must be dividable by this
Returns
the height

Definition at line 1751 of file vehicle_gui.cpp.

References FS_SMALL, GetCharacterHeight(), GetVehicleHeight(), WidgetDimensions::matrix, WidgetDimensions::scaled, ScaleGUITrad(), VEH_SHIP, and RectPadding::Vertical().

Referenced by VehicleGroupWindow::UpdateWidgetSize(), and VehicleListWindow::UpdateWidgetSize().

◆ ShowCargoIconOverlay()

bool ShowCargoIconOverlay ( )

Test if cargo icon overlays should be drawn.

Returns
true iff cargo icon overlays should be drawn.

Definition at line 336 of file vehicle_gui.cpp.

References _ctrl_pressed, and _shift_pressed.

Referenced by DrawCargoIconOverlay(), DrawRoadVehImage(), DrawTrainImage(), DepotWindow::OnMouseLoop(), VehicleGroupWindow::OnMouseLoop(), and VehicleListWindow::OnMouseLoop().

Variable Documentation

◆ _grouping

BaseVehicleListWindow::GroupBy _grouping[VLT_END][VEH_COMPANY_END]
extern

Definition at line 52 of file vehicle_gui.cpp.

◆ _sorting

Sorting _sorting[BaseVehicleListWindow::GB_END]
extern

Definition at line 53 of file vehicle_gui.cpp.