slope_type.h

Go to the documentation of this file.
00001 /* $Id: slope_type.h 16246 2009-05-06 22:31:52Z rubidium $ */
00002 
00009 #ifndef SLOPE_TYPE_H
00010 #define SLOPE_TYPE_H
00011 
00012 #include "core/enum_type.hpp"
00013 
00017 enum Corner {
00018   CORNER_W = 0,
00019   CORNER_S = 1,
00020   CORNER_E = 2,
00021   CORNER_N = 3,
00022   CORNER_END,
00023   CORNER_INVALID = 0xFF
00024 };
00025 
00026 
00043 enum Slope {
00044   SLOPE_FLAT     = 0x00,                                  
00045   SLOPE_W        = 0x01,                                  
00046   SLOPE_S        = 0x02,                                  
00047   SLOPE_E        = 0x04,                                  
00048   SLOPE_N        = 0x08,                                  
00049   SLOPE_STEEP    = 0x10,                                  
00050   SLOPE_NW       = SLOPE_N | SLOPE_W,                     
00051   SLOPE_SW       = SLOPE_S | SLOPE_W,                     
00052   SLOPE_SE       = SLOPE_S | SLOPE_E,                     
00053   SLOPE_NE       = SLOPE_N | SLOPE_E,                     
00054   SLOPE_EW       = SLOPE_E | SLOPE_W,                     
00055   SLOPE_NS       = SLOPE_N | SLOPE_S,                     
00056   SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, 
00057   SLOPE_NWS      = SLOPE_N | SLOPE_W | SLOPE_S,           
00058   SLOPE_WSE      = SLOPE_W | SLOPE_S | SLOPE_E,           
00059   SLOPE_SEN      = SLOPE_S | SLOPE_E | SLOPE_N,           
00060   SLOPE_ENW      = SLOPE_E | SLOPE_N | SLOPE_W,           
00061   SLOPE_STEEP_W  = SLOPE_STEEP | SLOPE_NWS,               
00062   SLOPE_STEEP_S  = SLOPE_STEEP | SLOPE_WSE,               
00063   SLOPE_STEEP_E  = SLOPE_STEEP | SLOPE_SEN,               
00064   SLOPE_STEEP_N  = SLOPE_STEEP | SLOPE_ENW,               
00065 
00066   SLOPE_HALFTILE = 0x20,                                  
00067   SLOPE_HALFTILE_MASK = 0xE0,                             
00068   SLOPE_HALFTILE_W = SLOPE_HALFTILE | (CORNER_W << 6),    
00069   SLOPE_HALFTILE_S = SLOPE_HALFTILE | (CORNER_S << 6),    
00070   SLOPE_HALFTILE_E = SLOPE_HALFTILE | (CORNER_E << 6),    
00071   SLOPE_HALFTILE_N = SLOPE_HALFTILE | (CORNER_N << 6),    
00072 };
00073 DECLARE_ENUM_AS_BIT_SET(Slope)
00074 
00075 
00076 
00079 enum Foundation {
00080   FOUNDATION_NONE,             
00081   FOUNDATION_LEVELED,          
00082   FOUNDATION_INCLINED_X,       
00083   FOUNDATION_INCLINED_Y,       
00084   FOUNDATION_STEEP_LOWER,      
00085 
00086   /* Halftile foundations */
00087   FOUNDATION_STEEP_BOTH,       
00088   FOUNDATION_HALFTILE_W,       
00089   FOUNDATION_HALFTILE_S,       
00090   FOUNDATION_HALFTILE_E,       
00091   FOUNDATION_HALFTILE_N,       
00092 
00093   /* Special anti-zig-zag foundations for single horizontal/vertical track */
00094   FOUNDATION_RAIL_W,           
00095   FOUNDATION_RAIL_S,           
00096   FOUNDATION_RAIL_E,           
00097   FOUNDATION_RAIL_N,           
00098 
00099   FOUNDATION_INVALID = 0xFF    
00100 };
00101 
00102 #endif /* SLOPE_TYPE_H */

Generated on Wed Jun 3 19:05:14 2009 for OpenTTD by  doxygen 1.5.6