OpenTTD Source  1.11.2
vehicle_gui.cpp File Reference
#include "stdafx.h"
#include "debug.h"
#include "company_func.h"
#include "gui.h"
#include "textbuf_gui.h"
#include "command_func.h"
#include "vehicle_gui_base.h"
#include "viewport_func.h"
#include "newgrf_text.h"
#include "newgrf_debug.h"
#include "roadveh.h"
#include "train.h"
#include "aircraft.h"
#include "depot_map.h"
#include "group_gui.h"
#include "strings_func.h"
#include "vehicle_func.h"
#include "autoreplace_gui.h"
#include "string_func.h"
#include "widgets/dropdown_func.h"
#include "timetable.h"
#include "articulated_vehicles.h"
#include "spritecache.h"
#include "core/geometry_func.hpp"
#include "company_base.h"
#include "engine_func.h"
#include "station_base.h"
#include "tilehighlight_func.h"
#include "zoom_func.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  RefitOption
 Option to refit a vehicle chain. More...
 
struct  RefitWindow
 Refit cargo window. More...
 
struct  VehicleListWindow
 Window for the (old) vehicle listing. More...
 
struct  VehicleDetailsWindow
 Class for managing the vehicle details window. More...
 
struct  VehicleViewWindow
 Window manager class for viewing a vehicle. More...
 

Typedefs

typedef std::vector< RefitOptionSubtypeList
 List of refit subtypes associated to a cargo.
 

Enumerations

enum  VehicleCommandTranslation { VCT_CMD_START_STOP = 0, VCT_CMD_CLONE_VEH, VCT_CMD_TURN_AROUND }
 Command indices for the _vehicle_command_translation_table.
 

Functions

template<BaseVehicleListWindow::VehicleIndividualSortFunction func>
static bool VehicleIndividualToGroupSorterWrapper (GUIVehicleGroup const &a, GUIVehicleGroup const &b)
 Wrapper to convert a VehicleIndividualSortFunction to a VehicleGroupSortFunction.
 
uint CountDigitsForAllocatingSpace (uint number)
 Get the number of digits of space required for the given number. More...
 
uint GetUnitNumberDigits (VehicleList &vehicles)
 Get the number of digits the biggest unit number of a set of vehicles has. More...
 
void DepotSortList (VehicleList *list)
 
static void DrawVehicleProfitButton (Date age, Money display_profit_last_year, uint num_vehicles, int x, int y)
 draw the vehicle profit button in the vehicle list window.
 
byte GetBestFittingSubType (Vehicle *v_from, Vehicle *v_for, CargoID dest_cargo_type)
 Get the best fitting subtype when 'cloning'/'replacing' v_from with v_for. More...
 
static void DrawVehicleRefitWindow (const SubtypeList list[NUM_CARGO], const int sel[2], uint pos, uint rows, uint delta, const Rect &r)
 Draw the list of available refit options for a consist and highlight the selected refit option (if any). More...
 
void ShowVehicleRefitWindow (const Vehicle *v, VehicleOrderID order, Window *parent, bool auto_refit)
 Show the refit window for a vehicle. More...
 
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.
 
static bool VehicleGroupLengthSorter (const GUIVehicleGroup &a, const GUIVehicleGroup &b)
 Sort vehicle groups by the number of vehicles in the group.
 
static bool VehicleGroupTotalProfitThisYearSorter (const GUIVehicleGroup &a, const GUIVehicleGroup &b)
 Sort vehicle groups by the total profit this year.
 
static bool VehicleGroupTotalProfitLastYearSorter (const GUIVehicleGroup &a, const GUIVehicleGroup &b)
 Sort vehicle groups by the total profit last year.
 
static bool VehicleGroupAverageProfitThisYearSorter (const GUIVehicleGroup &a, const GUIVehicleGroup &b)
 Sort vehicle groups by the average profit this year.
 
static bool VehicleGroupAverageProfitLastYearSorter (const GUIVehicleGroup &a, const GUIVehicleGroup &b)
 Sort vehicle groups by the average profit last year.
 
static bool VehicleNumberSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their number.
 
static bool VehicleNameSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their name.
 
static bool VehicleAgeSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their age.
 
static bool VehicleProfitThisYearSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by this year profit.
 
static bool VehicleProfitLastYearSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by last year profit.
 
static bool VehicleCargoSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their cargo.
 
static bool VehicleReliabilitySorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their reliability.
 
