Functions related to tile highlights. More...
#include "gfx_type.h"#include "tilehighlight_type.h"Go to the source code of this file.
Typedefs | |
| typedef void | PlaceProc (TileIndex tile) |
Functions | |
| void | PlaceProc_DemolishArea (TileIndex tile) |
| bool | GUIPlaceProcDragXY (ViewportDragDropSelectionProcess proc, TileIndex start_tile, TileIndex end_tile) |
| A central place to handle all X_AND_Y dragged GUI functions. | |
| bool | HandlePlacePushButton (Window *w, int widget, CursorID cursor, HighLightStyle mode, PlaceProc *placeproc) |
| This code is shared for the majority of the pushbuttons. | |
| void | SetObjectToPlaceWnd (CursorID icon, PaletteID pal, HighLightStyle mode, Window *w) |
| void | SetObjectToPlace (CursorID icon, PaletteID pal, HighLightStyle mode, WindowClass window_class, WindowNumber window_num) |
| void | ResetObjectToPlace () |
| void | VpSelectTilesWithMethod (int x, int y, ViewportPlaceMethod method) |
| Selects tiles while dragging. | |
| void | VpStartPlaceSizing (TileIndex tile, ViewportPlaceMethod method, ViewportDragDropSelectionProcess process) |
| highlighting tiles while only going over them with the mouse | |
| void | VpSetPresizeRange (TileIndex from, TileIndex to) |
| Highlights all tiles between a set of two tiles. | |
| void | VpSetPlaceSizingLimit (int limit) |
| void | UpdateTileSelection () |
| Updates tile highlighting for all cases. | |
Variables | |
| PlaceProc * | _place_proc |
| TileHighlightData | _thd |
Functions related to tile highlights.
Definition in file tilehighlight_func.h.
| bool GUIPlaceProcDragXY | ( | ViewportDragDropSelectionProcess | proc, | |
| TileIndex | start_tile, | |||
| TileIndex | end_tile | |||
| ) |
A central place to handle all X_AND_Y dragged GUI functions.
| proc | Procedure related to the dragging | |
| start_tile | Begin of the dragging | |
| end_tile | End of the dragging |
Definition at line 99 of file terraform_gui.cpp.
References _settings_game, CMD_CLEAR_AREA, CMD_LEVEL_LAND, CMD_MSG, GameSettings::construction, DDSP_CREATE_DESERT, DDSP_CREATE_ROCKS, DDSP_DEMOLISH_AREA, DDSP_LEVEL_AREA, DDSP_LOWER_AND_LEVEL_AREA, DDSP_RAISE_AND_LEVEL_AREA, DoCommandP(), ConstructionSettings::freeform_edges, GenerateDesertArea(), GenerateRockyArea(), MapMaxX(), MapMaxY(), TileDiffXY(), TileX(), and TileY().
Referenced by ScenarioEditorLandscapeGenerationWindow::OnPlaceMouseUp(), TerraformToolbarWindow::OnPlaceMouseUp(), BuildRoadToolbarWindow::OnPlaceMouseUp(), BuildRailToolbarWindow::OnPlaceMouseUp(), BuildDocksToolbarWindow::OnPlaceMouseUp(), and BuildAirToolbarWindow::OnPlaceMouseUp().
| bool HandlePlacePushButton | ( | Window * | w, | |
| int | widget, | |||
| CursorID | cursor, | |||
| HighLightStyle | mode, | |||
| PlaceProc * | placeproc | |||
| ) |
This code is shared for the majority of the pushbuttons.
Handles e.g. the pressing of a button (to build things), playing of click sound and sets certain parameters
| w | Window which called the function | |
| widget | ID of the widget (=button) that called this function | |
| cursor | How should the cursor image change? E.g. cursor with depot image in it | |
| mode | Tile highlighting mode, e.g. drawing a rectangle or a dot on the ground | |
| placeproc | Procedure which will be called when someone clicks on the map |
Definition at line 95 of file main_gui.cpp.
References Window::IsWidgetDisabled(), Window::IsWidgetLowered(), Window::LowerWidget(), Window::SetDirty(), Window::window_class, and Window::window_number.
Referenced by BuildRailClick_AutoRail(), BuildRailClick_AutoSignals(), BuildRailClick_Bridge(), BuildRailClick_Convert(), BuildRailClick_Demolish(), BuildRailClick_Depot(), BuildRailClick_E(), BuildRailClick_N(), BuildRailClick_NE(), BuildRailClick_NW(), BuildRailClick_Station(), BuildRailClick_Tunnel(), BuildRailClick_Waypoint(), BuildRoadClick_AutoRoad(), BuildRoadClick_X_Dir(), BuildRoadClick_Y_Dir(), EditorTerraformClick_Dynamite(), BuildTreesWindow::OnClick(), FoundTownWindow::OnClick(), and BuildIndustryWindow::OnClick().
| void UpdateTileSelection | ( | ) |
Updates tile highlighting for all cases.
Uses _thd.selstart and _thd.selend and _thd.place_mode (set elsewhere) to determine _thd.pos and _thd.size Also drawstyle is determined. Uses _thd.new.* as a buffer and calls SetSelectionTilesDirty() twice, Once for the old and once for the new selection. _thd is TileHighlightData, found in viewport.h
Definition at line 1938 of file viewport.cpp.
References GetAutorailHT(), HT_DIR_HL, HT_DIR_HU, HT_DIR_MASK, HT_DIR_VL, HT_DIR_VR, HT_DIR_X, HT_DIR_Y, HT_DRAG_MASK, HT_LINE, HT_NONE, HT_POINT, HT_RAIL, HT_RECT, HT_SPECIAL, SetSelectionTilesDirty(), Swap(), TILE_SIZE, and TILE_UNIT_MASK.
Referenced by StationJoinerNeeded().
| void VpSelectTilesWithMethod | ( | int | x, | |
| int | y, | |||
| ViewportPlaceMethod | method | |||
| ) |
Selects tiles while dragging.
| x | X coordinate of end of selection | |
| y | Y coordinate of end of selection | |
| method | modifies the way tiles are selected. Possible methods are VPM_* in viewport.h |
Definition at line 2502 of file viewport.cpp.
References _settings_client, abs(), CalcHeightdiff(), CalcRaildirsDrawstyle(), Clamp(), Delta(), DistanceManhattan(), ClientSettings::gui, HT_DIR_X, HT_DIR_Y, HT_LINE, HT_POINT, HT_RECT, GUISettings::measure_tooltip, ShowMeasurementTooltips(), TILE_SIZE, TileX(), TileY(), VPM_FIX_X, VPM_FIX_Y, VPM_RAILDIRS, VPM_SIGNALDIRS, VPM_X_AND_Y, VPM_X_AND_Y_LIMITED, VPM_X_LIMITED, VPM_X_OR_Y, and VPM_Y_LIMITED.
Referenced by BuildTreesWindow::OnPlaceDrag(), ScenarioEditorLandscapeGenerationWindow::OnPlaceDrag(), TerraformToolbarWindow::OnPlaceDrag(), BuildRoadToolbarWindow::OnPlaceDrag(), BuildRailToolbarWindow::OnPlaceDrag(), BuildDocksToolbarWindow::OnPlaceDrag(), and BuildAirToolbarWindow::OnPlaceDrag().
Highlights all tiles between a set of two tiles.
Used in dock and tunnel placement
| from | TileIndex of the first tile to highlight | |
| to | TileIndex of the last tile to highlight |
Definition at line 2082 of file viewport.cpp.
References DistanceManhattan(), HT_RECT, ShowMeasurementTooltips(), TILE_SIZE, TileX(), and TileY().
Referenced by BuildRoadToolbarWindow::OnPlacePresize(), BuildRailToolbarWindow::OnPlacePresize(), and BuildDocksToolbarWindow::OnPlacePresize().
1.6.1