train_gui.cpp File Reference

GUI for trains. More...

#include "stdafx.h"
#include "window_gui.h"
#include "gfx_func.h"
#include "command_func.h"
#include "vehicle_gui.h"
#include "train.h"
#include "strings_func.h"
#include "vehicle_func.h"
#include "window_func.h"
#include "table/sprites.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)
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, 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 172 of file train_gui.cpp.


Function Documentation

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,
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 86 of file train_gui.cpp.

References _current_text_dir, DIR_E, DIR_W, DrawFrameRect(), DrawSprite(), FillDrawPixelInfo(), FR_BORDERONLY, SpecializedVehicle< Train, Type >::From(), Train::GetDisplayImageWidth(), GetVehiclePalette(), HighlightDragPosition(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_VEHICLE, SpecializedVehicle< T, Type >::Next(), TD_RTL, CursorVars::vehchain, and VS_CRASHED.

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 274 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 56 of file train_gui.cpp.

References _colour_gradient, _current_text_dir, SpecializedVehicle< Train, Type >::Get(), Train::GetDisplayImageWidth(), GfxFillRect(), INVALID_VEHICLE, max(), min(), TD_RTL, WD_FRAMERECT_BOTTOM, WD_FRAMERECT_LEFT, WD_FRAMERECT_RIGHT, 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 229 of file train_gui.cpp.

References _settings_game, CargoSummaryItem::capacity, CargoSummaryItem::cargo, DrawString(), VehicleSettings::freight_trains, FreightWagonMult(), 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 184 of file train_gui.cpp.

References _settings_game, CargoSummaryItem::amount, CargoSummaryItem::cargo, DrawString(), VehicleSettings::freight_trains, FreightWagonMult(), 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 207 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().


Generated on Sun May 15 19:20:40 2011 for OpenTTD by  doxygen 1.6.1