static bool VehicleMaxSpeedSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their max speed.
 
static bool VehicleModelSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by model.
 
static bool VehicleValueSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their value.
 
static bool VehicleLengthSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by their length.
 
static bool VehicleTimeToLiveSorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by the time they can still live.
 
static bool VehicleTimetableDelaySorter (const Vehicle *const &a, const Vehicle *const &b)
 Sort vehicles by the timetable delay.
 
void InitializeGUI ()
 
static void ChangeVehicleWindow (WindowClass window_class, VehicleID from_index, VehicleID to_index)
 Assign a vehicle window a new vehicle. More...
 
void ChangeVehicleViewWindow (VehicleID from_index, VehicleID to_index)
 Report a change in vehicle IDs (due to autoreplace) to affected vehicle windows. More...
 
static void DrawSmallOrderList (const Vehicle *v, int left, int right, int y, uint order_arrow_width, VehicleOrderID start)
 
static void DrawSmallOrderList (const Order *order, int left, int right, int y, uint order_arrow_width)
 Draw small order list in the vehicle GUI, but without the little black arrow. More...
 
void DrawVehicleImage (const Vehicle *v, int left, int right, int y, VehicleID selection, EngineImageType image_type, int skip)
 Draws an image of a vehicle chain. More...
 
uint GetVehicleListHeight (VehicleType type, uint divisor)
 Get the height of a vehicle in the vehicle list GUIs. More...
 
static void ShowVehicleListWindowLocal (CompanyID company, VehicleListType vlt, VehicleType vehicle_type, uint32 unique_number)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type)
 
void ShowVehicleListWindow (const Vehicle *v)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type, StationID station)
 
void ShowVehicleListWindow (CompanyID company, VehicleType vehicle_type, TileIndex depot_tile)
 
int GetTrainDetailsWndVScroll (VehicleID veh_id, TrainDetailsWindowTabs det_tab)
 Determines the number of lines in the train details window. More...
 
void DrawTrainDetails (const Train *v, int left, int right, int y, int vscroll_pos, uint16 vscroll_cap, TrainDetailsWindowTabs det_tab)
 Draw the details for the given vehicle at the given position. More...
 
void DrawRoadVehDetails (const Vehicle *v, int left, int right, int y)
 Draw the details for the given vehicle at the given position. More...
 
void DrawShipDetails (const Vehicle *v, int left, int right, int y)
 Draw the details for the given vehicle at the given position. More...
 
void DrawAircraftDetails (const Aircraft *v, int left, int right, int y)
 Draw the details for the given vehicle at the given position. More...
 
static void ShowVehicleDetailsWindow (const Vehicle *v)
 Shows the vehicle details window of the given vehicle.
 
void CcStartStopVehicle (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd)
 This is the Callback method after attempting to start/stop a vehicle. More...
 
void StartStopVehicle (const Vehicle *v, bool texteffect)
 Executes CMD_START_STOP_VEHICLE for given vehicle. More...
 
static bool IsVehicleRefitable (const Vehicle *v)
 Checks whether the vehicle may be refitted at the moment.
 
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...
 
void StopGlobalFollowVehicle (const Vehicle *v)
 
void CcBuildPrimaryVehicle (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd)
 This is the Callback method after the construction attempt of a primary vehicle. 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...
 
void SetMouseCursorVehicle (const Vehicle *v, EngineImageType image_type)
 Set the mouse cursor to look like a vehicle. More...
 

Variables

BaseVehicleListWindow::GroupBy _grouping [VLT_END][VEH_COMPANY_END]
 
Sorting _sorting [BaseVehicleListWindow::GB_END]
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleNumberSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleNameSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleAgeSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleProfitThisYearSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleProfitLastYearSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleCargoSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleReliabilitySorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleMaxSpeedSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleModelSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleValueSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleLengthSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleTimeToLiveSorter
 
static BaseVehicleListWindow::VehicleIndividualSortFunction VehicleTimetableDelaySorter
 
static BaseVehicleListWindow::VehicleGroupSortFunction VehicleGroupLengthSorter
 
static BaseVehicleListWindow::VehicleGroupSortFunction VehicleGroupTotalProfitThisYearSorter
 
static BaseVehicleListWindow::VehicleGroupSortFunction VehicleGroupTotalProfitLastYearSorter
 
static BaseVehicleListWindow::VehicleGroupSortFunction VehicleGroupAverageProfitThisYearSorter
 
