OpenTTD: src/order_gui.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Enumerations | Functions | Variables
order_gui.cpp File Reference

GUI related to orders. More...

`#include "stdafx.h"`
`#include "command_func.h"`
`#include "viewport_func.h"`
`#include "depot_map.h"`
`#include "roadveh.h"`
`#include "timetable.h"`
`#include "strings_func.h"`
`#include "company_func.h"`
`#include "widgets/dropdown_type.h"`
`#include "widgets/dropdown_func.h"`
`#include "textbuf_gui.h"`
`#include "string_func.h"`
`#include "tilehighlight_func.h"`
`#include "network/network.h"`
`#include "station_base.h"`
`#include "waypoint_base.h"`
`#include "core/geometry_func.hpp"`
`#include "hotkeys.h"`
`#include "aircraft.h"`
`#include "engine_func.h"`
`#include "widgets/order_widget.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | OrdersWindow
| Order window code for all vehicles. More...

## Enumerations
enum | { OHK_SKIP, OHK_DELETE, OHK_GOTO, OHK_NONSTOP, OHK_FULLLOAD, OHK_UNLOAD, OHK_NEAREST_DEPOT, OHK_ALWAYS_SERVICE, OHK_TRANSFER, OHK_NO_UNLOAD, OHK_NO_LOAD }
| Hotkeys for order window. More...

## Functions
uint | ConvertSpeedToDisplaySpeed (uint speed)
| Convert the given (internal) speed to the display speed.
uint | ConvertDisplaySpeedToSpeed (uint speed)
| Convert the given display speed to the (internal) speed.
static int | DepotActionStringIndex (const Order *order)
void | DrawOrderString (const Vehicle *v, const Order *order, int order_index, int y, bool selected, bool timetable, int left, int middle, int right)
| Draws an order in order or timetable GUI.
static Order | GetOrderCmdFromTile (const Vehicle *v, TileIndex tile)
| Get the order command a vehicle can do in a given tile.
void | ShowOrdersWindow (const Vehicle *v)

## Variables
static const StringID | _station_load_types [][5][5]
| Order load types that could be given to station orders.
static const StringID | _order_non_stop_drowdown []
static const StringID | _order_full_load_drowdown []
static const StringID | _order_unload_drowdown []
static const StringID | _order_goto_dropdown []
static const StringID | _order_goto_dropdown_aircraft []
static const OrderConditionVariable | _order_conditional_variable []
| Variables for conditional orders; this defines the order of appearance in the dropdown box.
static const StringID | _order_conditional_condition []
static const StringID | _order_depot_action_dropdown []
static const StringID | _order_refit_action_dropdown []
static Hotkey | order_hotkeys []
static const NWidgetPart | _nested_orders_train_widgets []
| Nested widget definition for "your" train orders.
static WindowDesc | _orders_train_desc (WDP_AUTO,"view_vehicle_orders_train", 384, 100, WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, WDF_CONSTRUCTION, _nested_orders_train_widgets, lengthof(_nested_orders_train_widgets),&OrdersWindow::hotkeys)
static const NWidgetPart | _nested_orders_widgets []
| Nested widget definition for "your" orders (non-train).
static WindowDesc | _orders_desc (WDP_AUTO,"view_vehicle_orders", 384, 100, WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, WDF_CONSTRUCTION, _nested_orders_widgets, lengthof(_nested_orders_widgets),&OrdersWindow::hotkeys)
static const NWidgetPart | _nested_other_orders_widgets []
| Nested widget definition for competitor orders.
static WindowDesc | _other_orders_desc (WDP_AUTO,"view_vehicle_orders_competitor", 384, 86, WC_VEHICLE_ORDERS, WC_VEHICLE_VIEW, WDF_CONSTRUCTION, _nested_other_orders_widgets, lengthof(_nested_other_orders_widgets),&OrdersWindow::hotkeys)

## Detailed Description

GUI related to orders.

Definition in file order_gui.cpp.

## Enumeration Type Documentation

anonymous enum

Hotkeys for order window.

Definition at line 418 of file order_gui.cpp.

## Function Documentation

uint ConvertDisplaySpeedToSpeed | ( | uint | speed | ) |

Convert the given display speed to the (internal) speed.

Parameters

  speed | the speed to convert

Returns
  the converted speed.

Definition at line 740 of file strings.cpp.

References _settings_game, Units::c, UnitConversion::FromDisplay(), GameSettings::locale, and LocaleSettings::units_velocity.

Referenced by OrdersWindow::OnQueryTextFinished().

uint ConvertSpeedToDisplaySpeed | ( | uint | speed | ) |

Convert the given (internal) speed to the display speed.

Parameters

  speed | the speed to convert

Returns
  the converted speed.

Definition at line 727 of file strings.cpp.

References _settings_game, Units::c, GameSettings::locale, UnitConversion::ToDisplay(), and LocaleSettings::units_velocity.

Referenced by DrawOrderString(), OrdersWindow::OnClick(), and OrdersWindow::SetStringParameters().

void DrawOrderString | ( | const Vehicle * | v,
|  | const Order * | order,
|  | int | order_index,
|  | int | y,
|  | bool | selected,
|  | bool | timetable,
|  | int | left,
|  | int | middle,
|  | int | right
| ) |  |

Draws an order in order or timetable GUI.

Parameters

  v | Vehicle the order belongs to
  order | The order to draw
  order_index | Index of the order in the orders of the vehicle
  y | Y position for drawing
  selected | True, if the order is selected
  timetable | True, when drawing in the timetable GUI
  left | Left border for text drawing
  middle | X position between order index and order text
  right | Right border for text drawing

Definition at line 213 of file order_gui.cpp.

References _current_text_dir, _station_load_types, ConvertSpeedToDisplaySpeed(), BaseConsist::cur_implicit_order_index, BaseConsist::cur_real_order_index, DrawSprite(), DrawString(), FONT_HEIGHT_NORMAL, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), CargoSpec::Get(), Order::GetConditionComparator(), Order::GetConditionSkipToOrder(), Order::GetConditionValue(), Order::GetConditionVariable(), Order::GetDepotActionType(), Order::GetDepotOrderType(), Order::GetDestination(), Vehicle::GetFirstOrder(), Order::GetLoadType(), Order::GetNonStopType(), GetOrderDistance(), Aircraft::GetRange(), Order::GetRefitCargo(), GetSpriteSize(), Order::GetStopLocation(), Order::GetType(), Order::GetUnloadType(), Order::GetWaitTime(), Order::IsAutoRefit(), Order::IsGotoOrder(), Vehicle::IsGroundVehicle(), Order::IsRefit(), Order::IsType(), Order::IsWaitTimetabled(), Order::next, OCC_IS_FALSE, OCC_IS_TRUE, OCV_MAX_SPEED, OCV_UNCONDITIONALLY, ODATFB_HALT, ODATFB_NEAREST_DEPOT, ODTFB_SERVICE, ONSF_NO_STOP_AT_DESTINATION_STATION, ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS, SA_FORCE, SA_RIGHT, SetDParam(), SetTimetableParams(), TC_NO_SHADE, TD_RTL, BaseVehicle::type, VEH_AIRCRAFT, and VEH_TRAIN.

Referenced by TimetableWindow::DrawWidget(), and OrdersWindow::DrawWidget().

static Order GetOrderCmdFromTile | ( | const Vehicle * | v,
|  | TileIndex | tile
| ) |  |
| static

Get the order command a vehicle can do in a given tile.

Parameters

  v | Vehicle involved.
  tile | Tile being queried.

Returns
  The order associated to vehicle v in given tile (or empty order if vehicle can do nothing in the tile).

Definition at line 357 of file order_gui.cpp.

References _ctrl_pressed, _local_company, _settings_client, FACIL_AIRPORT, FACIL_BUS_STOP, FACIL_DOCK, FACIL_TRAIN, FACIL_TRUCK_STOP, BaseStation::facilities, Order::Free(), SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedStation< Station, false >::Get(), GetDepotIndex(), Order::GetDepotOrderType(), GetStationIndex(), ClientSettings::gui, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsBuoyTile(), RoadVehicle::IsBus(), IsDepotTypeTile(), Vehicle::IsGroundVehicle(), IsRailWaypointTile(), IsTileOwner(), IsTileType(), Order::MakeGoToDepot(), Order::MakeGoToStation(), Order::MakeGoToWaypoint(), MP_STATION, GUISettings::new_nonstop, ODTFB_PART_OF_ORDERS, ODTFB_SERVICE, OLF_FULL_LOAD_ANY, ONSF_NO_STOP_AT_ANY_STATION, ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS, ONSF_STOP_EVERYWHERE, OSL_PLATFORM_FAR_END, BaseStation::owner, OWNER_NONE, Order::SetDepotOrderType(), Order::SetLoadType(), Order::SetNonStopType(), Order::SetStopLocation(), GUISettings::stop_location, BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

Referenced by OrdersWindow::OnPlaceObject().

## Variable Documentation

const NWidgetPart _nested_orders_train_widgets[]
| static

Nested widget definition for "your" train orders.

Definition at line 1533 of file order_gui.cpp.

const NWidgetPart _nested_orders_widgets[]
| static

Nested widget definition for "your" orders (non-train).

Definition at line 1611 of file order_gui.cpp.

const NWidgetPart _nested_other_orders_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_O_CAPTION), SetDataTip(STR_ORDERS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_O_TIMETABLE_VIEW), SetMinimalSize(61, 14), SetDataTip(STR_ORDERS_TIMETABLE_VIEW, STR_ORDERS_TIMETABLE_VIEW_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_GREY, WID_O_ORDER_LIST), SetMinimalSize(372, 72), SetDataTip(0x0, STR_ORDERS_LIST_TOOLTIP), SetResize(1, 1), SetScrollbar(WID_O_SCROLLBAR), EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_O_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
EndContainer(),
EndContainer(),
}

Nested widget definition for competitor orders.

Definition at line 1684 of file order_gui.cpp.

const StringID _order_conditional_condition[]
| static

Initial value:
{
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS,
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS,
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN,
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS,
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN,
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS,
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE,
STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE,
INVALID_STRING_ID,
}

Definition at line 162 of file order_gui.cpp.

const OrderConditionVariable _order_conditional_variable[]
| static

Initial value:
{
OCV_LOAD_PERCENTAGE,
OCV_RELIABILITY,
OCV_MAX_SPEED,
OCV_AGE,
OCV_REMAINING_LIFETIME,
OCV_REQUIRES_SERVICE,
OCV_UNCONDITIONALLY,
}

Variables for conditional orders; this defines the order of appearance in the dropdown box.

Definition at line 152 of file order_gui.cpp.

Referenced by OrdersWindow::OnClick(), and OrdersWindow::UpdateWidgetSize().

const StringID _order_depot_action_dropdown[]
| static

Initial value:
{
STR_ORDER_DROP_GO_ALWAYS_DEPOT,
STR_ORDER_DROP_SERVICE_DEPOT,
STR_ORDER_DROP_HALT_DEPOT,
INVALID_STRING_ID
}

Definition at line 177 of file order_gui.cpp.

const StringID _order_full_load_drowdown[]
| static

Initial value:
{
STR_ORDER_DROP_LOAD_IF_POSSIBLE,
STR_EMPTY,
STR_ORDER_DROP_FULL_LOAD_ALL,
STR_ORDER_DROP_FULL_LOAD_ANY,
STR_ORDER_DROP_NO_LOADING,
INVALID_STRING_ID
}

Definition at line 117 of file order_gui.cpp.

const StringID _order_goto_dropdown[]
| static

Initial value:
{
STR_ORDER_GO_TO,
STR_ORDER_GO_TO_NEAREST_DEPOT,
STR_ORDER_CONDITIONAL,
STR_ORDER_SHARE,
INVALID_STRING_ID
}

Definition at line 135 of file order_gui.cpp.

const StringID _order_goto_dropdown_aircraft[]
| static

Initial value:
{
STR_ORDER_GO_TO,
STR_ORDER_GO_TO_NEAREST_HANGAR,
STR_ORDER_CONDITIONAL,
STR_ORDER_SHARE,
INVALID_STRING_ID
}

Definition at line 143 of file order_gui.cpp.

const StringID _order_non_stop_drowdown[]
| static

Initial value:
{
STR_ORDER_GO_TO,
STR_ORDER_GO_NON_STOP_TO,
STR_ORDER_GO_VIA,
STR_ORDER_GO_NON_STOP_VIA,
INVALID_STRING_ID
}

Definition at line 109 of file order_gui.cpp.

const StringID _order_refit_action_dropdown[]
| static

Initial value:
{
STR_ORDER_DROP_REFIT_AUTO,
STR_ORDER_DROP_REFIT_AUTO_ANY,
INVALID_STRING_ID
}

Definition at line 195 of file order_gui.cpp.

const StringID _order_unload_drowdown[]
| static

Initial value:
{
STR_ORDER_DROP_UNLOAD_IF_ACCEPTED,
STR_ORDER_DROP_UNLOAD,
STR_ORDER_DROP_TRANSFER,
STR_EMPTY,
STR_ORDER_DROP_NO_UNLOADING,
INVALID_STRING_ID
}

Definition at line 126 of file order_gui.cpp.

const StringID _station_load_types[][5][5]
| static

Order load types that could be given to station orders.

Definition at line 39 of file order_gui.cpp.

Referenced by DrawOrderString().

Hotkey order_hotkeys[]
| static

Initial value:
{
Hotkey('D', "skip", OHK_SKIP),
Hotkey('F', "delete", OHK_DELETE),
Hotkey('G', "goto", OHK_GOTO),
Hotkey('H', "nonstop", OHK_NONSTOP),
Hotkey('J', "fullload", OHK_FULLLOAD),
Hotkey('K', "unload", OHK_UNLOAD),
Hotkey((uint16)0, "nearest_depot", OHK_NEAREST_DEPOT),
Hotkey((uint16)0, "always_service", OHK_ALWAYS_SERVICE),
Hotkey((uint16)0, "transfer", OHK_TRANSFER),
Hotkey((uint16)0, "no_unload", OHK_NO_UNLOAD),
Hotkey((uint16)0, "no_load", OHK_NO_LOAD),
HOTKEY_LIST_END
}

Definition at line 1516 of file order_gui.cpp.