|
OpenTTD Source 20251116-master-g21329071df
|
The base GUI for all vehicles. More...
#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 "dropdown_type.h"#include "dropdown_func.h"#include "timetable.h"#include "articulated_vehicles.h"#include "core/geometry_func.hpp"#include "core/container_func.hpp"#include "company_base.h"#include "engine_func.h"#include "station_base.h"#include "tilehighlight_func.h"#include "zoom_func.h"#include "depot_cmd.h"#include "vehicle_cmd.h"#include "order_cmd.h"#include "roadveh_cmd.h"#include "train_cmd.h"#include "hotkeys.h"#include "group_cmd.h"#include "table/strings.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 | |
| using | RefitOptions = std::map< CargoType, std::vector< RefitOption >, CargoTypeComparator > |
| Available refit options (subtype and string) associated with each cargo type. | |
Enumerations | |
| enum | VehicleCommandTranslation : uint8_t { VCT_CMD_START_STOP = 0 , VCT_CMD_CLONE_VEH , VCT_CMD_TURN_AROUND } |
| Command indices for the _vehicle_command_translation_table. More... | |
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. | |
| uint | GetUnitNumberDigits (VehicleList &vehicles) |
| Get the number of digits the biggest unit number of a set of vehicles has. | |
| static bool | CargoFilterSingle (const Vehicle *v, const CargoType cargo_type) |
| Check whether a single vehicle should pass the filter. | |
| static bool | CargoFilter (const GUIVehicleGroup *vehgroup, const CargoType cargo_type) |
| Check whether a vehicle can carry a specific cargo. | |
| 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, CargoType cargo_type) |
| 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. | |
| void | DepotSortList (VehicleList *list) |
| static void | DrawVehicleProfitButton (TimerGameEconomy::Date age, Money display_profit_last_year, uint num_vehicles, int x, int y) |
| draw the vehicle profit button in the vehicle list window. | |
| uint8_t | GetBestFittingSubType (Vehicle *v_from, Vehicle *v_for, CargoType dest_cargo_type) |
| Get the best fitting subtype when 'cloning'/'replacing' v_from with v_for. | |
| static void | DrawVehicleRefitWindow (const RefitOptions &refits, const RefitOption *sel, 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). | |
| void | ShowVehicleRefitWindow (const Vehicle *v, VehicleOrderID order, Window *parent, bool auto_refit) |
| Show the refit window for a vehicle. | |
| 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. | |
| void | ChangeVehicleViewWindow (VehicleID from_index, VehicleID to_index) |
| Report a change in vehicle IDs (due to autoreplace) to affected vehicle windows. | |
| static void | DrawSmallOrderList (const Vehicle *v, int left, int right, int y, uint order_arrow_width, VehicleOrderID start) |
| static void | DrawSmallOrderList (const OrderList *orderlist, int left, int right, int y, uint order_arrow_width) |
| Draw small order list in the vehicle GUI, but without the little black arrow. | |
| void | DrawVehicleImage (const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type, int skip) |
| Draws an image of a vehicle chain. | |
| uint | GetVehicleListHeight (VehicleType type, uint divisor) |
| Get the height of a vehicle in the vehicle list GUIs. | |
| static int | GetUnitNumberWidth (int digits) |
| Get width required for the formatted unit number display. | |
| static void | ShowVehicleListWindowLocal (CompanyID company, VehicleListType vlt, VehicleType vehicle_type, uint32_t 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. | |
| void | DrawTrainDetails (const Train *v, const Rect &r, int vscroll_pos, uint16_t vscroll_cap, TrainDetailsWindowTabs det_tab) |
| Draw the details for the given vehicle at the given position. | |
| void | DrawRoadVehDetails (const Vehicle *v, const Rect &r) |
| Draw the details for the given vehicle at the given position. | |
| void | DrawShipDetails (const Vehicle *v, const Rect &r) |
| Draw the details for the given vehicle at the given position. | |
| void | DrawAircraftDetails (const Aircraft *v, const Rect &r) |
| Draw the details for the given vehicle at the given position. | |
| static void | ShowVehicleDetailsWindow (const Vehicle *v) |
| Shows the vehicle details window of the given vehicle. | |
| void | CcStartStopVehicle (Commands, const CommandCost &result, VehicleID veh_id, bool) |
| This is the Callback method after attempting to start/stop a vehicle. | |
| void | StartStopVehicle (const Vehicle *v, bool texteffect) |
| Executes CMD_START_STOP_VEHICLE for given vehicle. | |
| static bool | IsVehicleRefittable (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. | |
| bool | VehicleClicked (VehicleList::const_iterator begin, VehicleList::const_iterator end) |
| Dispatch a "vehicle group selected" event if any window waits for it. | |
| bool | VehicleClicked (const GUIVehicleGroup &vehgroup) |
| Dispatch a "vehicle group selected" event if any window waits for it. | |
| void | StopGlobalFollowVehicle (const Vehicle *v) |
| void | CcBuildPrimaryVehicle (Commands, const CommandCost &result, VehicleID new_veh_id, uint, uint16_t, CargoArray) |
| This is the Callback method after the construction attempt of a primary vehicle. | |
| int | GetSingleVehicleWidth (const Vehicle *v, EngineImageType image_type) |
| Get the width of a vehicle (part) in pixels. | |
| int | GetVehicleWidth (const Vehicle *v, EngineImageType image_type) |
| Get the width of a vehicle (including all parts of the consist) in pixels. | |
| void | SetMouseCursorVehicle (const Vehicle *v, EngineImageType image_type) |
| Set the mouse cursor to look like a vehicle. | |
Variables | |
| static std::array< std::array< BaseVehicleListWindow::GroupBy, VEH_COMPANY_END >, VLT_END > | _grouping {} |
| static std::array< Sorting, BaseVehicleListWindow::GB_END > | _sorting {} |
| 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 GUIVehicleGroupList::FilterFunction *const | _vehicle_group_filter_funcs [] |
| 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. | |
| static constexpr std::initializer_list< NWidgetPart > | _nested_vehicle_refit_widgets |
| static WindowDesc | _vehicle_refit_desc (WDP_AUTO, "view_vehicle_refit", 240, 174, WC_VEHICLE_REFIT, WC_VEHICLE_VIEW, WindowDefaultFlag::Construction, _nested_vehicle_refit_widgets) |
| static constexpr std::initializer_list< NWidgetPart > | _nested_vehicle_list |
| static WindowDesc | _vehicle_list_desc [] |
| static constexpr std::initializer_list< NWidgetPart > | _nested_nontrain_vehicle_details_widgets |
| Vehicle details widgets (other than train). | |
| static constexpr std::initializer_list< NWidgetPart > | _nested_train_vehicle_details_widgets |
| Train details widgets. | |
| static const StringID | _service_interval_dropdown_calendar [] |
| static const StringID | _service_interval_dropdown_wallclock [] |
| static WindowDesc | _train_vehicle_details_desc (WDP_AUTO, "view_vehicle_details_train", 405, 178, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, {}, _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, {}, _nested_nontrain_vehicle_details_widgets) |
| Vehicle details window descriptor for other vehicles than a train. | |
| static constexpr std::initializer_list< NWidgetPart > | _nested_vehicle_view_widgets |
| Vehicle view widgets. | |
| static const ZoomLevel | _vehicle_view_zoom_levels [] |
| Zoom levels for vehicle views indexed by vehicle type. | |
| 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 StringID | _vehicle_msg_translation_table [][4] |
| Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type. | |
| static WindowDesc | _vehicle_view_desc (WDP_AUTO, "view_vehicle", 250, 116, WC_VEHICLE_VIEW, WC_NONE, {}, _nested_vehicle_view_widgets, &VehicleViewWindow::hotkeys) |
| 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, {}, _nested_vehicle_view_widgets, &VehicleViewWindow::hotkeys) |
| Vehicle view window descriptor for trains. | |
The base GUI for all vehicles.
Definition in file vehicle_gui.cpp.
| using RefitOptions = std::map<CargoType, std::vector<RefitOption>, CargoTypeComparator> |
Available refit options (subtype and string) associated with each cargo type.
Definition at line 680 of file vehicle_gui.cpp.
| enum VehicleCommandTranslation : uint8_t |
Command indices for the _vehicle_command_translation_table.
Definition at line 2886 of file vehicle_gui.cpp.
| void AddCargoIconOverlay | ( | std::vector< CargoIconOverlay > & | overlays, |
| int | x, | ||
| int | width, | ||
| const Vehicle * | v | ||
| ) |
Add a cargo icon to the list of overlays.
| overlays | List of overlays. |
| x | Horizontal position. |
| width | Width available. |
| v | Vehicle to add. |
Definition at line 349 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().
|
static |
Check whether a vehicle can carry a specific cargo.
| vehgroup | The vehicle group which contains the vehicle to be checked |
| cargo_type | The cargo what we are looking for |
Definition at line 321 of file vehicle_gui.cpp.
References CargoFilterSingle(), GUIVehicleGroup::vehicles_begin, and GUIVehicleGroup::vehicles_end.
Check whether a single vehicle should pass the filter.
| v | The vehicle to check. |
| cargo_type | The cargo to filter for. |
Definition at line 281 of file vehicle_gui.cpp.
References CargoFilterCriteria::CF_ANY, CargoFilterCriteria::CF_FREIGHT, CargoFilterCriteria::CF_NONE, IsCargoInClass(), Vehicle::Next(), and Passengers.
Referenced by CargoFilter().
| void CcBuildPrimaryVehicle | ( | Commands | cmd, |
| const CommandCost & | result, | ||
| VehicleID | new_veh_id, | ||
| uint | , | ||
| uint16_t | , | ||
| CargoArray | |||
| ) |
This is the Callback method after the construction attempt of a primary vehicle.
| result | indicates completion (or not) of the operation |
| new_veh_id | ID of the new vehicle. |
Definition at line 3490 of file vehicle_gui.cpp.
References CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::Get(), and ShowVehicleViewWindow().
| void CcStartStopVehicle | ( | Commands | cmd, |
| const CommandCost & | result, | ||
| VehicleID | veh_id, | ||
| bool | |||
| ) |
This is the Callback method after attempting to start/stop a vehicle.
| result | the result of the start/stop command |
| veh_id | Vehicle ID. |
Definition at line 2919 of file vehicle_gui.cpp.
References _local_company, Ticks::DAY_TICKS, CommandCost::Failed(), GetEncodedString(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::GetIfValid(), Vehicle::IsPrimaryVehicle(), Vehicle::owner, RemapCoords(), Stopped, TE_RISING, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Vehicle::vehstatus, Coord2D< T >::x, Vehicle::x_pos, Coord2D< T >::y, Vehicle::y_pos, and Vehicle::z_pos.
Referenced by StartStopVehicle().
Report a change in vehicle IDs (due to autoreplace) to affected vehicle windows.
| from_index | the old vehicle ID |
| to_index | the new vehicle ID |
Definition at line 1589 of file vehicle_gui.cpp.
References ChangeVehicleWindow(), WC_VEHICLE_DETAILS, WC_VEHICLE_ORDERS, WC_VEHICLE_REFIT, WC_VEHICLE_TIMETABLE, and WC_VEHICLE_VIEW.
Referenced by CopyHeadSpecificThings().
|
inlinestatic |
Assign a vehicle window a new vehicle.
| window_class | WindowClass to search for |
| from_index | the old vehicle ID |
| to_index | the new vehicle ID |
Definition at line 1566 of file vehicle_gui.cpp.
References FindWindowById(), Window::InvalidateData(), Window::viewport, VIWD_AUTOREPLACE, TileHighlightData::window_class, TileHighlightData::window_number, and Window::window_number.
Referenced by ChangeVehicleViewWindow().
| uint CountDigitsForAllocatingSpace | ( | uint | number | ) |
Get the number of digits of space required for the given number.
| number | The number. |
Definition at line 190 of file vehicle_gui.cpp.
Referenced by GetUnitNumberDigits().
| void DepotSortList | ( | VehicleList * | list | ) |
Definition at line 564 of file vehicle_gui.cpp.
Draw the details for the given vehicle at the given position.
| v | current vehicle |
| r | the Rect to draw within |
Definition at line 29 of file aircraft_gui.cpp.
References DrawString(), FS_NORMAL, GetCargoSubtypeText(), GetCharacterHeight(), GetString(), SpecializedVehicle< T, Type >::Next(), PackEngineNameDParam(), WidgetDimensions::scaled, VehicleDetails, and WidgetDimensions::vsep_normal.
Referenced by VehicleDetailsWindow::DrawVehicleDetails().
| void DrawCargoIconOverlay | ( | int | x, |
| int | y, | ||
| CargoType | cargo_type | ||
| ) |
Draw a cargo icon overlaying an existing sprite, with a black contrast outline.
| x | Horizontal position from left. |
| y | Vertical position from top. |
| cargo_type | Cargo type to draw icon for. |
Definition at line 372 of file vehicle_gui.cpp.
References DrawSprite(), CargoSpec::Get(), CargoSpec::GetCargoIcon(), GetSpriteSize(), IsValidCargoType(), PALETTE_ALL_BLACK, ScaleGUITrad(), and ShowCargoIconOverlay().
Referenced by DrawAircraftImage(), DrawCargoIconOverlays(), and DrawShipImage().
| void DrawCargoIconOverlays | ( | std::span< const CargoIconOverlay > | overlays, |
| int | y | ||
| ) |
Draw a list of cargo icon overlays.
| overlays | List of overlays. |
| y | Vertical position. |
Definition at line 401 of file vehicle_gui.cpp.
References DrawCargoIconOverlay().
Referenced by DrawRoadVehImage(), and DrawTrainImage().
Draw the details for the given vehicle at the given position.
| v | current vehicle |
| r | the Rect to draw within |
Definition at line 29 of file roadveh_gui.cpp.
References _sorted_cargo_specs, AppendStringInPlace(), Vehicle::build_year, Vehicle::cargo, Vehicle::cargo_cap, Vehicle::cargo_type, DrawString(), Vehicle::engine_type, FS_NORMAL, GetCargoSubtypeText(), GetCharacterHeight(), VehicleCargoList::GetFeederShare(), VehicleCargoList::GetFirstStation(), GetListSeparator(), GetString(), Vehicle::HasArticulatedPart(), MakeParameters(), Vehicle::Next(), PackEngineNameDParam(), WidgetDimensions::scaled, ScaleSpriteTrad(), VehicleCargoList::StoredCount(), Vehicle::value, VehicleDetails, and WidgetDimensions::vsep_normal.
Referenced by VehicleDetailsWindow::DrawVehicleDetails().
Draw the details for the given vehicle at the given position.
| v | current vehicle |
| r | the Rect to draw within |
Definition at line 62 of file ship_gui.cpp.
References Vehicle::build_year, Vehicle::cargo, Vehicle::cargo_cap, Vehicle::cargo_type, DrawString(), Vehicle::engine_type, FS_NORMAL, GetCargoSubtypeText(), GetCharacterHeight(), VehicleCargoList::GetFeederShare(), VehicleCargoList::GetFirstStation(), GetString(), PackEngineNameDParam(), WidgetDimensions::scaled, VehicleCargoList::StoredCount(), Vehicle::value, VehicleDetails, and WidgetDimensions::vsep_normal.
Referenced by VehicleDetailsWindow::DrawVehicleDetails().
|
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 1684 of file vehicle_gui.cpp.
References _current_text_dir, DrawString(), FS_SMALL, GetCharacterHeight(), GetString(), SA_LEFT, and TD_RTL.
|
static |
Definition at line 1658 of file vehicle_gui.cpp.
|
extern |
Draw the details for the given vehicle at the given position.
| v | current vehicle |
| r | the Rect to draw within |
| vscroll_pos | Position of scrollbar |
| vscroll_cap | Number of lines currently displayed |
| det_tab | Selected details tab |
Definition at line 354 of file train_gui.cpp.
References _cargo_summary, _current_text_dir, _settings_game, _sorted_cargo_specs, Crashed, DIR_E, DIR_W, VehicleSpriteSeq::Draw(), DrawString(), EIT_IN_DETAILS, Vehicle::engine_type, VehicleSettings::freight_trains, FreightWagonMult(), FS_NORMAL, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), GetCargoSummaryOfArticulatedVehicle(), GetCharacterHeight(), GetColourGradient(), Train::GetDisplayImageWidth(), Engine::GetGRF(), Train::GetImage(), SpecializedVehicle< T, Type >::GetNextVehicle(), GetString(), GetVehiclePalette(), GfxFillRect(), Rect::Height(), WidgetDimensions::hsep_normal, Rect::Indent(), Vehicle::IsArticulatedPart(), WidgetDimensions::matrix, SpecializedVehicle< T, Type >::Next(), PALETTE_CRASH, WidgetDimensions::scaled, ScaleSpriteTrad(), TD_RTL, TDW_TAB_CAPACITY, TDW_TAB_CARGO, TDW_TAB_INFO, TDW_TAB_TOTALS, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TRAIN_DETAILS_MAX_INDENT, TRAIN_DETAILS_MIN_INDENT, TrainDetailsCapacityTab(), TrainDetailsCargoTab(), TrainDetailsInfoTab(), GRFFile::traininfo_vehicle_pitch, GameSettings::vehicle, Vehicle::vehstatus, Rect::WithY(), and Coord2D< T >::x.
Referenced by VehicleDetailsWindow::DrawVehicleDetails().
| void DrawVehicleImage | ( | const Vehicle * | v, |
| const Rect & | r, | ||
| VehicleID | selection, | ||
| EngineImageType | image_type, | ||
| int | skip | ||
| ) |
Draws an image of a vehicle chain.
| v | Front vehicle |
| r | Rect to draw at |
| selection | Selected vehicle to draw a frame around |
| skip | Number of pixels to skip at the front (for scrolling) |
Definition at line 1710 of file vehicle_gui.cpp.
References DrawAircraftImage(), DrawRoadVehImage(), DrawShipImage(), DrawTrainImage(), SpecializedVehicle< T, Type >::From(), BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by NewGRFInspectWindow::DrawVehicleChainWidget(), BaseVehicleListWindow::DrawVehicleListItems(), RefitWindow::DrawWidget(), and VehicleDetailsWindow::DrawWidget().
|
static |
draw the vehicle profit button in the vehicle list window.
Definition at line 571 of file vehicle_gui.cpp.
References DrawSprite(), VEHICLE_PROFIT_MIN_AGE, and VEHICLE_PROFIT_THRESHOLD.
Referenced by BaseVehicleListWindow::DrawVehicleListItems().
|
static |
Draw the list of available refit options for a consist and highlight the selected refit option (if any).
| refits | Available refit options for each (sorted) cargo. |
| sel | Selected refit option in the window |
| pos | Position of the selected item in caller widow |
| rows | Number of rows(capacity) in caller window |
| delta | Step height in caller window |
| r | Rectangle of the matrix widget. |
Definition at line 691 of file vehicle_gui.cpp.
References _current_text_dir, RefitOption::cargo, DrawSprite(), DrawString(), FS_NORMAL, CargoSpec::Get(), GetCharacterHeight(), GetColourGradient(), GetSpriteSize(), GetString(), Rect::Indent(), WidgetDimensions::matrix, CargoSpec::name, WidgetDimensions::scaled, Rect::Shrink(), RefitOption::subtype, and TD_RTL.
Referenced by RefitWindow::DrawWidget().
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.
| v_from | the vehicle to match the subtype from |
| v_for | the vehicle to get the subtype for |
| dest_cargo_type | Destination cargo type. |
Definition at line 600 of file vehicle_gui.cpp.
References EngineInfo::callback_mask, Engine::CanCarryCargo(), CargoSuffix, GetCargoSubtypeText(), Vehicle::GetEngine(), Vehicle::GetFirstEnginePart(), Vehicle::GetNextArticulatedPart(), Vehicle::HasArticulatedPart(), HasBit(), include(), MAX_REFIT_CYCLE, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
Referenced by BuildReplacementVehicle(), CmdCloneVehicle(), LinkRefresher::HandleRefit(), and RefitVehicle().
Get the cargo subtype text from NewGRF for the vehicle details window.
Definition at line 1387 of file vehicle_gui.cpp.
References CALLBACK_FAILED, EngineInfo::callback_mask, CargoSuffix, CBID_VEHICLE_CARGO_SUFFIX, Vehicle::engine_type, ErrorUnknownCallbackResult(), Vehicle::GetGRF(), Vehicle::GetGRFID(), GetGRFStringID(), GetVehicleCallback(), GRFSTR_MISC_GRF_TEXT, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
Referenced by RefitWindow::BuildRefitList(), DrawAircraftDetails(), DrawRoadVehDetails(), DrawShipDetails(), GetBestFittingSubType(), and GetCargoSummaryOfArticulatedVehicle().
| int GetSingleVehicleWidth | ( | const Vehicle * | v, |
| EngineImageType | image_type | ||
| ) |
Get the width of a vehicle (part) in pixels.
| v | Vehicle to get the width for. |
Definition at line 3503 of file vehicle_gui.cpp.
References _current_text_dir, DIR_E, DIR_W, SpecializedVehicle< T, Type >::From(), VehicleSpriteSeq::GetBounds(), Vehicle::GetImage(), TD_RTL, BaseVehicle::type, UnScaleGUI(), VEH_ROAD, VEH_TRAIN, and Rect::Width().
Referenced by VehicleDetailsWindow::DrawWidget(), GetVehicleWidth(), and SetMouseCursorVehicle().
|
extern |
Determines the number of lines in the train details window.
| veh_id | Train |
| det_tab | Selected details tab |
Definition at line 320 of file train_gui.cpp.
References _cargo_summary, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::Get(), SpecializedVehicle< T, Type >::Get(), GetCargoSummaryOfArticulatedVehicle(), CargoArray::GetCount(), GetLengthOfArticulatedVehicle(), SpecializedVehicle< T, Type >::GetNextVehicle(), Vehicle::Next(), ScaleSpriteTrad(), TDW_TAB_TOTALS, and TRAIN_DETAILS_MAX_INDENT.
Referenced by VehicleDetailsWindow::OnPaint().
| uint GetUnitNumberDigits | ( | VehicleList & | vehicles | ) |
Get the number of digits the biggest unit number of a set of vehicles has.
| vehicles | The list of vehicles. |
Definition at line 209 of file vehicle_gui.cpp.
References CountDigitsForAllocatingSpace().
Referenced by DepotWindow::OnPaint().
|
static |
Get width required for the formatted unit number display.
| digits | Number of digits required for unit number. |
Definition at line 1746 of file vehicle_gui.cpp.
References GetParamMaxDigits(), GetString(), and GetStringBoundingBox().
Referenced by BaseVehicleListWindow::DrawVehicleListItems().
| uint GetVehicleListHeight | ( | VehicleType | type, |
| uint | divisor | ||
| ) |
Get the height of a vehicle in the vehicle list GUIs.
| type | the vehicle type to look at |
| divisor | the resulting height must be dividable by this |
Definition at line 1727 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().
| int GetVehicleWidth | ( | const Vehicle * | v, |
| EngineImageType | image_type | ||
| ) |
Get the width of a vehicle (including all parts of the consist) in pixels.
| v | Vehicle to get the width for. |
Definition at line 3527 of file vehicle_gui.cpp.
References GetSingleVehicleWidth(), SpecializedVehicle< T, Type >::Next(), BaseVehicle::type, VEH_ROAD, and VEH_TRAIN.
Referenced by RefitWindow::OnInvalidateData(), and RefitWindow::OnResize().
| void InitializeGUI | ( | ) |
Definition at line 1554 of file vehicle_gui.cpp.
|
static |
Checks whether the vehicle may be refitted at the moment.
Definition at line 2943 of file vehicle_gui.cpp.
References Vehicle::engine_type, IsEngineRefittable(), Vehicle::IsGroundVehicle(), Vehicle::IsStoppedInDepot(), and Vehicle::Next().
Referenced by VehicleViewWindow::OnPaint().
| void SetMouseCursorVehicle | ( | const Vehicle * | v, |
| EngineImageType | image_type | ||
| ) |
Set the mouse cursor to look like a vehicle.
| v | Vehicle |
| image_type | Type of vehicle image to use. |
Definition at line 3545 of file vehicle_gui.cpp.
References _current_text_dir, AIR_HELICOPTER, Crashed, DIR_E, DIR_W, SpecializedVehicle< T, Type >::From(), SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), Vehicle::GetImage(), Vehicle::GetNextArticulatedPart(), GetSingleVehicleWidth(), GetVehiclePalette(), Vehicle::HasArticulatedPart(), Vehicle::IsGroundVehicle(), VehicleSpriteSeq::IsValid(), PALETTE_CRASH, ScaleSpriteTrad(), VehicleSpriteSeq::Set(), CursorVars::sprites, Vehicle::subtype, TD_RTL, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), BaseVehicle::type, UpdateCursorSize(), VEH_AIRCRAFT, VEH_TRAIN, and Vehicle::vehstatus.
Referenced by DepotWindow::DepotClick(), and VehicleGroupWindow::OnClick().
| bool ShowCargoIconOverlay | ( | ) |
Test if cargo icon overlays should be drawn.
Definition at line 337 of file vehicle_gui.cpp.
References _ctrl_pressed, and _shift_pressed.
Referenced by DrawCargoIconOverlay(), DrawRoadVehImage(), DrawTrainImage(), DepotWindow::OnMouseLoop(), VehicleGroupWindow::OnMouseLoop(), and VehicleListWindow::OnMouseLoop().
| uint ShowRefitOptionsList | ( | int | left, |
| int | right, | ||
| int | y, | ||
| EngineID | engine | ||
| ) |
Display list of cargo types of the engine, for the purchase information window.
Definition at line 1358 of file vehicle_gui.cpp.
References _cargo_mask, CountBits(), DrawStringMultiLine(), GetString(), GetUnionOfArticulatedRefitMasks(), and HasAtMostOneBit().
Referenced by DrawVehiclePurchaseInfo().
|
static |
Shows the vehicle details window of the given vehicle.
Definition at line 2812 of file vehicle_gui.cpp.
References _nontrain_vehicle_details_desc, _train_vehicle_details_desc, CloseWindowById(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, BaseVehicle::type, VEH_TRAIN, WC_VEHICLE_ORDERS, and WC_VEHICLE_TIMETABLE.
Referenced by VehicleViewWindow::OnClick().
| void ShowVehicleListWindow | ( | CompanyID | company, |
| VehicleType | vehicle_type | ||
| ) |
Definition at line 2289 of file vehicle_gui.cpp.
| void ShowVehicleListWindow | ( | CompanyID | company, |
| VehicleType | vehicle_type, | ||
| StationID | station | ||
| ) |
Definition at line 2308 of file vehicle_gui.cpp.
| void ShowVehicleListWindow | ( | CompanyID | company, |
| VehicleType | vehicle_type, | ||
| TileIndex | depot_tile | ||
| ) |
Definition at line 2313 of file vehicle_gui.cpp.
| void ShowVehicleListWindow | ( | const Vehicle * | v | ) |
Definition at line 2303 of file vehicle_gui.cpp.
|
static |
Definition at line 2280 of file vehicle_gui.cpp.
| void ShowVehicleRefitWindow | ( | const Vehicle * | v, |
| VehicleOrderID | order, | ||
| Window * | parent, | ||
| bool | auto_refit | ||
| ) |
Show the refit window for a vehicle.
| *v | The vehicle to show the refit window for |
| order | of the vehicle to assign refit to, or INVALID_VEH_ORDER_ID to refit the vehicle now |
| parent | the parent window of the refit window |
| auto_refit | Choose cargo for auto-refitting |
Definition at line 1350 of file vehicle_gui.cpp.
References CloseWindowById(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, Window::parent, and WC_VEHICLE_REFIT.
Referenced by VehicleViewWindow::OnClick(), and OrdersWindow::OrderClick_Refit().
| void ShowVehicleViewWindow | ( | const Vehicle * | v | ) |
Shows the vehicle view window of the given vehicle.
Definition at line 3427 of file vehicle_gui.cpp.
References _train_view_desc, _vehicle_view_desc, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, BaseVehicle::type, and VEH_TRAIN.
Referenced by CcBuildPrimaryVehicle(), CcCloneVehicle(), DepotWindow::DepotClick(), NewsWindow::OnClick(), VehicleListWindow::OnClick(), and DepotWindow::OnDragDrop().
| void StartStopVehicle | ( | const Vehicle * | v, |
| bool | texteffect | ||
| ) |
Executes CMD_START_STOP_VEHICLE for given vehicle.
| v | Vehicle to start/stop |
| texteffect | Should a texteffect be shown? |
Definition at line 2936 of file vehicle_gui.cpp.
References _vehicle_msg_translation_table, CcStartStopVehicle(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, Vehicle::IsPrimaryVehicle(), Vehicle::tile, and BaseVehicle::type.
Referenced by DepotWindow::DepotClick(), and VehicleViewWindow::OnClick().
| void StopGlobalFollowVehicle | ( | const Vehicle * | v | ) |
Definition at line 3475 of file vehicle_gui.cpp.
Sort vehicles by their age.
Definition at line 1460 of file vehicle_gui.cpp.
References Vehicle::age.
Sort vehicles by their cargo.
Definition at line 1481 of file vehicle_gui.cpp.
References Vehicle::cargo_cap, Vehicle::cargo_type, and Vehicle::Next().
| bool VehicleClicked | ( | const GUIVehicleGroup & | vehgroup | ) |
Dispatch a "vehicle group selected" event if any window waits for it.
| vehgroup | the GUIVehicleGroup representing the vehicle group |
Definition at line 3470 of file vehicle_gui.cpp.
References VehicleClicked(), GUIVehicleGroup::vehicles_begin, and GUIVehicleGroup::vehicles_end.
| bool VehicleClicked | ( | const Vehicle * | v | ) |
Dispatch a "vehicle selected" event if any window waits for it.
| v | selected vehicle; |
Definition at line 3437 of file vehicle_gui.cpp.
References Vehicle::First(), TileHighlightData::GetCallbackWnd(), HT_VEHICLE, Vehicle::IsPrimaryVehicle(), Window::OnVehicleSelect(), and TileHighlightData::place_mode.
Referenced by DepotWindow::DepotClick(), VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), and VehicleClicked().
| bool VehicleClicked | ( | VehicleList::const_iterator | begin, |
| VehicleList::const_iterator | end | ||
| ) |
Dispatch a "vehicle group selected" event if any window waits for it.
| begin | iterator to the start of the range of vehicles |
| end | iterator to the end of the range of vehicles |
Definition at line 3454 of file vehicle_gui.cpp.
References TileHighlightData::GetCallbackWnd(), HT_VEHICLE, Window::OnVehicleSelect(), and TileHighlightData::place_mode.
|
static |
Sort vehicle groups by the average profit last year.
Definition at line 1429 of file vehicle_gui.cpp.
|
static |
Sort vehicle groups by the average profit this year.
Definition at line 1423 of file vehicle_gui.cpp.
|
static |
Sort vehicle groups by the number of vehicles in the group.
Definition at line 1405 of file vehicle_gui.cpp.
|
static |
Sort vehicle groups by the total profit last year.
Definition at line 1417 of file vehicle_gui.cpp.
|
static |
Sort vehicle groups by the total profit this year.
Definition at line 1411 of file vehicle_gui.cpp.
|
static |
Wrapper to convert a VehicleIndividualSortFunction to a VehicleGroupSortFunction.
Definition at line 77 of file vehicle_gui.cpp.
References GUIVehicleGroup::vehicles_begin.
Sort vehicles by their length.
Definition at line 1534 of file vehicle_gui.cpp.
References GroundVehicleCache::cached_total_length, and Vehicle::GetGroundVehicleCache().
Sort vehicles by their max speed.
Definition at line 1507 of file vehicle_gui.cpp.
References VehicleCache::cached_max_speed, and Vehicle::vcache.
Sort vehicles by model.
Definition at line 1514 of file vehicle_gui.cpp.
References Vehicle::engine_type.
Sort vehicles by their name.
Definition at line 1441 of file vehicle_gui.cpp.
References GetString(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, and StrNaturalCompare().
Sort vehicles by their number.
Definition at line 1435 of file vehicle_gui.cpp.
References Vehicle::unitnumber.
|
static |
Sort vehicles by last year profit.
Definition at line 1474 of file vehicle_gui.cpp.
References Vehicle::GetDisplayProfitLastYear().
|
static |
Sort vehicles by this year profit.
Definition at line 1467 of file vehicle_gui.cpp.
References Vehicle::GetDisplayProfitThisYear().
Sort vehicles by their reliability.
Definition at line 1500 of file vehicle_gui.cpp.
References Vehicle::reliability.
|
static |
Sort vehicles by the timetable delay.
Definition at line 1548 of file vehicle_gui.cpp.
References BaseConsist::lateness_counter.
Sort vehicles by the time they can still live.
Definition at line 1541 of file vehicle_gui.cpp.
References Vehicle::age, and Vehicle::max_age.
Sort vehicles by their value.
Definition at line 1521 of file vehicle_gui.cpp.
References Vehicle::Next(), and Vehicle::value.
|
static |
Definition at line 53 of file vehicle_gui.cpp.
|
static |
Definition at line 554 of file vehicle_gui.cpp.
|
staticconstexpr |
Vehicle details widgets (other than train).
Definition at line 2327 of file vehicle_gui.cpp.
|
staticconstexpr |
Train details widgets.
Definition at line 2350 of file vehicle_gui.cpp.
|
staticconstexpr |
Definition at line 1598 of file vehicle_gui.cpp.
|
staticconstexpr |
Definition at line 1310 of file vehicle_gui.cpp.
|
staticconstexpr |
Vehicle view widgets.
Definition at line 2823 of file vehicle_gui.cpp.
|
static |
Definition at line 2392 of file vehicle_gui.cpp.
|
static |
Definition at line 2398 of file vehicle_gui.cpp.
|
static |
Definition at line 54 of file vehicle_gui.cpp.
|
static |
Vehicle view window descriptor for trains.
Only minimum_height and default_height are different for train view.
Referenced by ShowVehicleViewWindow().
|
static |
Definition at line 409 of file vehicle_gui.cpp.
|
static |
Definition at line 2253 of file vehicle_gui.cpp.
|
static |
Command codes for the shared buttons indexed by VehicleCommandTranslation and vehicle type.
Definition at line 2893 of file vehicle_gui.cpp.
Referenced by VehicleViewWindow::OnClick(), and StartStopVehicle().
|
static |
Zoom levels for vehicle views indexed by vehicle type.
Definition at line 2873 of file vehicle_gui.cpp.
|
static |
Maximum number of refit cycles we try, to prevent infinite loops.
And we store only a byte anyway
Definition at line 589 of file vehicle_gui.cpp.
Referenced by RefitWindow::BuildRefitList(), and GetBestFittingSubType().
|
static |
Definition at line 58 of file vehicle_gui.cpp.
|
static |
Definition at line 61 of file vehicle_gui.cpp.
|
static |
Definition at line 73 of file vehicle_gui.cpp.
|
static |
Definition at line 72 of file vehicle_gui.cpp.
|
static |
Definition at line 69 of file vehicle_gui.cpp.
|
static |
Definition at line 71 of file vehicle_gui.cpp.
|
static |
Definition at line 70 of file vehicle_gui.cpp.
|
static |
Definition at line 66 of file vehicle_gui.cpp.
|
static |
Definition at line 63 of file vehicle_gui.cpp.
|
static |
Definition at line 64 of file vehicle_gui.cpp.
|
static |
Definition at line 57 of file vehicle_gui.cpp.
|
static |
Definition at line 56 of file vehicle_gui.cpp.
|
static |
Definition at line 60 of file vehicle_gui.cpp.
|
static |
Definition at line 59 of file vehicle_gui.cpp.
|
static |
Definition at line 62 of file vehicle_gui.cpp.
|
static |
Definition at line 68 of file vehicle_gui.cpp.
|
static |
Definition at line 67 of file vehicle_gui.cpp.
|
static |
Definition at line 65 of file vehicle_gui.cpp.
|
static |
Definition at line 2882 of file vehicle_gui.cpp.
|
static |
Definition at line 2883 of file vehicle_gui.cpp.
|
static |
Definition at line 2881 of file vehicle_gui.cpp.