static BaseVehicleListWindow::VehicleGroupSortFunction VehicleGroupAverageProfitLastYearSorter
 
static const Vehicle_last_vehicle [2] = { nullptr, nullptr }
 
static const uint MAX_REFIT_CYCLE = 256
 Maximum number of refit cycles we try, to prevent infinite loops. More...
 
static const NWidgetPart _nested_vehicle_refit_widgets []
 
static WindowDesc _vehicle_refit_desc (WDP_AUTO, "view_vehicle_refit", 240, 174, WC_VEHICLE_REFIT, WC_VEHICLE_VIEW, WDF_CONSTRUCTION, _nested_vehicle_refit_widgets, lengthof(_nested_vehicle_refit_widgets))
 
static const NWidgetPart _nested_vehicle_list []
 
static WindowDesc _vehicle_list_other_desc (WDP_AUTO, "list_vehicles", 260, 246, WC_INVALID, WC_NONE, 0, _nested_vehicle_list, lengthof(_nested_vehicle_list))
 
static WindowDesc _vehicle_list_train_desc (WDP_AUTO, "list_vehicles_train", 325, 246, WC_TRAINS_LIST, WC_NONE, 0, _nested_vehicle_list, lengthof(_nested_vehicle_list))
 
static const NWidgetPart _nested_nontrain_vehicle_details_widgets []
 Vehicle details widgets (other than train). More...
 
static const NWidgetPart _nested_train_vehicle_details_widgets []
 Train details widgets.
 
static StringID _service_interval_dropdown []
 
static WindowDesc _train_vehicle_details_desc (WDP_AUTO, "view_vehicle_details_train", 405, 178, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, 0, _nested_train_vehicle_details_widgets, lengthof(_nested_train_vehicle_details_widgets))
 Vehicle details window descriptor.
 
static WindowDesc _nontrain_vehicle_details_desc (WDP_AUTO, "view_vehicle_details", 405, 113, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, 0, _nested_nontrain_vehicle_details_widgets, lengthof(_nested_nontrain_vehicle_details_widgets))
 Vehicle details window descriptor for other vehicles than a train.
 
static const NWidgetPart _nested_vehicle_view_widgets []
 Vehicle view widgets.
 
static WindowDesc _vehicle_view_desc (WDP_AUTO, "view_vehicle", 250, 116, WC_VEHICLE_VIEW, WC_NONE, 0, _nested_vehicle_view_widgets, lengthof(_nested_vehicle_view_widgets))
 Vehicle view window descriptor for all vehicles but trains.
 
static WindowDesc _train_view_desc (WDP_AUTO, "view_vehicle_train", 250, 134, WC_VEHICLE_VIEW, WC_NONE, 0, _nested_vehicle_view_widgets, lengthof(_nested_vehicle_view_widgets))
 Vehicle view window descriptor for trains. More...
 
static const ZoomLevel _vehicle_view_zoom_levels []
 Zoom levels for vehicle views indexed by vehicle type. More...
 
static const int VV_INITIAL_VIEWPORT_WIDTH = 226
 
static const int VV_INITIAL_VIEWPORT_HEIGHT = 84
 
static const int VV_INITIAL_VIEWPORT_HEIGHT_TRAIN = 102
 
static const uint32 _vehicle_command_translation_table [][4]
 Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type. More...
 

Detailed Description

The base GUI for all vehicles.

Definition in file vehicle_gui.cpp.

Function Documentation

◆ CcBuildPrimaryVehicle()

void CcBuildPrimaryVehicle ( const CommandCost result,
TileIndex  tile,
uint32  p1,
uint32  p2,
uint32  cmd 
)

This is the Callback method after the construction attempt of a primary vehicle.

Parameters
resultindicates completion (or not) of the operation
tileunused
p1unused
p2unused
cmdunused

Definition at line 3093 of file vehicle_gui.cpp.

