OpenTTD

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

- File List
- Globals

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

GUI to create amazing water objects. More...

`#include "stdafx.h"`
`#include "terraform_gui.h"`
`#include "window_gui.h"`
`#include "station_gui.h"`
`#include "command_func.h"`
`#include "water.h"`
`#include "window_func.h"`
`#include "vehicle_func.h"`
`#include "sound_func.h"`
`#include "viewport_func.h"`
`#include "gfx_func.h"`
`#include "company_func.h"`
`#include "slope_func.h"`
`#include "tilehighlight_func.h"`
`#include "company_base.h"`
`#include "hotkeys.h"`
`#include "gui.h"`
`#include "zoom_func.h"`
`#include "widgets/dock_widget.h"`
`#include "table/sprites.h"`
`#include "table/strings.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | BuildDocksToolbarWindow
| Toolbar window for constructing water infrastructure. More...
struct | BuildDocksStationWindow
struct | BuildDocksDepotWindow

## Enumerations
enum | BuildDockStationWidgets { BDSW_BACKGROUND, BDSW_LT_OFF, BDSW_LT_ON, BDSW_INFO }
| Widget numbers of the build-dock GUI. More...

## Functions
static void | ShowBuildDockStationPicker (Window *parent)
static void | ShowBuildDocksDepotPicker (Window *parent)
void | CcBuildDocks (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
void | CcBuildCanal (const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
static TileIndex | GetOtherAqueductEnd (TileIndex tile_from, TileIndex *tile_to=NULL)
| Gets the other end of the aqueduct, if possible.
static EventState | DockToolbarGlobalHotkeys (int hotkey)
| Handler for global hotkeys of the BuildDocksToolbarWindow.
Window * | ShowBuildDocksToolbar ()
| Open the build water toolbar window.
Window * | ShowBuildDocksScenToolbar ()
| Open the build water toolbar window for the scenario editor.
void | InitializeDockGui ()

## Variables
static Axis | _ship_depot_direction
const uint16 | _dockstoolbar_aqueduct_keys [] = {'B', '8', 0}
static Hotkey | dockstoolbar_hotkeys []
static const NWidgetPart | _nested_build_docks_toolbar_widgets []
| Nested widget parts of docks toolbar, game version.
static WindowDesc | _build_docks_toolbar_desc (WDP_ALIGN_TOOLBAR,"toolbar_water", 0, 0, WC_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_docks_toolbar_widgets, lengthof(_nested_build_docks_toolbar_widgets),&BuildDocksToolbarWindow::hotkeys)
static const NWidgetPart | _nested_build_docks_scen_toolbar_widgets []
| Nested widget parts of docks toolbar, scenario editor version.
static WindowDesc | _build_docks_scen_toolbar_desc (WDP_AUTO,"toolbar_water_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_docks_scen_toolbar_widgets, lengthof(_nested_build_docks_scen_toolbar_widgets))
| Window definition for the build docks in scenario editor window.
static const NWidgetPart | _nested_build_dock_station_widgets []
| Nested widget parts of a build dock station window.
static WindowDesc | _build_dock_station_desc (WDP_AUTO, NULL, 0, 0, WC_BUILD_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_dock_station_widgets, lengthof(_nested_build_dock_station_widgets))
static const NWidgetPart | _nested_build_docks_depot_widgets []
static WindowDesc | _build_docks_depot_desc (WDP_AUTO, NULL, 0, 0, WC_BUILD_DEPOT, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_docks_depot_widgets, lengthof(_nested_build_docks_depot_widgets))

## Detailed Description

GUI to create amazing water objects.

Definition in file dock_gui.cpp.

## Enumeration Type Documentation

enum BuildDockStationWidgets

Widget numbers of the build-dock GUI.

Enumerator:

  BDSW_BACKGROUND | Background panel.
  BDSW_LT_OFF | 'Off' button of coverage high light.
  BDSW_LT_ON | 'On' button of coverage high light.
  BDSW_INFO | 'Coverage highlight' label.

Definition at line 393 of file dock_gui.cpp.

## Function Documentation

static EventState DockToolbarGlobalHotkeys | ( | int | hotkey | ) |
| static

Handler for global hotkeys of the BuildDocksToolbarWindow.

Parameters

  hotkey | Hotkey

Returns
  ES_HANDLED if hotkey was accepted.

Definition at line 286 of file dock_gui.cpp.

References ES_NOT_HANDLED, Window::OnHotkey(), and ShowBuildDocksToolbar().

static TileIndex GetOtherAqueductEnd | ( | TileIndex | tile_from,
|  | TileIndex * | tile_to = `NULL`
| ) |  |
| static

Gets the other end of the aqueduct, if possible.

Parameters

  | tile_from | The begin tile for the aqueduct.
  [out] | tile_to | The tile till where to show a selection for the aqueduct.

Returns
  The other end of the aqueduct, or otherwise a tile in line with the aqueduct to cause the right error message.

Definition at line 63 of file dock_gui.cpp.

References _settings_game, GameSettings::construction, DistanceFromEdgeDir(), GetInclinedSlopeDirection(), GetTileMaxZ(), GetTileSlope(), IsValidDiagDirection(), IsValidTile(), ConstructionSettings::max_bridge_length, min(), ReverseDiagDir(), TILE_ADD, TILE_ADDXY, TileOffsByDiagDir(), TileX(), and TileY().

Referenced by BuildDocksToolbarWindow::OnPlaceObject(), and BuildDocksToolbarWindow::OnPlacePresize().

Window* ShowBuildDocksScenToolbar | ( |  | ) |

Open the build water toolbar window for the scenario editor.

Returns
  newly opened water toolbar, or NULL if the toolbar could not be opened.

Definition at line 387 of file dock_gui.cpp.

References _build_docks_scen_toolbar_desc, and TRANSPORT_WATER.

Window* ShowBuildDocksToolbar | ( |  | ) |

Open the build water toolbar window.

If the terraform toolbar is linked to the toolbar, that window is also opened.

Returns
  newly opened water toolbar, or NULL if the toolbar could not be opened.

Definition at line 346 of file dock_gui.cpp.

References _local_company, DeleteWindowByClass(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), TRANSPORT_WATER, and WC_BUILD_TOOLBAR.

Referenced by DockToolbarGlobalHotkeys(), MenuClickBuildWater(), and MainToolbarWindow::OnHotkey().

## Variable Documentation

WindowDesc _build_docks_scen_toolbar_desc(WDP_AUTO,"toolbar_water_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_docks_scen_toolbar_widgets, lengthof(_nested_build_docks_scen_toolbar_widgets))
| static

Window definition for the build docks in scenario editor window.

Referenced by ShowBuildDocksScenToolbar().

const NWidgetPart _nested_build_dock_station_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_STATION_BUILD_DOCK_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BDSW_BACKGROUND),
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BDSW_INFO), SetMinimalSize(148, 14), SetDataTip(STR_STATION_BUILD_COVERAGE_AREA_TITLE, STR_NULL),
NWidget(NWID_HORIZONTAL), SetPIP(14, 0, 14),
NWidget(WWT_TEXTBTN, COLOUR_GREY, BDSW_LT_OFF), SetMinimalSize(40, 12), SetFill(1, 0), SetDataTip(STR_STATION_BUILD_COVERAGE_OFF, STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, BDSW_LT_ON), SetMinimalSize(40, 12), SetFill(1, 0), SetDataTip(STR_STATION_BUILD_COVERAGE_ON, STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(0, 20), SetResize(0, 1),
EndContainer(),
}

Nested widget parts of a build dock station window.

Definition at line 461 of file dock_gui.cpp.

const NWidgetPart _nested_build_docks_depot_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_DEPOT_BUILD_SHIP_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_BDD_BACKGROUND),
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
NWidget(NWID_HORIZONTAL_LTR),
NWidget(NWID_SPACER), SetMinimalSize(3, 0),
NWidget(WWT_PANEL, COLOUR_GREY, WID_BDD_X), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
NWidget(WWT_PANEL, COLOUR_GREY, WID_BDD_Y), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(3, 0),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(0, 3),
EndContainer(),
}

Definition at line 550 of file dock_gui.cpp.

const NWidgetPart _nested_build_docks_scen_toolbar_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_WATERWAYS_TOOLBAR_CAPTION_SE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_CANAL), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUILD_CANAL, STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_LOCK), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUILD_LOCK, STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetMinimalSize(5, 22), SetFill(1, 1), EndContainer(),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_DEMOLISH), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_DYNAMITE, STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_RIVER), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUILD_RIVER, STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_BUILD_AQUEDUCT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_AQUEDUCT, STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP),
EndContainer(),
}

Nested widget parts of docks toolbar, scenario editor version.

Positions of WID_DT_DEPOT, WID_DT_STATION, and WID_DT_BUOY widgets have changed.

Definition at line 358 of file dock_gui.cpp.

const NWidgetPart _nested_build_docks_toolbar_widgets[]
| static

Initial value:
{
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_WATERWAYS_TOOLBAR_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
EndContainer(),
NWidget(NWID_HORIZONTAL_LTR),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_CANAL), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUILD_CANAL, STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_LOCK), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUILD_LOCK, STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetMinimalSize(5, 22), SetFill(1, 1), EndContainer(),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_DEMOLISH), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_DYNAMITE, STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_DEPOT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_SHIP_DEPOT, STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_STATION), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_SHIP_DOCK, STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_BUOY), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_BUOY, STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_DT_BUILD_AQUEDUCT), SetMinimalSize(23, 22), SetFill(0, 1), SetDataTip(SPR_IMG_AQUEDUCT, STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP),
EndContainer(),
}

Nested widget parts of docks toolbar, game version.

Position of WID_DT_RIVER widget has changed.

Definition at line 313 of file dock_gui.cpp.

Hotkey dockstoolbar_hotkeys[]
| static

Initial value:
{
Hotkey('1', "canal", WID_DT_CANAL),
Hotkey('2', "lock", WID_DT_LOCK),
Hotkey('3', "demolish", WID_DT_DEMOLISH),
Hotkey('4', "depot", WID_DT_DEPOT),
Hotkey('5', "dock", WID_DT_STATION),
Hotkey('6', "buoy", WID_DT_BUOY),
Hotkey('7', "river", WID_DT_RIVER),
Hotkey(_dockstoolbar_aqueduct_keys, "aqueduct", WID_DT_BUILD_AQUEDUCT),
HOTKEY_LIST_END
}

Definition at line 296 of file dock_gui.cpp.