build_vehicle_gui.cpp File Reference

GUI for building vehicles. More...

#include "train.h"
#include "roadveh.h"
#include "ship.h"
#include "aircraft.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 "group.h"
#include "strings_func.h"
#include "window_func.h"
#include "date_func.h"
#include "vehicle_func.h"
#include "gfx_func.h"
#include "widgets/dropdown_func.h"
#include "window_gui.h"
#include "engine_gui.h"
#include "settings_type.h"
#include "table/sprites.h"
#include "table/strings.h"

Go to the source code of this file.

Data Structures

struct  BuildVehicleWindow

Enumerations

enum  BuildVehicleWidgets {
  BUILD_VEHICLE_WIDGET_CLOSEBOX = 0, BUILD_VEHICLE_WIDGET_CAPTION, BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING, BUILD_VEHICLE_WIDGET_SORT_DROPDOWN,
  BUILD_VEHICLE_WIDGET_LIST, BUILD_VEHICLE_WIDGET_SCROLLBAR, BUILD_VEHICLE_WIDGET_PANEL, BUILD_VEHICLE_WIDGET_BUILD,
  BUILD_VEHICLE_WIDGET_RENAME, BUILD_VEHICLE_WIDGET_RESIZE, BUILD_VEHICLE_WIDGET_END
}

Functions

static int CDECL EngineNumberSorter (const void *a, const void *b)
static int CDECL EngineIntroDateSorter (const void *a, const void *b)
static int CDECL EngineNameSorter (const void *a, const void *b)
static int CDECL EngineReliabilitySorter (const void *a, const void *b)
static int CDECL EngineCostSorter (const void *a, const void *b)
static int CDECL EngineSpeedSorter (const void *a, const void *b)
static int CDECL EnginePowerSorter (const void *a, const void *b)
static int CDECL EngineRunningCostSorter (const void *a, const void *b)
static int CDECL TrainEnginePowerVsRunningCostSorter (const void *a, const void *b)
static int CDECL TrainEngineCapacitySorter (const void *a, const void *b)
static int CDECL TrainEnginesThenWagonsSorter (const void *a, const void *b)
static int CDECL RoadVehEngineCapacitySorter (const void *a, const void *b)
static int CDECL ShipEngineCapacitySorter (const void *a, const void *b)
static int CDECL AircraftEngineCargoSorter (const void *a, const void *b)
static int DrawCargoCapacityInfo (int x, int y, EngineID engine, VehicleType type, bool refittable)
static int DrawRailWagonPurchaseInfo (int x, int y, EngineID engine_number, const RailVehicleInfo *rvi)
static int DrawRailEnginePurchaseInfo (int x, int y, EngineID engine_number, const RailVehicleInfo *rvi)
static int DrawRoadVehPurchaseInfo (int x, int y, EngineID engine_number)
static int DrawShipPurchaseInfo (int x, int y, EngineID engine_number, const ShipVehicleInfo *svi, bool refittable)
static int DrawAircraftPurchaseInfo (int x, int y, EngineID engine_number, const AircraftVehicleInfo *avi, bool refittable)
int DrawVehiclePurchaseInfo (int x, int y, uint w, EngineID engine_number)
 Draw the purchase info details of a vehicle at a given location.
static void DrawVehicleEngine (VehicleType type, int x, int y, EngineID engine, SpriteID pal)
void DrawEngineList (VehicleType type, int x, int r, int y, const GUIEngineList *eng_list, uint16 min, uint16 max, EngineID selected_id, int count_location, GroupID selected_group)
 Engine drawing loop.
void ShowBuildVehicleWindow (TileIndex tile, VehicleType type)

Variables