References CommandCost::Failed(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get().

◆ CcStartStopVehicle()

void CcStartStopVehicle ( const CommandCost result,
TileIndex  tile,
uint32  p1,
uint32  p2,
uint32  cmd 
)

This is the Callback method after attempting to start/stop a vehicle.

Parameters
resultthe result of the start/stop command
tileunused
p1vehicle ID
p2unused

Definition at line 2593 of file vehicle_gui.cpp.

References _local_company, CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Vehicle::IsPrimaryVehicle(), Vehicle::owner, RemapCoords(), Vehicle::vehstatus, VS_STOPPED, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

◆ ChangeVehicleViewWindow()

void ChangeVehicleViewWindow ( VehicleID  from_index,
VehicleID  to_index 
)

Report a change in vehicle IDs (due to autoreplace) to affected vehicle windows.

Parameters
from_indexthe old vehicle ID
to_indexthe new vehicle ID

Definition at line 1359 of file vehicle_gui.cpp.

References ChangeVehicleWindow(), WC_VEHICLE_DETAILS, WC_VEHICLE_ORDERS, WC_VEHICLE_REFIT, WC_VEHICLE_TIMETABLE, and WC_VEHICLE_VIEW.

◆ ChangeVehicleWindow()

static void ChangeVehicleWindow ( WindowClass  window_class,
VehicleID  from_index,
VehicleID  to_index 
)
inlinestatic

Assign a vehicle window a new vehicle.

Parameters
window_classWindowClass to search for
from_indexthe old vehicle ID
to_indexthe new vehicle ID

Definition at line 1336 of file vehicle_gui.cpp.

References FindWindowById(), ViewportData::follow_vehicle, Window::viewport, and Window::window_number.

Referenced by ChangeVehicleViewWindow().

◆ CountDigitsForAllocatingSpace()

uint CountDigitsForAllocatingSpace ( uint  number)

Get the number of digits of space required for the given number.

Parameters
numberThe number.
Returns
The number of digits to allocate space for.

Definition at line 146 of file vehicle_gui.cpp.

Referenced by GetUnitNumberDigits().

◆ DrawAircraftDetails()

void DrawAircraftDetails ( const Aircraft v,
int  left,
int  right,
int  y 
)

Draw the details for the given vehicle at the given position.

Parameters
vcurrent vehicle
leftThe left most coordinate to draw
rightThe right most coordinate to draw
yThe y coordinate

Definition at line 32 of file aircraft_gui.cpp.

◆ DrawRoadVehDetails()

void DrawRoadVehDetails ( const Vehicle v,
int  left,
int  right,
int  y 
)

Draw the details for the given vehicle at the given position.

Parameters
vcurrent vehicle
leftThe left most coordinate to draw
rightThe right most coordinate to draw
yThe y coordinate

Definition at line 30 of file roadveh_gui.cpp.

◆ DrawShipDetails()

void DrawShipDetails ( const Vehicle v,
int  left,
int  right,
int  y 
)

Draw the details for the given vehicle at the given position.

Parameters
vcurrent vehicle
leftThe left most coordinate to draw
rightThe right most coordinate to draw
yThe y coordinate

Definition at line 64 of file ship_gui.cpp.

◆ DrawSmallOrderList()

static void DrawSmallOrderList ( const Order order,
int  left,
int  right,
int  y,
uint  order_arrow_width 
)
static

Draw small order list in the vehicle GUI, but without the little black arrow.

This is used for shared order groups.

Definition at line 1446 of file vehicle_gui.cpp.

◆ DrawTrainDetails()

void DrawTrainDetails ( const Train v,
int  left,
int  right,
int  y,
int  vscroll_pos,
uint16  vscroll_cap,
TrainDetailsWindowTabs  det_tab 
)

Draw the details for the given vehicle at the given position.

Parameters
vcurrent vehicle
leftThe left most coordinate to draw
rightThe right most coordinate to draw
yThe y coordinate
vscroll_posPosition of scrollbar
vscroll_capNumber of lines currently displayed
det_tabSelected details tab

Definition at line 361 of file train_gui.cpp.

◆ DrawVehicleImage()

void DrawVehicleImage ( const Vehicle v,
int  left,
int  right,
int  y,
VehicleID  selection,
EngineImageType  image_type,
int  skip 
)

Draws an image of a vehicle chain.

Parameters
vFront vehicle
leftThe minimum horizontal position
rightThe maximum horizontal position
yVertical position to draw at
selectionSelected vehicle to draw a frame around
skipNumber of pixels to skip at the front (for scrolling)

Definition at line 1473 of file vehicle_gui.cpp.

Referenced by RefitWindow::DrawWidget().

◆ DrawVehicleRefitWindow()

static void DrawVehicleRefitWindow ( const SubtypeList  list[NUM_CARGO],
const int  sel[2],
uint  pos,
uint  rows,
uint  delta,
const Rect r 
)
static

Draw the list of available refit options for a consist and highlight the selected refit option (if any).

Parameters
listList of subtype options for each (sorted) cargo.
selSelected refit cargo-type in the window
posPosition of the selected item in caller widow
rowsNumber of rows(capacity) in caller window
deltaStep height in caller window
rRectangle of the matrix widget.

Definition at line 418 of file vehicle_gui.cpp.

◆ GetBestFittingSubType()

byte GetBestFittingSubType ( Vehicle v_from,
Vehicle v_for,
CargoID  dest_cargo_type 
)

Get the best fitting subtype when 'cloning'/'replacing' v_from with v_for.

All articulated parts of both vehicles are tested to find a possibly shared subtype. For v_for only vehicle refittable to dest_cargo_type are considered.

Parameters
v_fromthe vehicle to match the subtype from
v_forthe vehicle to get the subtype for
dest_cargo_typeDestination cargo type.
Returns
the best sub type

Definition at line 317 of file vehicle_gui.cpp.

References EngineInfo::callback_mask, Engine::CanCarryCargo(), CBM_VEHICLE_CARGO_SUFFIX, GetCargoSubtypeText(), Vehicle::GetEngine(), Vehicle::GetFirstEnginePart(), Vehicle::GetNextArticulatedPart(), Vehicle::HasArticulatedPart(), HasBit(), include(), and MAX_REFIT_CYCLE.

Referenced by LinkRefresher::HandleRefit().

◆ GetSingleVehicleWidth()

int GetSingleVehicleWidth ( const Vehicle v,
EngineImageType  image_type 
)

◆ GetTrainDetailsWndVScroll()

◆ 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 165 of file vehicle_gui.cpp.

References CountDigitsForAllocatingSpace().

◆ 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 1490 of file vehicle_gui.cpp.

References FONT_HEIGHT_SMALL, GetVehicleHeight(), ScaleGUITrad(), and VEH_SHIP.

Referenced by VehicleGroupWindow::UpdateWidgetSize(), and VehicleListWindow::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 3130 of file vehicle_gui.cpp.

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

Referenced by RefitWindow::OnResize().

◆ 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 3148 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 1120 of file vehicle_gui.cpp.

References DeleteWindowById(), 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 
)

