|
OpenTTD Source 20251117-master-g7398d2e290
|
Engine GUI functions, used by build_vehicle_gui and autoreplace_gui More...
#include "engine_type.h"#include "group_type.h"#include "newgrf_badge_gui.h"#include "sortlist_type.h"#include "gfx_type.h"#include "vehicle_type.h"#include "engine_base.h"Go to the source code of this file.
Data Structures | |
| struct | GUIEngineListItem |
Typedefs | |
| typedef GUIList< GUIEngineListItem, std::nullptr_t, CargoType > | GUIEngineList |
| typedef bool | EngList_SortTypeFunction(const GUIEngineListItem &, const GUIEngineListItem &) |
| argument type for EngList_Sort. | |
Functions | |
| void | EngList_Sort (GUIEngineList &el, EngList_SortTypeFunction compare) |
| Sort all items using quick sort and given 'CompareItems' function. | |
| void | EngList_SortPartial (GUIEngineList &el, EngList_SortTypeFunction compare, size_t begin, size_t num_items) |
| Sort selected range of items (on indices @ <begin, begin+num_items-1>) | |
| StringID | GetEngineCategoryName (EngineID engine) |
| Return the category of an engine. | |
| std::string | GetEngineInfoString (EngineID engine) |
| Get a multi-line string with some technical data, describing the engine. | |
| void | DrawVehicleEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type) |
| Draw an engine. | |
| 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. | |
| 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. | |
| void | DisplayVehicleSortDropDown (Window *w, VehicleType vehicle_type, int selected, WidgetID button) |
| Display the dropdown for the vehicle sort criteria. | |
| void | DrawEngineList (VehicleType type, const Rect &r, const GUIEngineList &eng_list, const Scrollbar &sb, EngineID selected_id, bool show_count, GroupID selected_group, const GUIBadgeClasses &badge_classes) |
| Engine drawing loop. | |
| void | GUIEngineListAddChildren (GUIEngineList &dst, const GUIEngineList &src, EngineID parent=EngineID::Invalid(), uint8_t indent=0) |
| Add children to GUI engine list to build a hierarchical tree. | |
Variables | |
| bool | _engine_sort_direction |
false = descending, true = ascending. | |
| uint8_t | _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 std::initializer_list< const StringID > | _engine_sort_listing [] |
| Dropdown menu strings for the vehicle sort criteria. | |
| EngList_SortTypeFunction *const | _engine_sort_functions [][11] |
| Sort functions for the vehicle sort criteria, for each vehicle type. | |
Engine GUI functions, used by build_vehicle_gui and autoreplace_gui
Definition in file engine_gui.h.
| typedef bool EngList_SortTypeFunction(const GUIEngineListItem &, const GUIEngineListItem &) |
argument type for EngList_Sort.
Definition at line 33 of file engine_gui.h.
| typedef GUIList<GUIEngineListItem, std::nullptr_t, CargoType> GUIEngineList |
Definition at line 31 of file engine_gui.h.
| void DisplayVehicleSortDropDown | ( | Window * | w, |
| VehicleType | vehicle_type, | ||
| int | selected, | ||
| WidgetID | button | ||
| ) |
Display the dropdown for the vehicle sort criteria.
| w | Parent window (holds the dropdown button). |
| vehicle_type | Vehicle type being sorted. |
| selected | Currently selected sort criterium. |
| button | Widget button. |
Definition at line 1099 of file build_vehicle_gui.cpp.
References _engine_sort_listing, _settings_game, VehicleSettings::roadveh_acceleration_model, SetBit(), ShowDropDownMenu(), VehicleSettings::train_acceleration_model, VEH_ROAD, VEH_TRAIN, and GameSettings::vehicle.
Referenced by ReplaceVehicleWindow::OnClick(), and BuildVehicleWindow::OnClick().
| void DrawAircraftEngine | ( | int | left, |
| int | right, | ||
| int | preferred_x, | ||
| int | y, | ||
| EngineID | engine, | ||
| PaletteID | pal, | ||
| EngineImageType | image_type | ||
| ) |
Definition at line 217 of file aircraft_cmd.cpp.
| void DrawEngineList | ( | VehicleType | type, |
| const Rect & | r, | ||
| const GUIEngineList & | eng_list, | ||
| const Scrollbar & | sb, | ||
| EngineID | selected_id, | ||
| bool | show_count, | ||
| GroupID | selected_group, | ||
| const GUIBadgeClasses & | badge_classes | ||
| ) |
Engine drawing loop.
| type | Type of vehicle (VEH_*) |
| r | The Rect of the list |
| eng_list | What engines to draw |
| sb | Scrollbar of list. |
| selected_id | what engine to highlight as selected, if any |
| show_count | Whether to show the amount of engines or not |
| selected_group | the group to list the engines of |
Definition at line 966 of file build_vehicle_gui.cpp.
References _current_text_dir, _local_company, AutoreplaceVehicleInUse, CentreBounds(), Engine::company_hidden, DrawString(), DrawVehicleEngine(), EIT_PURCHASE, EngineHasReplacementForCompany(), VehicleCellSize::extend_left, VehicleCellSize::extend_right, FS_NORMAL, FS_SMALL, WidgetDimensions::fullbevel, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), GetCharacterHeight(), GetColourGradient(), GetEngineListHeight(), GetEnginePalette(), GetGroupNumEngines(), GetScaledSpriteSize(), GetSpriteSize(), GetString(), GetStringBoundingBox(), GetVehicleImageCellSize(), Scrollbar::GetVisibleRangeIterators(), HasBit(), HasVariants, Rect::Height(), WidgetDimensions::hsep_indent, WidgetDimensions::hsep_normal, Rect::Indent(), IsFolded, PackEngineNameDParam(), PALETTE_CRASH, PurchaseList, SA_CENTER, SA_FORCE, SA_RIGHT, WidgetDimensions::scaled, ScaleSpriteTrad(), Shaded, Rect::Shrink(), TC_FORCED, TC_NO_SHADE, TD_RTL, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Rect::Translate(), Rect::WithHeight(), Rect::WithWidth(), and Rect::WithY().
Referenced by ReplaceVehicleWindow::DrawWidget(), and BuildVehicleWindow::DrawWidget().
| void DrawRoadVehEngine | ( | int | left, |
| int | right, | ||
| int | preferred_x, | ||
| int | y, | ||
| EngineID | engine, | ||
| PaletteID | pal, | ||
| EngineImageType | image_type | ||
| ) |
Draw a road vehicle engine.
| left | Left edge to draw within. |
| right | Right edge to draw within. |
| preferred_x | Preferred position of the engine. |
| y | Vertical position of the engine. |
| engine | Engine to draw |
| pal | Palette to use. |
Definition at line 149 of file roadveh_cmd.cpp.
References Clamp(), VehicleSpriteSeq::Draw(), VehicleSpriteSeq::GetBounds(), PALETTE_CRASH, and UnScaleGUI().
Referenced by DrawVehicleEngine().
| void DrawShipEngine | ( | int | left, |
| int | right, | ||
| int | preferred_x, | ||
| int | y, | ||
| EngineID | engine, | ||
| PaletteID | pal, | ||
| EngineImageType | image_type | ||
| ) |
Definition at line 96 of file ship_cmd.cpp.
| void DrawTrainEngine | ( | int | left, |
| int | right, | ||
| int | preferred_x, | ||
| int | y, | ||
| EngineID | engine, | ||
| PaletteID | pal, | ||
| EngineImageType | image_type | ||
| ) |
Definition at line 536 of file train_cmd.cpp.
| void DrawVehicleEngine | ( | int | left, |
| int | right, | ||
| int | preferred_x, | ||
| int | y, | ||
| EngineID | engine, | ||
| PaletteID | pal, | ||
| EngineImageType | image_type | ||
| ) |
Draw an engine.
| left | Minimum horizontal position to use for drawing the engine |
| right | Maximum horizontal position to use for drawing the engine |
| preferred_x | Horizontal position to use for drawing the engine. |
| y | Vertical position to use for drawing the engine. |
| engine | Engine to draw. |
| pal | Palette to use for drawing. |
Definition at line 326 of file engine_gui.cpp.
References DrawRoadVehEngine(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), Engine::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by DrawEngineList(), EnginePreviewWindow::DrawWidget(), and NewsWindow::DrawWidget().
| void EngList_Sort | ( | GUIEngineList & | el, |
| EngList_SortTypeFunction | compare | ||
| ) |
Sort all items using quick sort and given 'CompareItems' function.
| el | list to be sorted |
| compare | function for evaluation of the quicksort |
Definition at line 356 of file engine_gui.cpp.
Referenced by ReplaceVehicleWindow::GenerateReplaceVehList().
| void EngList_SortPartial | ( | GUIEngineList & | el, |
| EngList_SortTypeFunction | compare, | ||
| size_t | begin, | ||
| size_t | num_items | ||
| ) |
Sort selected range of items (on indices @ <begin, begin+num_items-1>)
| el | list to be sorted |
| compare | function for evaluation of the quicksort |
| begin | start of sorting |
| num_items | count of items to be sorted |
Definition at line 369 of file engine_gui.cpp.
Return the category of an engine.
| engine | Engine to examine. |
Definition at line 40 of file engine_gui.cpp.
References BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::GetNthSetBit(), GetRailTypeInfo(), GetRoadTypeInfo(), RoadTypeInfo::new_engine, RailTypeInfo::new_loco, RailVehicleInfo::railtypes, RoadVehicleInfo::roadtype, RailTypeInfo::strings, RoadTypeInfo::strings, Engine::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by EnginePreviewWindow::DrawWidget(), NewVehicleAvailable(), and EnginePreviewWindow::UpdateWidgetSize().
| std::string GetEngineInfoString | ( | EngineID | engine | ) |
Get a multi-line string with some technical data, describing the engine.
| engine | Engine to describe. |
DParam array is set up for printing the string. Definition at line 296 of file engine_gui.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), Engine::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by EnginePreviewWindow::DrawWidget(), NewsWindow::DrawWidget(), EnginePreviewWindow::UpdateWidgetSize(), and NewsWindow::UpdateWidgetSize().
| uint GetEngineListHeight | ( | VehicleType | type | ) |
Get the height of a single 'entry' in the engine lists.
| type | the vehicle type to get the height of |
Definition at line 56 of file build_vehicle_gui.cpp.
References EIT_PURCHASE, FS_NORMAL, GetCharacterHeight(), GetVehicleImageCellSize(), and WidgetDimensions::scaled.
Referenced by DrawEngineList(), ReplaceVehicleWindow::UpdateWidgetSize(), and BuildVehicleWindow::UpdateWidgetSize().
| void GUIEngineListAddChildren | ( | GUIEngineList & | dst, |
| const GUIEngineList & | src, | ||
| EngineID | parent, | ||
| uint8_t | indent | ||
| ) |
Add children to GUI engine list to build a hierarchical tree.
| dst | Destination list. |
| src | Source list. |
| parent | Current tree parent (set by self with recursion). |
| indent | Current tree indentation level (set by self with recursion). |
Definition at line 1122 of file build_vehicle_gui.cpp.
References Engine::display_last_variant, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), GUIEngineListAddChildren(), HasVariants, IsFolded, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset(), and Shaded.
Referenced by ReplaceVehicleWindow::GenerateReplaceVehList(), and GUIEngineListAddChildren().
|
extern |
false = descending, true = ascending.
Definition at line 104 of file build_vehicle_gui.cpp.
Referenced by AircraftEngineCargoSorter(), AircraftRangeSorter(), EngineCostSorter(), EngineIntroDateSorter(), EngineNameSorter(), EngineNumberSorter(), EnginePowerSorter(), EnginePowerVsRunningCostSorter(), EngineReliabilitySorter(), EngineRunningCostSorter(), EngineSpeedSorter(), EngineTractiveEffortSorter(), ReplaceVehicleWindow::GenerateReplaceVehList(), RoadVehEngineCapacitySorter(), ShipEngineCapacitySorter(), TrainEngineCapacitySorter(), and TrainEnginesThenWagonsSorter().
|
extern |
Sort functions for the vehicle sort criteria, for each vehicle type.
Definition at line 441 of file build_vehicle_gui.cpp.
Referenced by ReplaceVehicleWindow::GenerateReplaceVehList().
|
extern |
Last set sort criteria, for each vehicle type.
Definition at line 105 of file build_vehicle_gui.cpp.
Referenced by BuildVehicleWindow::OnDropdownSelect(), ReplaceVehicleWindow::OnDropdownSelect(), and BuildVehicleWindow::OnInvalidateData().
|
extern |
Last set direction of the sort order, for each vehicle type.
Definition at line 106 of file build_vehicle_gui.cpp.
Referenced by ReplaceVehicleWindow::OnClick(), and BuildVehicleWindow::OnClick().
|
extern |
Dropdown menu strings for the vehicle sort criteria.
Definition at line 491 of file build_vehicle_gui.cpp.
Referenced by DisplayVehicleSortDropDown(), ReplaceVehicleWindow::GetWidgetString(), and BuildVehicleWindow::GetWidgetString().
|
extern |
Last set 'show hidden engines' setting for each vehicle type.
Definition at line 107 of file build_vehicle_gui.cpp.
Referenced by ReplaceVehicleWindow::OnClick(), and BuildVehicleWindow::OnClick().