static const Widget _build_vehicle_widgets []
static bool _internal_sort_order
static byte _last_sort_criteria [] = {0, 0, 0, 0}
static bool _last_sort_order [] = {false, false, false, false}
static
EngList_SortTypeFunction
*const 
_sorter [][10]
static const StringID _sort_listing [][11]
static const WindowDesc _build_vehicle_desc (WDP_AUTO, WDP_AUTO, 240, 174, 240, 256, WC_BUILD_VEHICLE, WC_NONE, WDF_STD_TOOLTIPS|WDF_STD_BTN|WDF_DEF_WIDGET|WDF_UNCLICK_BUTTONS|WDF_RESIZABLE|WDF_CONSTRUCTION, _build_vehicle_widgets)


Detailed Description

GUI for building vehicles.

Definition in file build_vehicle_gui.cpp.


Function Documentation

void DrawEngineList ( VehicleType  type,
int  x,
int  r,
int  y,
const GUIEngineList *  eng_list,
uint16  min,
uint16  max,
EngineID  selected_id,
int  count_location,
GroupID  selected_group 
)

Engine drawing loop.

Parameters:
type Type of vehicle (VEH_*)
x,y Where should the list start
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
count_location Offset to print the engine count (used by autoreplace). 0 means it's off

Definition at line 638 of file build_vehicle_gui.cpp.

References DrawStringRightAligned(), DrawStringTruncated(), GetEnginePalette(), and GetGroupNumEngines().

Referenced by ReplaceVehicleWindow::OnPaint().

int DrawVehiclePurchaseInfo ( int  x,
int  y,
uint  w,
EngineID  engine_number 
)

Draw the purchase info details of a vehicle at a given location.

Parameters:
x,y location where to draw the info
w how wide are the text allowed to be (size of widget/window to Draw in)
engine_number the engine of which to draw the info of
Returns:
y after drawing all the text

Definition at line 543 of file build_vehicle_gui.cpp.

References ConvertDateToYMD(), DrawString(), IsArticulatedVehicleRefittable(), RAILVEH_WAGON, ShowAdditionalText(), ShowRefitOptionsList(), and YearMonthDay::year.

Referenced by ReplaceVehicleWindow::OnPaint().


Variable Documentation

const Widget _build_vehicle_widgets[] [static]

Initial value:

 {
  {   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW },
  {    WWT_CAPTION,  RESIZE_RIGHT,  COLOUR_GREY,    11,   239,     0,    13, 0x0,                     STR_018C_WINDOW_TITLE_DRAG_THIS },
  { WWT_PUSHTXTBTN,   RESIZE_NONE,  COLOUR_GREY,     0,    80,    14,    25, STR_SORT_BY,             STR_SORT_ORDER_TIP},
  {   WWT_DROPDOWN,  RESIZE_RIGHT,  COLOUR_GREY,    81,   239,    14,    25, 0x0,                     STR_SORT_CRITERIA_TIP},
  {     WWT_MATRIX,     RESIZE_RB,  COLOUR_GREY,     0,   227,    26,    39, 0x101,                   STR_NULL },
  {  WWT_SCROLLBAR,    RESIZE_LRB,  COLOUR_GREY,   228,   239,    26,    39, 0x0,                     STR_0190_SCROLL_BAR_SCROLLS_LIST },
  {      WWT_PANEL,    RESIZE_RTB,  COLOUR_GREY,     0,   239,    40,   161, 0x0,                     STR_NULL },

  { WWT_PUSHTXTBTN,     RESIZE_TB,  COLOUR_GREY,     0,   114,   162,   173, 0x0,                     STR_NULL },
  { WWT_PUSHTXTBTN,    RESIZE_RTB,  COLOUR_GREY,   115,   227,   162,   173, 0x0,                     STR_NULL },
  {  WWT_RESIZEBOX,   RESIZE_LRTB,  COLOUR_GREY,   228,   239,   162,   173, 0x0,                     STR_RESIZE_BUTTON },
  {   WIDGETS_END},
}

Definition at line 43 of file build_vehicle_gui.cpp.


Generated on Wed Dec 23 20:12:54 2009 for OpenTTD by  doxygen 1.5.6