◆ VehicleClicked()

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 3064 of file vehicle_gui.cpp.

Referenced by VehicleListWindow::OnClick().

Variable Documentation

◆ _nested_nontrain_vehicle_details_widgets

const NWidgetPart _nested_nontrain_vehicle_details_widgets[]
static
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_VD_CAPTION), SetDataTip(STR_VEHICLE_DETAILS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
SetDataTip(AWV_DECREASE, STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP),
SetDataTip(AWV_INCREASE, STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP),
SetDataTip(STR_EMPTY, STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
}

Vehicle details widgets (other than train).

Definition at line 2016 of file vehicle_gui.cpp.

◆ _nested_vehicle_refit_widgets

const NWidgetPart _nested_vehicle_refit_widgets[]
static

◆ _service_interval_dropdown

StringID _service_interval_dropdown[]
static
Initial value:
= {
STR_VEHICLE_DETAILS_DEFAULT,
STR_VEHICLE_DETAILS_DAYS,
STR_VEHICLE_DETAILS_PERCENT,
}

Definition at line 2081 of file vehicle_gui.cpp.

◆ _train_view_desc

WindowDesc _train_view_desc(WDP_AUTO, "view_vehicle_train", 250, 134, WC_VEHICLE_VIEW, WC_NONE, 0, _nested_vehicle_view_widgets, lengthof(_nested_vehicle_view_widgets))
static

Vehicle view window descriptor for trains.

Only minimum_height and default_height are different for train view.

Referenced by ShowVehicleViewWindow().

◆ _vehicle_command_translation_table

const uint32 _vehicle_command_translation_table[][4]
static
Initial value:
= {
{
CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_TRAIN),
CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE),
CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_SHIP),
CMD_START_STOP_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_STOP_START_AIRCRAFT)
},
{
CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN),
CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_ROAD_VEHICLE),
CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_SHIP),
CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_AIRCRAFT)
},
{
CMD_REVERSE_TRAIN_DIRECTION | CMD_MSG(STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN),
CMD_TURN_ROADVEH | CMD_MSG(STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN),
0xffffffff,
0xffffffff
},
}

Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type.

