|
OpenTTD Source
14.0-beta1
|
#include "stdafx.h"#include "engine_base.h"#include "engine_func.h"#include "station_base.h"#include "network/network.h"#include "articulated_vehicles.h"#include "textbuf_gui.h"#include "command_func.h"#include "company_func.h"#include "vehicle_gui.h"#include "newgrf_engine.h"#include "newgrf_text.h"#include "group.h"#include "string_func.h"#include "strings_func.h"#include "window_func.h"#include "timer/timer_game_calendar.h"#include "vehicle_func.h"#include "widgets/dropdown_func.h"#include "engine_gui.h"#include "cargotype.h"#include "core/geometry_func.hpp"#include "autoreplace_func.h"#include "engine_cmd.h"#include "train_cmd.h"#include "vehicle_cmd.h"#include "zoom_func.h"#include "querystring_gui.h"#include "stringfilter_type.h"#include "hotkeys.h"#include "widgets/build_vehicle_widget.h"#include "table/strings.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | BuildVehicleWindow |
| GUI for building vehicles. More... | |
Enumerations | |
| enum | BuildVehicleHotkeys { BVHK_FOCUS_FILTER_BOX } |
| Enum referring to the Hotkeys in the build vehicle window. More... | |
Functions | |
| uint | GetEngineListHeight (VehicleType type) |
| Get the height of a single 'entry' in the engine lists. More... | |
| static bool | EngineNumberSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by engineID. More... | |
| static bool | EngineIntroDateSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by introduction date. More... | |
| static bool | EngineNameSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by name. More... | |
| static bool | EngineReliabilitySorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by reliability. More... | |
| static bool | EngineCostSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by purchase cost. More... | |
| static bool | EngineSpeedSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by speed. More... | |
| static bool | EnginePowerSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by power. More... | |
| static bool | EngineTractiveEffortSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by tractive effort. More... | |
| static bool | EngineRunningCostSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by running costs. More... | |
| static bool | EnginePowerVsRunningCostSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of engines by running costs. More... | |
| static bool | TrainEngineCapacitySorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of train engines by capacity. More... | |
| static bool | TrainEnginesThenWagonsSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of train engines by engine / wagon. More... | |
| static bool | RoadVehEngineCapacitySorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of road vehicles by capacity. More... | |
| static bool | ShipEngineCapacitySorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of ships by capacity. More... | |
| static bool | AircraftEngineCargoSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of aircraft by cargo. More... | |
| static bool | AircraftRangeSorter (const GUIEngineListItem &a, const GUIEngineListItem &b) |
| Determines order of aircraft by range. More... | |
| static bool CDECL | CargoAndEngineFilter (const GUIEngineListItem *item, const CargoID cid) |
| Filters vehicles by cargo and engine (in case of rail vehicle). | |
| static uint | GetCargoWeight (const CargoArray &cap, VehicleType vtype) |
| static int | DrawCargoCapacityInfo (int left, int right, int y, TestedEngineDetails &te, bool refittable) |
| static int | DrawRailWagonPurchaseInfo (int left, int right, int y, EngineID engine_number, const RailVehicleInfo *rvi, TestedEngineDetails &te) |
| static int | DrawRailEnginePurchaseInfo (int left, int right, int y, EngineID engine_number, const RailVehicleInfo *rvi, TestedEngineDetails &te) |
| static int | DrawRoadVehPurchaseInfo (int left, int right, int y, EngineID engine_number, TestedEngineDetails &te) |
| static int | DrawShipPurchaseInfo (int left, int right, int y, EngineID engine_number, bool refittable, TestedEngineDetails &te) |
| static int | DrawAircraftPurchaseInfo (int left, int right, int y, EngineID engine_number, bool refittable, TestedEngineDetails &te) |
| Draw aircraft specific details in the buy window. More... | |
| static std::optional< std::string > | GetNewGRFAdditionalText (EngineID engine) |
| Try to get the NewGRF engine additional text callback as an optional std::string. More... | |
| static uint | ShowAdditionalText (int left, int right, int y, EngineID engine) |
| Display additional text from NewGRF in the purchase information window. 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 | DrawEngineList (VehicleType type, const Rect &r, const GUIEngineList &eng_list, uint16_t min, uint16_t max, EngineID selected_id, bool show_count, GroupID selected_group) |
| Engine drawing loop. More... | |
| void | DisplayVehicleSortDropDown (Window *w, VehicleType vehicle_type, int selected, WidgetID button) |
| Display the dropdown for the vehicle sort criteria. More... | |
| void | ShowBuildVehicleWindow (TileIndex tile, VehicleType type) |
Variables | |
| static constexpr NWidgetPart | _nested_build_vehicle_widgets [] |
| bool | _engine_sort_direction |
false = descending, true = ascending. | |
| byte | _engine_sort_last_criteria [] = {0, 0, 0, 0} |
| Last set sort criteria, for each vehicle type. | |
| bool | _engine_sort_last_order [] = {false, false, false, false} |
| Last set direction of the sort order, for each vehicle type. | |
| bool | _engine_sort_show_hidden_engines [] = {false, false, false, false} |
| Last set 'show hidden engines' setting for each vehicle type. | |
| static CargoID | _engine_sort_last_cargo_criteria [] = {CargoFilterCriteria::CF_ANY, CargoFilterCriteria::CF_ANY, CargoFilterCriteria::CF_ANY, CargoFilterCriteria::CF_ANY} |
| Last set filter criteria, for each vehicle type. | |
| static EngineID | _last_engine [2] = { INVALID_ENGINE, INVALID_ENGINE } |
| EngList_SortTypeFunction *const | _engine_sort_functions [][11] |
| Sort functions for the vehicle sort criteria, for each vehicle type. | |
| const StringID | _engine_sort_listing [][12] |
| Dropdown menu strings for the vehicle sort criteria. | |
| static GUIEngineList::FilterFunction *const | _filter_funcs [] |
| static WindowDesc | _build_vehicle_desc (__FILE__, __LINE__, WDP_AUTO, "build_vehicle", 240, 268, WC_BUILD_VEHICLE, WC_NONE, WDF_CONSTRUCTION, std::begin(_nested_build_vehicle_widgets), std::end(_nested_build_vehicle_widgets), &BuildVehicleWindow::hotkeys) |
GUI for building vehicles.
Definition in file build_vehicle_gui.cpp.
| enum BuildVehicleHotkeys |
Enum referring to the Hotkeys in the build vehicle window.
| Enumerator | |
|---|---|
| BVHK_FOCUS_FILTER_BOX | Focus the edit box for editing the filter string. |
Definition at line 1115 of file build_vehicle_gui.cpp.
|
static |
Determines order of aircraft by cargo.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 395 of file build_vehicle_gui.cpp.
References GUIEngineListItem::engine_id, and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of aircraft by range.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 423 of file build_vehicle_gui.cpp.
| 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 1098 of file build_vehicle_gui.cpp.
References _settings_game, VehicleSettings::roadveh_acceleration_model, VEH_ROAD, and GameSettings::vehicle.
|
static |
Draw aircraft specific details in the buy window.
| left | Left edge of the window to draw in. |
| right | Right edge of the window to draw in. |
| y | Top of the area to draw in. |
| engine_number | Engine to display. |
| refittable | If set, the aircraft can be refitted. |
Definition at line 802 of file build_vehicle_gui.cpp.
| void DrawEngineList | ( | VehicleType | type, |
| const Rect & | r, | ||
| const GUIEngineList & | eng_list, | ||
| uint16_t | min, | ||
| uint16_t | max, | ||
| EngineID | selected_id, | ||
| bool | show_count, | ||
| GroupID | selected_group | ||
| ) |
Engine drawing loop.
| type | Type of vehicle (VEH_*) |
| r | The Rect of the list |
| eng_list | What engines to draw |
| min | where to start in the list |
| max | where in the list to end |
| 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 1003 of file build_vehicle_gui.cpp.
| 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.
| left,right,y | location where to draw the info |
| engine_number | the engine of which to draw the info of |
Definition at line 916 of file build_vehicle_gui.cpp.
Referenced by ReplaceVehicleWindow::OnPaint(), and BuildVehicleWindow::OnPaint().
|
static |
Determines order of engines by purchase cost.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 188 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of engines by introduction date.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 122 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of engines by name.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 142 of file build_vehicle_gui.cpp.
References GUIEngineListItem::engine_id.
|
static |
Determines order of engines by engineID.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 109 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
Referenced by EngineCostSorter(), EngineIntroDateSorter(), EnginePowerSorter(), EnginePowerVsRunningCostSorter(), EngineReliabilitySorter(), EngineRunningCostSorter(), EngineSpeedSorter(), EngineTractiveEffortSorter(), ReplaceVehicleWindow::GenerateReplaceVehList(), RoadVehEngineCapacitySorter(), and ShipEngineCapacitySorter().
|
static |
Determines order of engines by power.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 222 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of engines by running costs.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 273 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), EngineRunningCostSorter(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Engine::GetPower(), and Engine::GetRunningCost().
|
static |
Determines order of engines by reliability.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 171 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of engines by running costs.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 256 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
Referenced by EnginePowerVsRunningCostSorter().
|
static |
Determines order of engines by speed.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 205 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
|
static |
Determines order of engines by tractive effort.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 239 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get().
| 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 52 of file build_vehicle_gui.cpp.
References EIT_PURCHASE, FS_NORMAL, GetCharacterHeight(), GetVehicleImageCellSize(), and WidgetDimensions::scaled.
|
static |
Try to get the NewGRF engine additional text callback as an optional std::string.
| engine | The engine whose additional text to get. |
Definition at line 863 of file build_vehicle_gui.cpp.
Referenced by BuildVehicleWindow::FilterByText().
|
static |
Determines order of road vehicles by capacity.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 354 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), and GetTotalCapacityOfArticulatedParts().
|
static |
Determines order of ships by capacity.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 373 of file build_vehicle_gui.cpp.
References _engine_sort_direction, GUIEngineListItem::engine_id, EngineNumberSorter(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), and Engine::GetDisplayDefaultCapacity().
|
static |
Display additional text from NewGRF in the purchase information window.
| left | Left border of text bounding box |
| right | Right border of text bounding box |
| y | Top border of text bounding box |
| engine | Engine to query the additional purchase information for |
Definition at line 888 of file build_vehicle_gui.cpp.
|
static |
Determines order of train engines by capacity.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 315 of file build_vehicle_gui.cpp.
|
static |
Determines order of train engines by engine / wagon.
| a | first engine to compare |
| b | second engine to compare |
Definition at line 335 of file build_vehicle_gui.cpp.
|
static |
Definition at line 552 of file build_vehicle_gui.cpp.