OpenTTD
tilehighlight_type.h
Go to the documentation of this file.
1 /* $Id: tilehighlight_type.h 23595 2011-12-19 17:48:04Z rubidium $ */
2 
3 /*
4  * This file is part of OpenTTD.
5  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8  */
9 
12 #ifndef TILEHIGHLIGHT_TYPE_H
13 #define TILEHIGHLIGHT_TYPE_H
14 
15 #include "core/geometry_type.hpp"
16 #include "window_type.h"
17 #include "tile_type.h"
18 #include "viewport_type.h"
19 
22  HT_NONE = 0x000,
23  HT_RECT = 0x010,
24  HT_POINT = 0x020,
25  HT_SPECIAL = 0x030,
26  HT_DRAG = 0x040,
27  HT_LINE = 0x008,
28  HT_RAIL = 0x080,
29  HT_VEHICLE = 0x100,
30  HT_DIAGONAL = 0x200,
31  HT_DRAG_MASK = 0x0F8,
32 
33  /* lower bits (used with HT_LINE and HT_RAIL):
34  * (see ASCII art in table/autorail.h for a visual interpretation) */
35  HT_DIR_X = 0,
36  HT_DIR_Y = 1,
37  HT_DIR_HU = 2,
38  HT_DIR_HL = 3,
39  HT_DIR_VL = 4,
40  HT_DIR_VR = 5,
42  HT_DIR_MASK = 0x7,
43 };
45 
46 
47 
53  bool diagonal;
54 
58  byte dirty;
59 
62  byte sizelimit;
63 
66 
70 
73 
76 
77  void Reset();
78 
79  bool IsDraggingDiagonal();
80  Window *GetCallbackWnd();
81 };
82 
83 #endif /* TILEHIGHLIGHT_TYPE_H */
ViewportDragDropSelectionProcess
Drag and drop selection process, or, what to do with an area of land when you&#39;ve selected it...
Definition: viewport_type.h:97
Y direction.
WindowNumber window_number
The WindowNumber of the window that is responsible for the selection mode.
DECLARE_ENUM_AS_BIT_SET(GenderEthnicity) enum CompanyManagerFaceVariable
Bitgroups of the CompanyManagerFace variable.
Point pos
Location, in tile "units", of the northern tile of the selected area.
vertical right
Types related to windows.
X direction.
Point size
Size, in tile "units", of the white/red selection area.
Point new_size
New value for size; used to determine whether to redraw the selection.
Point new_pos
New value for pos; used to determine whether to redraw the selection.
WindowClass
Window classes.
Definition: window_type.h:39
vertical left
HighLightStyle place_mode
Method which is used to place the selection.
Types related to viewports.
Data structure for an opened window.
Definition: window_gui.h:271
dragging items in the depot windows
Point selstart
The location where the dragging started.
byte sizelimit
Whether the selection is limited in length, and what the maximum length is.
Point selend
The location where the drag currently ends.
masks the drag-direction
Point offs
Offset, in tile "units", for the blue coverage area from the selected area&#39;s northern tile...
ViewportPlaceMethod
Viewport place method (type of highlighted area and placed objects)
Definition: viewport_type.h:78
end marker
rectangle (stations, depots, ...)
ViewportPlaceMethod select_method
The method which governs how tiles are selected.
HighLightStyle drawstyle
Lower bits 0-3 are reserved for detailed highlight information.
autorail (one piece), lower bits: direction
Also allow &#39;diagonal rectangles&#39;. Only usable in combination with HT_RECT or HT_POINT.
Point new_outersize
New value for outersize; used to determine whether to redraw the selection.
bool make_square_red
Whether to give a tile a red selection.
point (lower land, raise land, level land, ...)
ViewportDragDropSelectionProcess select_proc
The procedure that has to be called when the selection is done.
Mask for the tile drag-type modes.
default
uint32 TileIndex
The index/ID of a Tile.
Definition: tile_type.h:80
bool diagonal
Whether the dragged area is a 45 degrees rotated rectangle.
TileIndex redsq
The tile that has to get a red selection.
All geometry types in OpenTTD.
Coordinates of a point in 2D.
used for autorail highlighting (longer stretches), lower bits: direction
special mode used for highlighting while dragging (and for tunnels/docks)
HighLightStyle
Highlighting draw styles.
vehicle is accepted as target as well (bitmask)
horizontal lower
Metadata about the current highlighting.
int32 WindowNumber
Number to differentiate different windows of the same class.
Definition: window_type.h:695
horizontal upper
WindowClass window_class
The WindowClass of the window that is responsible for the selection mode.
HighLightStyle next_drawstyle
Queued, but not yet drawn style.
Types related to tiles.
Point outersize
Size, in tile "units", of the blue coverage area excluding the side of the selected area...
byte dirty
Whether the build station window needs to redraw due to the changed selection.