diff options
author | tron <tron@openttd.org> | 2006-04-23 13:48:16 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-04-23 13:48:16 +0000 |
commit | 0347fb2ab67e942826523424c35ede66d27339fe (patch) | |
tree | 3f0769bd955cefba7ab80063e64546c1874e0a62 /slope.h | |
parent | b5ce99c52d1ce36f56431652f7fcc67eb9d5bf6d (diff) | |
download | openttd-0347fb2ab67e942826523424c35ede66d27339fe.tar.xz |
(svn r4541) Add a type for slopes and replace many magic numbers by the appropriate enums
Diffstat (limited to 'slope.h')
-rw-r--r-- | slope.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/slope.h b/slope.h new file mode 100644 index 000000000..8ed509e2b --- /dev/null +++ b/slope.h @@ -0,0 +1,41 @@ +/* $Id$ */ + +#ifndef SLOPE_H +#define SLOPE_H + +typedef enum Slope { + SLOPE_FLAT = 0x00, + SLOPE_W = 0x01, + SLOPE_S = 0x02, + SLOPE_E = 0x04, + SLOPE_N = 0x08, + SLOPE_STEEP = 0x10, + SLOPE_NW = SLOPE_N | SLOPE_W, + SLOPE_SW = SLOPE_S | SLOPE_W, + SLOPE_SE = SLOPE_S | SLOPE_E, + SLOPE_NE = SLOPE_N | SLOPE_E, + SLOPE_EW = SLOPE_E | SLOPE_W, + SLOPE_NS = SLOPE_N | SLOPE_S, + SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, + SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, + SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, + SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, + SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, + SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, + SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, + SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, + SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW +} Slope; + +static inline bool IsSteepSlope(Slope s) +{ + return (s & SLOPE_STEEP) != 0; +} + +static inline Slope ComplementSlope(Slope s) +{ + assert(!IsSteepSlope(s)); + return (Slope)(0xF ^ s); +} + +#endif |