OpenTTD
Typedefs | Functions | Variables
engine_gui.h File Reference

Engine GUI functions, used by build_vehicle_gui and autoreplace_gui More...

#include "engine_type.h"
#include "sortlist_type.h"
#include "gfx_type.h"
#include "vehicle_type.h"

Go to the source code of this file.

Typedefs

typedef GUIList< EngineID, CargoIDGUIEngineList
 
typedef int CDECL EngList_SortTypeFunction(const EngineID *, const EngineID *)
 argument type for EngList_Sort.
 

Functions

void EngList_Sort (GUIEngineList *el, EngList_SortTypeFunction compare)
 Sort all items using quick sort and given 'CompareItems' function. More...
 
void EngList_SortPartial (GUIEngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items)
 Sort selected range of items (on indices @ <begin, begin+num_items-1>) More...
 
StringID GetEngineCategoryName (EngineID engine)
 Return the category of an engine. More...
 
StringID GetEngineInfoString (EngineID engine)
 Get a multi-line string with some technical data, describing the engine. More...
 
void DrawVehicleEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
 Draw an engine. More...
 
void DrawTrainEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
 
void DrawRoadVehEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
 Draw a road vehicle engine. More...
 
void DrawShipEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
 
void DrawAircraftEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
 
uint GetEngineListHeight (VehicleType type)
 Get the height of a single 'entry' in the engine lists. More...
 
void DisplayVehicleSortDropDown (Window *w, VehicleType vehicle_type, int selected, int button)
 Display the dropdown for the vehicle sort criteria. More...
 

Variables

bool _engine_sort_direction
 false = descending, true = ascending.
 
byte _engine_sort_last_criteria []
 Last set sort criteria, for each vehicle type.
 
bool _engine_sort_last_order []
 Last set direction of the sort order, for each vehicle type.
 
bool _engine_sort_show_hidden_engines []
 Last set 'show hidden engines' setting for each vehicle type.
 
const StringID _engine_sort_listing [][12]
 Dropdown menu strings for the vehicle sort criteria. More...
 
EngList_SortTypeFunction *const _engine_sort_functions [][11]
 Sort functions for the vehicle sort criteria, for each vehicle type. More...
 

Detailed Description

Engine GUI functions, used by build_vehicle_gui and autoreplace_gui

Definition in file engine_gui.h.

Function Documentation

◆ DisplayVehicleSortDropDown()

void DisplayVehicleSortDropDown ( Window w,
VehicleType  vehicle_type,
int  selected,
int  button 
)

Display the dropdown for the vehicle sort criteria.

Parameters
wParent window (holds the dropdown button).
vehicle_typeVehicle type being sorted.
selectedCurrently selected sort criterium.
buttonWidget button.

Definition at line 956 of file build_vehicle_gui.cpp.

References _settings_game, VehicleSettings::roadveh_acceleration_model, VEH_ROAD, and GameSettings::vehicle.

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

◆ DrawRoadVehEngine()

void DrawRoadVehEngine ( int  left,
int  right,
int  preferred_x,
int  y,
EngineID  engine,
PaletteID  pal,
EngineImageType  image_type 
)

Draw a road vehicle engine.

Parameters
leftLeft edge to draw within.
rightRight edge to draw within.
preferred_xPreferred position of the engine.
yVertical position of the engine.
engineEngine to draw
palPalette to use.

Definition at line 146 of file roadveh_cmd.cpp.

◆ DrawVehicleEngine()

void DrawVehicleEngine ( int  left,
int  right,
int  preferred_x,
int  y,
EngineID  engine,
PaletteID  pal,
EngineImageType  image_type 
)

Draw an engine.

Parameters
leftMinimum horizontal position to use for drawing the engine
rightMaximum horizontal position to use for drawing the engine
preferred_xHorizontal position to use for drawing the engine.
yVertical position to use for drawing the engine.
engineEngine to draw.
palPalette to use for drawing.

Definition at line 296 of file engine_gui.cpp.

◆ EngList_Sort()

void EngList_Sort ( GUIEngineList el,
EngList_SortTypeFunction  compare 
)

Sort all items using quick sort and given 'CompareItems' function.

Parameters
ellist to be sorted
comparefunction for evaluation of the quicksort

Definition at line 326 of file engine_gui.cpp.

References SmallVector< T, S >::Begin(), SmallVector< T, S >::Length(), and QSortT().

◆ EngList_SortPartial()

void EngList_SortPartial ( GUIEngineList el,
EngList_SortTypeFunction  compare,
uint  begin,
uint  num_items 
)

Sort selected range of items (on indices @ <begin, begin+num_items-1>)

Parameters
ellist to be sorted
comparefunction for evaluation of the quicksort
beginstart of sorting
num_itemscount of items to be sorted

Definition at line 342 of file engine_gui.cpp.

◆ GetEngineCategoryName()

StringID GetEngineCategoryName ( EngineID  engine)

Return the category of an engine.

Parameters
engineEngine to examine.
Returns
String describing the category ("road veh", "train". "airplane", or "ship") of the engine.

Definition at line 39 of file engine_gui.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), and Engine::type.

Referenced by EnginePreviewWindow::DrawWidget().

◆ GetEngineInfoString()

StringID GetEngineInfoString ( EngineID  engine)

Get a multi-line string with some technical data, describing the engine.

Parameters
engineEngine to describe.
Returns
String describing the engine.
Postcondition
DParam array is set up for printing the string.

Definition at line 266 of file engine_gui.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Engine::type, and VEH_TRAIN.

◆ GetEngineListHeight()

uint GetEngineListHeight ( VehicleType  type)

Get the height of a single 'entry' in the engine lists.

Parameters
typethe vehicle type to get the height of
Returns
the height for the entry

Definition at line 47 of file build_vehicle_gui.cpp.

References EIT_PURCHASE, FONT_HEIGHT_NORMAL, GetVehicleImageCellSize(), VehicleCellSize::height, WD_MATRIX_BOTTOM, and WD_MATRIX_TOP.

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

Variable Documentation

◆ _engine_sort_functions

EngList_SortTypeFunction* const _engine_sort_functions[][11]

Sort functions for the vehicle sort criteria, for each vehicle type.

Definition at line 420 of file build_vehicle_gui.cpp.

◆ _engine_sort_listing

const StringID _engine_sort_listing[][12]

Dropdown menu strings for the vehicle sort criteria.

Definition at line 470 of file build_vehicle_gui.cpp.

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