summaryrefslogtreecommitdiff
path: root/direction.h
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-03-05 12:34:55 +0000
committertron <tron@openttd.org>2006-03-05 12:34:55 +0000
commit586388c9f17a39b4d3a7e7706fe6b40191a922b4 (patch)
tree113bde0444e78799f198050654eba4d96e28702e /direction.h
parentf007ad282c60cc1b2529b44c3e0b4c1bdab3d685 (diff)
downloadopenttd-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.h49
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