Definition at line 2565 of file vehicle_gui.cpp.

Referenced by StartStopVehicle().

◆ _vehicle_view_zoom_levels

const ZoomLevel _vehicle_view_zoom_levels[]
static
Initial value:

Zoom levels for vehicle views indexed by vehicle type.

Definition at line 2545 of file vehicle_gui.cpp.

◆ MAX_REFIT_CYCLE

const uint MAX_REFIT_CYCLE = 256
static

Maximum number of refit cycles we try, to prevent infinite loops.

And we store only a byte anyway

Definition at line 306 of file vehicle_gui.cpp.

Referenced by RefitWindow::BuildRefitList(), and GetBestFittingSubType().

WD_FRAMERECT_TOP
@ WD_FRAMERECT_TOP
Offset at top to draw the frame rectangular area.
Definition: window_gui.h:62
CMD_MSG
#define CMD_MSG(x)
Used to combine a StringID with the command.
Definition: command_type.h:372
CMD_REVERSE_TRAIN_DIRECTION
@ CMD_REVERSE_TRAIN_DIRECTION
turn a train around
Definition: command_type.h:222
WID_VR_MATRIX
@ WID_VR_MATRIX
Options to refit to.
Definition: vehicle_widget.h:39
SetScrollbar
static NWidgetPart SetScrollbar(int index)
Attach a scrollbar to a widget.
Definition: widget_type.h:1104
WWT_STICKYBOX
@ WWT_STICKYBOX
Sticky box (at top-right of a window, after WWT_DEFSIZEBOX)
Definition: widget_type.h:64
NWID_HSCROLLBAR
@ NWID_HSCROLLBAR
Horizontal scrollbar.
Definition: widget_type.h:81
WWT_CAPTION
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:59
WID_VR_CAPTION
@ WID_VR_CAPTION
Caption of window.
Definition: vehicle_widget.h:34
WWT_DEFSIZEBOX
@ WWT_DEFSIZEBOX
Default window size box (at top-right of a window, between WWT_SHADEBOX and WWT_STICKYBOX)
Definition: widget_type.h:63
NWID_HORIZONTAL
@ NWID_HORIZONTAL
Horizontal container.
Definition: widget_type.h:73
WWT_MATRIX
@ WWT_MATRIX
Grid of rows and columns.
Definition: widget_type.h:57
WID_VD_SERVICE_INTERVAL_DROPDOWN
@ WID_VD_SERVICE_INTERVAL_DROPDOWN
Dropdown to select default/days/percent service interval.
Definition: vehicle_widget.h:51
SetResize
static NWidgetPart SetResize(int16 dx, int16 dy)
Widget part function for setting the resize step.
Definition: widget_type.h:939
WWT_PUSHARROWBTN
@ WWT_PUSHARROWBTN
Normal push-button (no toggle button) with arrow caption.
Definition: widget_type.h:104
CMD_TURN_ROADVEH
@ CMD_TURN_ROADVEH
turn a road vehicle around
Definition: command_type.h:254
SetDataTip
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1023
WID_VR_REFIT
@ WID_VR_REFIT
Perform the refit.
Definition: vehicle_widget.h:42
WID_VR_SHOW_HSCROLLBAR
@ WID_VR_SHOW_HSCROLLBAR
Selection widget for the horizontal scrollbar.
Definition: vehicle_widget.h:36
WID_VR_HSCROLLBAR
@ WID_VR_HSCROLLBAR
Horizontal scrollbar or the vehicle display.
Definition: vehicle_widget.h:37
WID_VD_MIDDLE_DETAILS
@ WID_VD_MIDDLE_DETAILS
Details for non-trains.
Definition: vehicle_widget.h:53
ZOOM_LVL_ROADVEH
@ ZOOM_LVL_ROADVEH
Default zoom level for the road vehicle view.
Definition: zoom_type.h:42
WD_FRAMERECT_BOTTOM
@ WD_FRAMERECT_BOTTOM
Offset at bottom to draw the frame rectangular area.
Definition: window_gui.h:63
WWT_PUSHTXTBTN
@ WWT_PUSHTXTBTN
Normal push-button (no toggle button) with text caption.
Definition: widget_type.h:102
SetMatrixDataTip
static NWidgetPart SetMatrixDataTip(uint8 cols, uint8 rows, StringID tip)
Widget part function for setting the data and tooltip of WWT_MATRIX widgets.
Definition: widget_type.h:1041
WID_VD_TOP_DETAILS
@ WID_VD_TOP_DETAILS
Panel with generic details.
Definition: vehicle_widget.h:48
ZOOM_LVL_AIRCRAFT
@ ZOOM_LVL_AIRCRAFT
Default zoom level for the aircraft view.
Definition: zoom_type.h:39
ZOOM_LVL_SHIP
@ ZOOM_LVL_SHIP
Default zoom level for the ship view.
Definition: zoom_type.h:40
WID_VR_SCROLLBAR
@ WID_VR_SCROLLBAR
Scrollbar for the refit options.
Definition: vehicle_widget.h:40
WID_VR_INFO
@ WID_VR_INFO
Information about the currently selected refit option.
Definition: vehicle_widget.h:41
WID_VD_CAPTION
@ WID_VD_CAPTION
Caption of window.
Definition: vehicle_widget.h:47
NWID_VERTICAL
@ NWID_VERTICAL
Vertical container.
Definition: widget_type.h:75
WID_VD_DECREASE_SERVICING_INTERVAL
@ WID_VD_DECREASE_SERVICING_INTERVAL
Decrease the servicing interval.
Definition: vehicle_widget.h:50
WWT_CLOSEBOX
@ WWT_CLOSEBOX
Close box (at top-left of a window)
Definition: widget_type.h:67
WWT_RESIZEBOX
@ WWT_RESIZEBOX
Resize box (normally at bottom-right of a window)
Definition: widget_type.h:66
CMD_START_STOP_VEHICLE
@ CMD_START_STOP_VEHICLE
start or stop a vehicle
Definition: command_type.h:315
EndContainer
static NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
Definition: widget_type.h:1008
NWID_VSCROLLBAR
@ NWID_VSCROLLBAR
Vertical scrollbar.
Definition: widget_type.h:82
CMD_CLONE_VEHICLE
@ CMD_CLONE_VEHICLE
clone a vehicle
Definition: command_type.h:314
NWidget
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new 'real' widget.
Definition: widget_type.h:1123
SetMinimalSize
static NWidgetPart SetMinimalSize(int16 x, int16 y)
Widget part function for setting the minimal size.
Definition: widget_type.h:956
WID_VR_VEHICLE_PANEL_DISPLAY
@ WID_VR_VEHICLE_PANEL_DISPLAY
Display with a representation of the vehicle to refit.
Definition: vehicle_widget.h:35
WWT_PANEL
@ WWT_PANEL
Simple depressed panel.
Definition: widget_type.h:48
ZOOM_LVL_TRAIN
@ ZOOM_LVL_TRAIN
Default zoom level for the train view.
Definition: zoom_type.h:41
SetFill
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:992
NWID_SELECTION
@ NWID_SELECTION
Stacked widgets, only one visible at a time (eg in a panel with tabs).
Definition: widget_type.h:78
WID_VD_INCREASE_SERVICING_INTERVAL
@ WID_VD_INCREASE_SERVICING_INTERVAL
Increase the servicing interval.
Definition: vehicle_widget.h:49
AWV_INCREASE
@ AWV_INCREASE
Arrow to the right or in case of RTL to the left.
Definition: widget_type.h:36
WID_VD_SERVICING_INTERVAL
@ WID_VD_SERVICING_INTERVAL
Information about the servicing interval.
Definition: vehicle_widget.h:52
WID_VR_SELECT_HEADER
@ WID_VR_SELECT_HEADER
Header with question about the cargo to carry.
Definition: vehicle_widget.h:38
WWT_TEXTBTN
@ WWT_TEXTBTN
(Toggle) Button with text
Definition: widget_type.h:53
INVALID_STRING_ID
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Definition: strings_type.h:17
AWV_DECREASE
@ AWV_DECREASE
Arrow to the left or in case of RTL to the right.
Definition: widget_type.h:35
SetMinimalTextLines
static NWidgetPart SetMinimalTextLines(uint8 lines, uint8 spacing, FontSize size=FS_NORMAL)
Widget part function for setting the minimal text lines.
Definition: widget_type.h:974
WWT_DROPDOWN
@ WWT_DROPDOWN
Drop down list.
Definition: widget_type.h:68
WWT_SHADEBOX
@ WWT_SHADEBOX
Shade box (at top-right of a window, between WWT_DEBUGBOX and WWT_DEFSIZEBOX)
Definition: widget_type.h:62