|
OpenTTD Source
14.0-beta3
|
#include "stdafx.h"#include "gui.h"#include "window_gui.h"#include "station_gui.h"#include "terraform_gui.h"#include "viewport_func.h"#include "command_func.h"#include "road_cmd.h"#include "station_func.h"#include "window_func.h"#include "vehicle_func.h"#include "sound_func.h"#include "company_func.h"#include "tunnelbridge.h"#include "tunnelbridge_map.h"#include "tilehighlight_func.h"#include "company_base.h"#include "hotkeys.h"#include "road_gui.h"#include "zoom_func.h"#include "engine_base.h"#include "strings_func.h"#include "core/geometry_func.hpp"#include "station_cmd.h"#include "tunnelbridge_cmd.h"#include "newgrf_roadstop.h"#include "querystring_gui.h"#include "sortlist_type.h"#include "stringfilter_type.h"#include "string_func.h"#include "timer/timer.h"#include "timer/timer_game_calendar.h"#include "widgets/road_widget.h"#include "table/strings.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | RoadStopGUISettings |
| struct | BuildRoadToolbarWindow |
| Road toolbar window handler. More... | |
| struct | BuildRoadDepotWindow |
| struct | BuildRoadStationWindow |
Typedefs | |
| typedef void | OnButtonClick(Window *w) |
Enumerations | |
| enum | BuildRoadStopHotkeys { BROSHK_FOCUS_FILTER_BOX } |
| Enum referring to the Hotkeys in the build road stop window. More... | |
Functions | |
| static void | ShowRVStationPicker (Window *parent, RoadStopType rs) |
| static void | ShowRoadDepotPicker (Window *parent) |
| static bool | IsRoadStopAvailable (const RoadStopSpec *roadstopspec, StationType type) |
| Check whether a road stop type can be built. More... | |
| void | CcPlaySound_CONSTRUCTION_OTHER (Commands, const CommandCost &result, TileIndex tile) |
| static void | PlaceRoad_Bridge (TileIndex tile, Window *w) |
| Callback to start placing a bridge. More... | |
| void | CcBuildRoadTunnel (Commands, const CommandCost &result, TileIndex start_tile) |
| Callback executed after a build road tunnel command has been called. More... | |
| void | ConnectRoadToStructure (TileIndex tile, DiagDirection direction) |
| If required, connects a new structure to an existing road or tram by building the missing roadbit. More... | |
| void | CcRoadDepot (Commands, const CommandCost &result, TileIndex tile, RoadType, DiagDirection dir) |
| void | CcRoadStop (Commands, const CommandCost &result, TileIndex tile, uint8_t width, uint8_t length, RoadStopType, bool is_drive_through, DiagDirection dir, RoadType, RoadStopClassID spec_class, uint16_t spec_index, StationID, bool) |
| Command callback for building road stops. More... | |
| static void | PlaceRoadStop (TileIndex start_tile, TileIndex end_tile, RoadStopType stop_type, bool adjacent, RoadType rt, StringID err_msg) |
| Place a new road stop. More... | |
| static void | PlaceRoad_BusStation (TileIndex tile) |
| Callback for placing a bus station. More... | |
| static void | PlaceRoad_TruckStation (TileIndex tile) |
| Callback for placing a truck station. More... | |
| static void | ToggleRoadButton_Remove (Window *w) |
| Toggles state of the Remove button of Build road toolbar. More... | |
| static bool | RoadToolbar_CtrlChanged (Window *w) |
| Updates the Remove button because of Ctrl state change. More... | |
| Window * | ShowBuildRoadToolbar (RoadType roadtype) |
| Open the build road toolbar window. More... | |
| Window * | ShowBuildRoadScenToolbar (RoadType roadtype) |
| Show the road building toolbar in the scenario editor. More... | |
| void | InitializeRoadGui () |
| void | InitializeRoadGUI () |
| I really don't know why rail_gui.cpp has this too, shouldn't be included in the other one? | |
| DropDownList | GetRoadTypeDropDownList (RoadTramTypes rtts, bool for_replacement, bool all_option) |
| DropDownList | GetScenRoadTypeDropDownList (RoadTramTypes rtts) |
Variables | |
| static bool | _remove_button_clicked |
| static bool | _one_way_button_clicked |
| static Axis | _place_road_dir |
| static bool | _place_road_start_half_x |
| static bool | _place_road_start_half_y |
| static bool | _place_road_end_half |
| static RoadType | _cur_roadtype |
| static DiagDirection | _road_depot_orientation |
| static RoadStopGUISettings | _roadstop_gui_settings |
| static constexpr NWidgetPart | _nested_build_road_widgets [] |
| static WindowDesc | _build_road_desc (__FILE__, __LINE__, WDP_ALIGN_TOOLBAR, "toolbar_road", 0, 0, WC_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, std::begin(_nested_build_road_widgets), std::end(_nested_build_road_widgets), &BuildRoadToolbarWindow::road_hotkeys) |
| static constexpr NWidgetPart | _nested_build_tramway_widgets [] |
| static WindowDesc | _build_tramway_desc (__FILE__, __LINE__, WDP_ALIGN_TOOLBAR, "toolbar_tramway", 0, 0, WC_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, std::begin(_nested_build_tramway_widgets), std::end(_nested_build_tramway_widgets), &BuildRoadToolbarWindow::tram_hotkeys) |
| static constexpr NWidgetPart | _nested_build_road_scen_widgets [] |
| static WindowDesc | _build_road_scen_desc (__FILE__, __LINE__, WDP_AUTO, "toolbar_road_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, std::begin(_nested_build_road_scen_widgets), std::end(_nested_build_road_scen_widgets), &BuildRoadToolbarWindow::road_hotkeys) |
| static constexpr NWidgetPart | _nested_build_tramway_scen_widgets [] |
| static WindowDesc | _build_tramway_scen_desc (__FILE__, __LINE__, WDP_AUTO, "toolbar_tram_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, std::begin(_nested_build_tramway_scen_widgets), std::end(_nested_build_tramway_scen_widgets), &BuildRoadToolbarWindow::tram_hotkeys) |
| static constexpr NWidgetPart | _nested_build_road_depot_widgets [] |
| static WindowDesc | _build_road_depot_desc (__FILE__, __LINE__, WDP_AUTO, nullptr, 0, 0, WC_BUILD_DEPOT, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, std::begin(_nested_build_road_depot_widgets), std::end(_nested_build_road_depot_widgets)) |
| static constexpr NWidgetPart | _nested_road_station_picker_widgets [] |
| Widget definition of the build road station window. | |
| static WindowDesc | _road_station_picker_desc (__FILE__, __LINE__, WDP_AUTO, "build_station_road", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, std::begin(_nested_road_station_picker_widgets), std::end(_nested_road_station_picker_widgets), &BuildRoadStationWindow::road_hotkeys) |
| static constexpr NWidgetPart | _nested_tram_station_picker_widgets [] |
| Widget definition of the build tram station window. | |
| static WindowDesc | _tram_station_picker_desc (__FILE__, __LINE__, WDP_AUTO, "build_station_tram", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, std::begin(_nested_tram_station_picker_widgets), std::end(_nested_tram_station_picker_widgets), &BuildRoadStationWindow::tram_hotkeys) |
GUI for building roads.
Definition in file road_gui.cpp.
| enum BuildRoadStopHotkeys |
Enum referring to the Hotkeys in the build road stop window.
| Enumerator | |
|---|---|
| BROSHK_FOCUS_FILTER_BOX | Focus the edit box for editing the filter string. |
Definition at line 1095 of file road_gui.cpp.
| void CcBuildRoadTunnel | ( | Commands | , |
| const CommandCost & | result, | ||
| TileIndex | start_tile | ||
| ) |
Callback executed after a build road tunnel command has been called.
| result | Whether the build succeeded. |
| start_tile | Starting tile of the tunnel. |
Definition at line 127 of file road_gui.cpp.
| void CcRoadStop | ( | Commands | , |
| const CommandCost & | result, | ||
| TileIndex | tile, | ||
| uint8_t | width, | ||
| uint8_t | length, | ||
| RoadStopType | , | ||
| bool | is_drive_through, | ||
| DiagDirection | dir, | ||
| RoadType | , | ||
| RoadStopClassID | spec_class, | ||
| uint16_t | spec_index, | ||
| StationID | , | ||
| bool | |||
| ) |
Command callback for building road stops.
| result | Result of the build road stop command. |
| tile | Start tile. |
| width | Width of the road stop. |
| length | Length of the road stop. |
| is_drive_through | False for normal stops, true for drive-through. |
| dir | Entrance direction (DiagDirection) for normal stops. Converted to the axis for drive-through stops. |
| spec_class | Road stop spec class. |
| spec_index | Road stop spec index. |
Definition at line 181 of file road_gui.cpp.
| void ConnectRoadToStructure | ( | TileIndex | tile, |
| DiagDirection | direction | ||
| ) |
If required, connects a new structure to an existing road or tram by building the missing roadbit.
| tile | Tile containing the structure to connect. |
| direction | Direction to check. |
Definition at line 149 of file road_gui.cpp.
References GetRoadBits(), IsNormalRoadTile(), and TileOffsByDiagDir().
|
static |
Check whether a road stop type can be built.
Definition at line 78 of file road_gui.cpp.
References HasBit(), and RSF_BUILD_MENU_ROAD_ONLY.
Callback to start placing a bridge.
| tile | Start tile of the bridge. |
Definition at line 110 of file road_gui.cpp.
References DDSP_BUILD_BRIDGE, GetOtherTunnelBridgeEnd(), IsBridgeTile(), Window::OnPlaceMouseUp(), VPM_X_OR_Y, and VpStartPlaceSizing().
|
static |
Callback for placing a bus station.
| tile | Position to place the station. |
Definition at line 241 of file road_gui.cpp.
References _remove_button_clicked, DDSP_REMOVE_BUSSTOP, VPM_X_AND_Y, and VpStartPlaceSizing().
|
static |
Callback for placing a truck station.
| tile | Position to place the station. |
Definition at line 259 of file road_gui.cpp.
References _remove_button_clicked, DDSP_REMOVE_TRUCKSTOP, VPM_X_AND_Y, and VpStartPlaceSizing().
|
static |
Place a new road stop.
| start_tile | First tile of the area. |
| end_tile | Last tile of the area. |
| stop_type | Type of stop (bus/truck). |
| adjacent | Allow stations directly adjacent to other stations. |
| rt | The roadtypes. |
| err_msg | Error message to show. |
Definition at line 215 of file road_gui.cpp.
|
static |
Updates the Remove button because of Ctrl state change.
| w | window the button belongs to |
Definition at line 292 of file road_gui.cpp.
References Window::IsWidgetDisabled(), Window::IsWidgetLowered(), ToggleRoadButton_Remove(), WID_ROT_AUTOROAD, WID_ROT_REMOVE, and WID_ROT_ROAD_X.
Referenced by BuildRoadToolbarWindow::OnCTRLStateChange().
Show the road building toolbar in the scenario editor.
nullptr if the toolbar was already open. Definition at line 997 of file road_gui.cpp.
References CloseWindowById(), TRANSPORT_ROAD, and WC_SCEN_BUILD_TOOLBAR.
Open the build road toolbar window.
If the terraform toolbar is linked to the toolbar, that window is also opened.
Definition at line 910 of file road_gui.cpp.
References _local_company, CloseWindowByClass(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), ValParamRoadType(), and WC_BUILD_TOOLBAR.
|
static |
Toggles state of the Remove button of Build road toolbar.
| w | window the button belongs to |
Definition at line 279 of file road_gui.cpp.
References _remove_button_clicked, Window::IsWidgetLowered(), Window::SetWidgetDirty(), Window::ToggleWidgetLoweredState(), and WID_ROT_REMOVE.
Referenced by RoadToolbar_CtrlChanged().
|
staticconstexpr |
Definition at line 1063 of file road_gui.cpp.
|
staticconstexpr |
Definition at line 921 of file road_gui.cpp.
|
staticconstexpr |
Definition at line 958 of file road_gui.cpp.