tilehighlight_type.h

Go to the documentation of this file.
00001 /* $Id$ */
00002 
00003 /*
00004  * This file is part of OpenTTD.
00005  * 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.
00006  * 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.
00007  * 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/>.
00008  */
00009 
00012 #ifndef TILEHIGHLIGHT_TYPE_H
00013 #define TILEHIGHLIGHT_TYPE_H
00014 
00015 #include "core/geometry_type.hpp"
00016 #include "window_type.h"
00017 #include "tile_type.h"
00018 #include "viewport_type.h"
00019 
00021 enum HighLightStyle {
00022   HT_NONE      = 0x000, 
00023   HT_RECT      = 0x010, 
00024   HT_POINT     = 0x020, 
00025   HT_SPECIAL   = 0x030, 
00026   HT_DRAG      = 0x040, 
00027   HT_LINE      = 0x008, 
00028   HT_RAIL      = 0x080, 
00029   HT_VEHICLE   = 0x100, 
00030   HT_DIAGONAL  = 0x200, 
00031   HT_DRAG_MASK = 0x0F8, 
00032 
00033   /* lower bits (used with HT_LINE and HT_RAIL):
00034    * (see ASCII art in table/autorail.h for a visual interpretation) */
00035   HT_DIR_X  = 0,    
00036   HT_DIR_Y  = 1,    
00037   HT_DIR_HU = 2,    
00038   HT_DIR_HL = 3,    
00039   HT_DIR_VL = 4,    
00040   HT_DIR_VR = 5,    
00041   HT_DIR_END,       
00042   HT_DIR_MASK = 0x7 
00043 };
00044 DECLARE_ENUM_AS_BIT_SET(HighLightStyle)
00045 
00046 
00047 
00048 struct TileHighlightData {
00049   Point pos;           
00050   Point size;          
00051   Point offs;          
00052   Point outersize;     
00053   bool diagonal;       
00054 
00055   Point new_pos;       
00056   Point new_size;      
00057   Point new_outersize; 
00058   byte dirty;          
00059 
00060   Point selstart;      
00061   Point selend;        
00062   byte sizelimit;      
00063 
00064   HighLightStyle drawstyle;      
00065   HighLightStyle next_drawstyle; 
00066 
00067   HighLightStyle place_mode;     
00068   WindowClass window_class;      
00069   WindowNumber window_number;    
00070 
00071   bool make_square_red;          
00072   TileIndex redsq;               
00073 
00074   ViewportPlaceMethod select_method;            
00075   ViewportDragDropSelectionProcess select_proc; 
00076 
00077   void Reset();
00078 
00079   bool IsDraggingDiagonal();
00080   Window *GetCallbackWnd();
00081 };
00082 
00083 #endif /* TILEHIGHLIGHT_TYPE_H */

Generated on Fri Jun 3 05:19:00 2011 for OpenTTD by  doxygen 1.6.1