Data Structures | Typedefs | Functions | Variables

train_gui.cpp File Reference

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 "table/strings.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)
 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 transportet.
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.

Detailed Description

GUI for trains.

Definition in file train_gui.cpp.


Typedef Documentation

Container for the cargo summary information.

Definition at line 177 of file train_gui.cpp.


Function Documentation

void CcBuildWagon ( const CommandCost result,
TileIndex  tile,
uint32  p1,
uint32  p2 
)

Callback for building wagons.

Parameters:
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 28 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::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 
)
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.

Parameters:
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_VEHICLE if none.

Definition at line 91 of file train_gui.cpp.

References _current_text_dir, DIR_E, DrawFrameRect(), DrawSprite(), 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, and CursorVars::vehchain.

Referenced by DrawVehicleImage(), and DepotWindow::DrawVehicleInDepot().

static void GetCargoSummaryOfArticulatedVehicle ( const Train v,
CargoSummary summary 
) [static]
static uint GetLengthOfArticulatedVehicle ( const Train v  )  [static]

Get the length of an articulated vehicle.

Parameters:
v the vehicle to get the length of.
Returns:
the length in pixels.

Definition at line 290 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 
)
static int HighlightDragPosition ( int  px,
int  max_width,
VehicleID  selection 
) [static]

Highlight the position where a rail vehicle is dragged over by drawing a light gray background.

Parameters:
px The current x position to draw from.
max_width The maximum space available to draw.
selection Selected vehicle that is dragged.
Returns:
The width of the highlight mark.

Definition at line 59 of file train_gui.cpp.

References _colour_gradient, _current_text_dir, SpecializedVehicle< Train, Type >::Get(), GfxFillRect(), Vehicle::HasArticulatedPart(), INVALID_VEHICLE, max(), min(), WD_FRAMERECT_BOTTOM, WD_FRAMERECT_LEFT, and WD_FRAMERECT_TOP.

Referenced by DrawTrainImage().

static void TrainDetailsCapacityTab ( const CargoSummaryItem item,
int  left,
int  right,
int  y 
) [static]

Draw the details capacity tab for the given vehicle at the given position.

Parameters:
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 236 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 void TrainDetailsCargoTab ( const CargoSummaryItem item,
int  left,
int  right,
int  y 
) [static]

Draw the details cargo tab for the given vehicle at the given position.

Parameters:
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 189 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 void TrainDetailsInfoTab ( const Vehicle v,
int  left,
int  right,
int  y 
) [static]

Draw the details info tab for the given vehicle at the given position.

Parameters:
v current vehicle
left The left most coordinate to draw
right The right most coordinate to draw
y The y coordinate

Definition at line 214 of file train_gui.cpp.

References Vehicle::build_year, DrawString(), Vehicle::engine_type, RAILVEH_WAGON, SA_LEFT, SA_STRIP, SetDParam(), and Vehicle::value.

Referenced by DrawTrainDetails().