| OpenTTD
    | 
GUI for trains. More...
#include "stdafx.h"#include "window_gui.h"#include "command_func.h"#include "train.h"#include "strings_func.h"#include "vehicle_func.h"#include "zoom_func.h"#include "table/strings.h"#include "safeguards.h"Go to the source code of this file.
| Data Structures | |
| struct | CargoSummaryItem | 
| Helper struct for the cargo details information.  More... | |
| Typedefs | |
| typedef SmallVector < CargoSummaryItem, 2 > | CargoSummary | 
| Container for the cargo summary information. | |
| Functions | |
| void | CcBuildWagon (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) | 
| Callback for building wagons. | |
| static int | HighlightDragPosition (int px, int max_width, VehicleID selection, bool chain) | 
| Highlight the position where a rail vehicle is dragged over by drawing a light gray background. | |
| void | DrawTrainImage (const Train *v, int left, int right, int y, VehicleID selection, EngineImageType image_type, int skip, VehicleID drag_dest) | 
| Draws an image of a whole train. | |
| static void | TrainDetailsCargoTab (const CargoSummaryItem *item, int left, int right, int y) | 
| Draw the details cargo tab for the given vehicle at the given position. | |
| static void | TrainDetailsInfoTab (const Vehicle *v, int left, int right, int y) | 
| Draw the details info tab for the given vehicle at the given position. | |
| static void | TrainDetailsCapacityTab (const CargoSummaryItem *item, int left, int right, int y) | 
| Draw the details capacity tab for the given vehicle at the given position. | |
| static void | GetCargoSummaryOfArticulatedVehicle (const Train *v, CargoSummary *summary) | 
| Collects the cargo transported. | |
| static uint | GetLengthOfArticulatedVehicle (const Train *v) | 
| Get the length of an articulated vehicle. | |
| int | GetTrainDetailsWndVScroll (VehicleID veh_id, TrainDetailsWindowTabs det_tab) | 
| Determines the number of lines in the train details window. | |
| 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. | |
| Variables | |
| static const uint | TRAIN_DETAILS_MIN_INDENT = 32 | 
| Minimum indent level in the train details window. | |
| static const uint | TRAIN_DETAILS_MAX_INDENT = 72 | 
| Maximum indent level in the train details window; wider than this and we start on a new line. | |
| static CargoSummary | _cargo_summary | 
| Reused container of cargo details. | |
GUI for trains.
Definition in file train_gui.cpp.
| typedef SmallVector<CargoSummaryItem, 2> CargoSummary | 
Container for the cargo summary information.
Definition at line 183 of file train_gui.cpp.
| void CcBuildWagon | ( | const CommandCost & | result, | 
| TileIndex | tile, | ||
| uint32 | p1, | ||
| uint32 | p2 | ||
| ) | 
Callback for building wagons.
| result | The result of the command. | 
| tile | The tile the command was executed on. | 
| p1 | Additional data for the command (for the CommandProc) | 
| p2 | Additional data for the command (for the CommandProc) | 
Definition at line 31 of file train_gui.cpp.
References CMD_MOVE_RAIL_VEHICLE, DoCommandP(), CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, InvalidateWindowClassesData(), Vehicle::IsFrontEngine(), Vehicle::IsStoppedInDepot(), Vehicle::Last(), Vehicle::tile, and WC_TRAINS_LIST.
Referenced by BuildVehicleWindow::OnClick().
| 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.
| v | current vehicle | 
| left | The left most coordinate to draw | 
| right | The right most coordinate to draw | 
| y | The y coordinate | 
| vscroll_pos | Position of scrollbar | 
| vscroll_cap | Number of lines currently displayed | 
| det_tab | Selected details tab | 
Definition at line 356 of file train_gui.cpp.
References _colour_gradient, _current_text_dir, _settings_game, DIR_E, DIR_W, VehicleSpriteSeq::Draw(), DrawString(), EIT_IN_DETAILS, Vehicle::engine_type, FONT_HEIGHT_NORMAL, VehicleSettings::freight_trains, FreightWagonMult(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetCargoSummaryOfArticulatedVehicle(), Train::GetDisplayImageWidth(), Engine::GetGRF(), Train::GetImage(), SpecializedVehicle< T, Type >::GetNextVehicle(), GetVehicleHeight(), GetVehiclePalette(), GfxFillRect(), Vehicle::IsArticulatedPart(), SmallVector< T, S >::Length(), max(), SpecializedVehicle< T, Type >::Next(), NUM_CARGO, PALETTE_CRASH, ScaleGUITrad(), SetDParam(), TD_RTL, TDW_TAB_CAPACITY, TDW_TAB_CARGO, TDW_TAB_INFO, TDW_TAB_TOTALS, TRAIN_DETAILS_MAX_INDENT, TRAIN_DETAILS_MIN_INDENT, TrainDetailsCapacityTab(), TrainDetailsCargoTab(), TrainDetailsInfoTab(), GRFFile::traininfo_vehicle_pitch, VEH_TRAIN, GameSettings::vehicle, Vehicle::vehstatus, VS_CRASHED, WD_MATRIX_BOTTOM, and WD_MATRIX_TOP.
Referenced by VehicleDetailsWindow::DrawVehicleDetails().
| void DrawTrainImage | ( | const Train * | v, | 
| int | left, | ||
| int | right, | ||
| int | y, | ||
| VehicleID | selection, | ||
| EngineImageType | image_type, | ||
| int | skip, | ||
| VehicleID | drag_dest | ||
| ) | 
Draws an image of a whole train.
| v | Front vehicle | 
| left | The minimum horizontal position | 
| right | The maximum horizontal position | 
| y | Vertical position to draw at | 
| selection | Selected vehicle to draw a frame around | 
| skip | Number of pixels to skip at the front (for scrolling) | 
| drag_dest | The vehicle another one is dragged over, INVALID_VEHICLEif none. | 
Definition at line 94 of file train_gui.cpp.
References _current_text_dir, DIR_E, DIR_W, VehicleSpriteSeq::Draw(), DrawFrameRect(), FillDrawPixelInfo(), FR_BORDERONLY, SpecializedVehicle< Train, Type >::From(), Train::GetDisplayImageWidth(), GetVehiclePalette(), HighlightDragPosition(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_VEHICLE, SpecializedVehicle< T, Type >::Next(), PALETTE_CRASH, ScaleGUITrad(), TD_RTL, CursorVars::vehchain, and VS_CRASHED.
Referenced by DrawVehicleImage(), and DepotWindow::DrawVehicleInDepot().
| 
 | static | 
Collects the cargo transported.
| v | Vehicle to process | 
| summary | Space for the result | 
Definition at line 264 of file train_gui.cpp.
References CargoSummaryItem::amount, SmallVector< T, S >::Append(), Engine::CanCarryCargo(), CargoSummaryItem::capacity, CargoSummaryItem::cargo, Vehicle::cargo, Vehicle::cargo_cap, Vehicle::cargo_type, SmallVector< T, S >::Clear(), SmallVector< T, S >::End(), SmallVector< T, S >::Find(), GetCargoSubtypeText(), Vehicle::GetEngine(), INVALID_CARGO, Vehicle::IsArticulatedPart(), SpecializedVehicle< T, Type >::Next(), CargoSummaryItem::source, VehicleCargoList::Source(), VehicleCargoList::StoredCount(), and CargoSummaryItem::subtype.
Referenced by DrawTrainDetails(), and GetTrainDetailsWndVScroll().
| 
 | static | 
Get the length of an articulated vehicle.
| v | the vehicle to get the length of. | 
Definition at line 296 of file train_gui.cpp.
References Train::GetDisplayImageWidth(), Vehicle::IsArticulatedPart(), and SpecializedVehicle< T, Type >::Next().
Referenced by GetTrainDetailsWndVScroll().
| int GetTrainDetailsWndVScroll | ( | VehicleID | veh_id, | 
| TrainDetailsWindowTabs | det_tab | ||
| ) | 
Determines the number of lines in the train details window.
| veh_id | Train | 
| det_tab | Selected details tab | 
Definition at line 313 of file train_gui.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get(), SpecializedVehicle< Train, Type >::Get(), GetCargoSummaryOfArticulatedVehicle(), GetLengthOfArticulatedVehicle(), SpecializedVehicle< T, Type >::GetNextVehicle(), SmallVector< T, S >::Length(), max(), NUM_CARGO, TDW_TAB_TOTALS, and TRAIN_DETAILS_MAX_INDENT.
Referenced by VehicleDetailsWindow::OnPaint().
| 
 | static | 
Highlight the position where a rail vehicle is dragged over by drawing a light gray background.
| px | The current x position to draw from. | 
| max_width | The maximum space available to draw. | 
| selection | Selected vehicle that is dragged. | 
| chain | Whether a whole chain is dragged. | 
Definition at line 62 of file train_gui.cpp.
References _colour_gradient, _current_text_dir, SpecializedVehicle< Train, Type >::Get(), GfxFillRect(), INVALID_VEHICLE, max(), min(), SpecializedVehicle< T, Type >::Next(), ScaleGUITrad(), TD_RTL, WD_FRAMERECT_BOTTOM, WD_FRAMERECT_LEFT, WD_FRAMERECT_RIGHT, and WD_FRAMERECT_TOP.
Referenced by DrawTrainImage().
| 
 | static | 
Draw the details capacity tab for the given vehicle at the given position.
| item | Data to draw | 
| left | The left most coordinate to draw | 
| right | The right most coordinate to draw | 
| y | The y coordinate | 
Definition at line 242 of file train_gui.cpp.
References _settings_game, CargoSummaryItem::capacity, CargoSummaryItem::cargo, DrawString(), VehicleSettings::freight_trains, FreightWagonMult(), INVALID_CARGO, SetDParam(), CargoSummaryItem::subtype, and GameSettings::vehicle.
Referenced by DrawTrainDetails().
| 
 | static | 
Draw the details cargo tab for the given vehicle at the given position.
| item | Data to draw | 
| left | The left most coordinate to draw | 
| right | The right most coordinate to draw | 
| y | The y coordinate | 
Definition at line 195 of file train_gui.cpp.
References _settings_game, CargoSummaryItem::amount, CargoSummaryItem::cargo, DrawString(), VehicleSettings::freight_trains, FreightWagonMult(), INVALID_CARGO, SetDParam(), CargoSummaryItem::source, and GameSettings::vehicle.
Referenced by DrawTrainDetails().
| 
 | static | 
Draw the details info tab for the given vehicle at the given position.
| v | current vehicle | 
| left | The left most coordinate to draw | 
| right | The right most coordinate to draw | 
| y | The y coordinate | 
Definition at line 220 of file train_gui.cpp.
References Vehicle::build_year, DrawString(), Vehicle::engine_type, RAILVEH_WAGON, SetDParam(), and Vehicle::value.
Referenced by DrawTrainDetails().
 1.8.1.2
 1.8.1.2