diff options
author | tron <tron@openttd.org> | 2006-03-05 12:34:55 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-03-05 12:34:55 +0000 |
commit | 586388c9f17a39b4d3a7e7706fe6b40191a922b4 (patch) | |
tree | 113bde0444e78799f198050654eba4d96e28702e /direction.h | |
parent | f007ad282c60cc1b2529b44c3e0b4c1bdab3d685 (diff) | |
download | openttd-586388c9f17a39b4d3a7e7706fe6b40191a922b4.tar.xz |
(svn r3767) Move all direction related enums and functions to a separate header
Diffstat (limited to 'direction.h')
-rw-r--r-- | direction.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/direction.h b/direction.h new file mode 100644 index 000000000..0300db8a9 --- /dev/null +++ b/direction.h @@ -0,0 +1,49 @@ +/* $Id$ */ + +#ifndef DIRECTION_H +#define DIRECTION_H + +/* Direction as commonly used in v->direction, 8 way. */ +typedef enum Direction { + DIR_N = 0, + DIR_NE = 1, /* Northeast, upper right on your monitor */ + DIR_E = 2, + DIR_SE = 3, + DIR_S = 4, + DIR_SW = 5, + DIR_W = 6, + DIR_NW = 7, + DIR_END, + INVALID_DIR = 0xFF, +} Direction; + + +/* Direction commonly used as the direction of entering and leaving tiles, 4-way */ +typedef enum DiagDirection { + DIAGDIR_NE = 0, /* Northeast, upper right on your monitor */ + DIAGDIR_SE = 1, + DIAGDIR_SW = 2, + DIAGDIR_NW = 3, + DIAGDIR_END, + INVALID_DIAGDIR = 0xFF, +} DiagDirection; + +static inline DiagDirection ReverseDiagDir(DiagDirection d) +{ + return 2 ^ d; +} + + +static inline DiagDirection DirToDiagdir(Direction dir) +{ + return (DiagDirection)(dir >> 1); +} + + +/* the 2 axis */ +typedef enum Axis { + AXIS_X = 0, + AXIS_Y = 1 +} Axis; + +#endif |