tilehighlight_func.h File Reference

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, SpriteID pal, HighLightStyle mode, Window *w)
void SetObjectToPlace (CursorID icon, SpriteID 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


Detailed Description

Functions related to tile highlights.

Definition in file tilehighlight_func.h.


Function Documentation

bool GUIPlaceProcDragXY ( ViewportDragDropSelectionProcess  proc,
TileIndex  start_tile,
TileIndex  end_tile 
)

A central place to handle all X_AND_Y dragged GUI functions.

Parameters:
proc Procedure related to the dragging
start_tile Begin of the dragging
end_tile End of the dragging
Returns:
Returns true if the action was found and handled, and false otherwise. This allows for additional implements that are more local. For example X_Y drag of convertrail which belongs in rail_gui.cpp and not terraform_gui.cpp

Definition at line 99 of file terraform_gui.cpp.

References _settings_game, CMD_CLEAR_AREA, CMD_LEVEL_LAND, CMD_MSG, GameSettings::construction, DoCommandP(), ConstructionSettings::freeform_edges, GenerateDesertArea(), GenerateRockyArea(), MapMaxX(), MapMaxY(), TileDiffXY(), TileX(), and TileY().

Referenced by BuildRailToolbarWindow::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

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
Returns:
true if the button is clicked, false if it's unclicked

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, TILE_UNIT_MASK, Point::x, and Point::y.

Referenced by StationJoinerNeeded().

void VpSelectTilesWithMethod ( int  x,
int  y,
ViewportPlaceMethod  method 
)

Selects tiles while dragging.

Parameters:
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, and VPM_X_OR_Y.

Referenced by BuildTreesWindow::OnPlaceDrag(), and BuildRailToolbarWindow::OnPlaceDrag().

void VpSetPresizeRange ( TileIndex  from,
TileIndex  to 
)

Highlights all tiles between a set of two tiles.

Used in dock and tunnel placement

Parameters:
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 BuildRailToolbarWindow::OnPlacePresize().


Generated on Wed Jan 20 23:38:52 2010 for OpenTTD by  doxygen 1.5.6