OpenTTD Source: src/bridge_gui.cpp File Reference

OpenTTD Source 12.0-beta1

Data Structures | Typedefs | Functions | Variables
bridge_gui.cpp File Reference
`#include "stdafx.h"`
`#include "error.h"`
`#include "command_func.h"`
`#include "rail.h"`
`#include "road.h"`
`#include "strings_func.h"`
`#include "window_func.h"`
`#include "sound_func.h"`
`#include "gfx_func.h"`
`#include "tunnelbridge.h"`
`#include "sortlist_type.h"`
`#include "widgets/dropdown_func.h"`
`#include "core/geometry_func.hpp"`
`#include "cmd_helper.h"`
`#include "tunnelbridge_map.h"`
`#include "road_gui.h"`
`#include "widgets/bridge_widget.h"`
`#include "table/strings.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | BuildBridgeData
| Carriage for the data we need if we want to build a bridge. More...
class | BuildBridgeWindow
| Window class for handling the bridge-build GUI. More...

## Typedefs
typedef GUIList< BuildBridgeData > | GUIBridgeList
| List of bridges, used in BuildBridgeWindow.

## Functions
void | CcBuildBridge (const CommandCost &result, TileIndex end_tile, uint32 p1, uint32 p2, uint32 cmd)
| Callback executed after a build Bridge CMD has been called. More...
void | ShowBuildBridgeWindow (TileIndex start, TileIndex end, TransportType transport_type, byte road_rail_type)
| Prepare the data for the build a bridge window. More...

## Variables
static BridgeType | _last_railbridge_type = 0
| The type of the last built rail bridge.
static BridgeType | _last_roadbridge_type = 0
| The type of the last built road bridge.
static const NWidgetPart | _nested_build_bridge_widgets []
| Widgets of the bridge gui. More...
static WindowDesc | _build_bridge_desc (WDP_AUTO, "build_bridge", 200, 114, WC_BUILD_BRIDGE, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_bridge_widgets, lengthof(_nested_build_bridge_widgets))
| Window definition for the rail bridge selection window.

## Detailed Description

Graphical user interface for bridge construction

Definition in file bridge_gui.cpp.

## Function Documentation

## ◆ CcBuildBridge()

void CcBuildBridge | ( | const CommandCost & | result,
|  | TileIndex | end_tile,
|  | uint32 | p1,
|  | uint32 | p2,
|  | uint32 | cmd
| ) |  |

Callback executed after a build Bridge CMD has been called.

Parameters

  result | Whether the build succeeded
  end_tile | End tile of the bridge.
  p1 | packed start tile coords (~ dx)
  p2 | various bitstuffed elements p2 = (bit 0- 7) - bridge type (hi bh) p2 = (bit 8-13) - rail type or road types. p2 = (bit 15-16) - transport type.
  cmd | unused

Definition at line 61 of file bridge_gui.cpp.

References _settings_client, SoundSettings::confirm, CommandCost::Failed(), and ClientSettings::sound.

Referenced by ShowBuildBridgeWindow().

## ◆ ShowBuildBridgeWindow()

void ShowBuildBridgeWindow | ( | TileIndex | start,
|  | TileIndex | end,
|  | TransportType | transport_type,
|  | byte | road_rail_type
| ) |  |

Prepare the data for the build a bridge window.

If we can't build a bridge under the given conditions show an error message.

Parameters

  start | The start tile of the bridge
  end | The end tile of the bridge
  transport_type | The transport type
  road_rail_type | The road/rail type

Definition at line 361 of file bridge_gui.cpp.

References _ctrl_pressed, _last_railbridge_type, _last_roadbridge_type, CalcBridgeLenCostFactor(), CcBuildBridge(), CheckBridgeAvailability(), CloseWindowByClass(), CMD_BUILD_BRIDGE, CMD_MSG, CommandFlagsToDCFlags(), DC_QUERY_COST, DoCommand(), DoCommandP(), CommandCost::Failed(), GetCommandFlags(), CommandCost::GetErrorMessage(), GetTunnelBridgeLength(), INVALID_ROADTYPE, INVALID_STRING_ID, IsBridgeTile(), TRANSPORT_RAIL, TRANSPORT_ROAD, and WC_BUILD_BRIDGE.

## Variable Documentation

## ◆ _nested_build_bridge_widgets

const NWidgetPart _nested_build_bridge_widgets[]
| static

Initial value:
= {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BBS_CAPTION), SetDataTip(STR_SELECT_RAIL_BRIDGE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_DEFSIZEBOX, COLOUR_DARK_GREEN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_VERTICAL),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_DARK_GREEN, WID_BBS_DROPDOWN_ORDER), SetFill(1, 0), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
NWidget(WWT_DROPDOWN, COLOUR_DARK_GREEN, WID_BBS_DROPDOWN_CRITERIA), SetFill(1, 0), SetDataTip(0x0, STR_TOOLTIP_SORT_CRITERIA),
EndContainer(),
NWidget(WWT_MATRIX, COLOUR_DARK_GREEN, WID_BBS_BRIDGE_LIST), SetFill(1, 0), SetResize(0, 22), SetMatrixDataTip(1, 0, STR_SELECT_BRIDGE_SELECTION_TOOLTIP), SetScrollbar(WID_BBS_SCROLLBAR),
EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_VSCROLLBAR, COLOUR_DARK_GREEN, WID_BBS_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_DARK_GREEN),
EndContainer(),
EndContainer(),
}

Widgets of the bridge gui.

Definition at line 316 of file bridge_gui.cpp.

SetScrollbar
static NWidgetPart SetScrollbar(int index)
Attach a scrollbar to a widget.
Definition: widget_type.h:1188
WWT_CAPTION
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:59
WWT_DEFSIZEBOX
@ WWT_DEFSIZEBOX
Default window size box (at top-right of a window, between WWT_SHADEBOX and WWT_STICKYBOX)
Definition: widget_type.h:63
NWID_HORIZONTAL
@ NWID_HORIZONTAL
Horizontal container.
Definition: widget_type.h:73
WWT_MATRIX
@ WWT_MATRIX
Grid of rows and columns.
Definition: widget_type.h:57
SetResize
static NWidgetPart SetResize(int16 dx, int16 dy)
Widget part function for setting the resize step.
Definition: widget_type.h:993
SetDataTip
static NWidgetPart SetDataTip(uint32 data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1107
WID_BBS_SCROLLBAR
@ WID_BBS_SCROLLBAR
Scrollbar of the list.
Definition: bridge_widget.h:19
SetMatrixDataTip
static NWidgetPart SetMatrixDataTip(uint8 cols, uint8 rows, StringID tip)
Widget part function for setting the data and tooltip of WWT_MATRIX widgets.
Definition: widget_type.h:1125
WID_BBS_DROPDOWN_CRITERIA
@ WID_BBS_DROPDOWN_CRITERIA
Criteria of sort dropdown.
Definition: bridge_widget.h:17
WID_BBS_BRIDGE_LIST
@ WID_BBS_BRIDGE_LIST
List of bridges.
Definition: bridge_widget.h:18
NWID_VERTICAL
@ NWID_VERTICAL
Vertical container.
Definition: widget_type.h:75
WWT_CLOSEBOX
@ WWT_CLOSEBOX
Close box (at top-left of a window)
Definition: widget_type.h:67
WWT_RESIZEBOX
@ WWT_RESIZEBOX
Resize box (normally at bottom-right of a window)
Definition: widget_type.h:66
EndContainer
static NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
Definition: widget_type.h:1092
NWID_VSCROLLBAR
@ NWID_VSCROLLBAR
Vertical scrollbar.
Definition: widget_type.h:82
NWidget
static NWidgetPart NWidget(WidgetType tp, Colours col, int16 idx=-1)
Widget part function for starting a new 'real' widget.
Definition: widget_type.h:1207
SetFill
static NWidgetPart SetFill(uint fill_x, uint fill_y)
Widget part function for setting filling.
Definition: widget_type.h:1076
WID_BBS_CAPTION
@ WID_BBS_CAPTION
Caption of the window.
Definition: bridge_widget.h:15
WID_BBS_DROPDOWN_ORDER
@ WID_BBS_DROPDOWN_ORDER
Direction of sort dropdown.
Definition: bridge_widget.h:16
WWT_TEXTBTN
@ WWT_TEXTBTN
(Toggle) Button with text
Definition: widget_type.h:53
WWT_DROPDOWN
@ WWT_DROPDOWN
Drop down list.
Definition: widget_type.h:68