author | rubidium |
Wed, 10 Jan 2007 18:56:51 +0000 | |
changeset 5838 | 9c3129cb019b |
parent 5726 | 8f399788f6c9 |
child 6268 | 4b5241e5dd10 |
permissions | -rw-r--r-- |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
1 |
/* $Id$ */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
2 |
|
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
3 |
#ifndef DIRECTION_H |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
4 |
#define DIRECTION_H |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
5 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
6 |
#include "helpers.hpp" |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
7 |
|
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
8 |
/* Direction as commonly used in v->direction, 8 way. */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
9 |
typedef enum Direction { |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
10 |
DIR_BEGIN = 0, |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
11 |
DIR_N = 0, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
12 |
DIR_NE = 1, /* Northeast, upper right on your monitor */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
13 |
DIR_E = 2, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
14 |
DIR_SE = 3, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
15 |
DIR_S = 4, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
16 |
DIR_SW = 5, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
17 |
DIR_W = 6, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
18 |
DIR_NW = 7, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
19 |
DIR_END, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
20 |
INVALID_DIR = 0xFF, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
21 |
} Direction; |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
22 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
23 |
/** Define basic enum properties */ |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
24 |
template <> struct EnumPropsT<Direction> : MakeEnumPropsT<Direction, byte, DIR_BEGIN, DIR_END, INVALID_DIR> {}; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
25 |
typedef TinyEnumT<Direction> DirectionByte; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
26 |
|
3157
40de8616c04c
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3154
diff
changeset
|
27 |
static inline Direction ReverseDir(Direction d) |
40de8616c04c
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3154
diff
changeset
|
28 |
{ |
40de8616c04c
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3154
diff
changeset
|
29 |
return (Direction)(4 ^ d); |
40de8616c04c
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3154
diff
changeset
|
30 |
} |
40de8616c04c
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3154
diff
changeset
|
31 |
|
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
32 |
|
3158
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
33 |
typedef enum DirDiff { |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
34 |
DIRDIFF_SAME = 0, |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
35 |
DIRDIFF_45RIGHT = 1, |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
36 |
DIRDIFF_90RIGHT = 2, |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
37 |
DIRDIFF_REVERSE = 4, |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
38 |
DIRDIFF_90LEFT = 6, |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
39 |
DIRDIFF_45LEFT = 7 |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
40 |
} DirDiff; |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
41 |
|
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
42 |
static inline DirDiff DirDifference(Direction d0, Direction d1) |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
43 |
{ |
3162 | 44 |
return (DirDiff)((d0 + 8 - d1) % 8); |
3158
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
45 |
} |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
46 |
|
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
47 |
static inline DirDiff ChangeDirDiff(DirDiff d, DirDiff delta) |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
48 |
{ |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
49 |
return (DirDiff)((d + delta) % 8); |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
50 |
} |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
51 |
|
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
52 |
|
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
53 |
static inline Direction ChangeDir(Direction d, DirDiff delta) |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
54 |
{ |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
55 |
return (Direction)((d + delta) % 8); |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
56 |
} |
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
57 |
|
a821c8fec829
(svn r3784) Add a type and functions to handle direction changes
tron
parents:
3157
diff
changeset
|
58 |
|
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
59 |
/* Direction commonly used as the direction of entering and leaving tiles, 4-way */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
60 |
typedef enum DiagDirection { |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
61 |
DIAGDIR_BEGIN = 0, |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
62 |
DIAGDIR_NE = 0, /* Northeast, upper right on your monitor */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
63 |
DIAGDIR_SE = 1, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
64 |
DIAGDIR_SW = 2, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
65 |
DIAGDIR_NW = 3, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
66 |
DIAGDIR_END, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
67 |
INVALID_DIAGDIR = 0xFF, |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
68 |
} DiagDirection; |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
69 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
70 |
DECLARE_POSTFIX_INCREMENT(DiagDirection); |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
71 |
|
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
72 |
/** Define basic enum properties */ |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
73 |
template <> struct EnumPropsT<DiagDirection> : MakeEnumPropsT<DiagDirection, byte, DIAGDIR_BEGIN, DIAGDIR_END, INVALID_DIAGDIR> {}; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
74 |
typedef TinyEnumT<DiagDirection> DiagDirectionByte; |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
75 |
|
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
76 |
static inline DiagDirection ReverseDiagDir(DiagDirection d) |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
77 |
{ |
3148
82e8641d2b42
(svn r3769) Add a cast to make KUDr's C++ compiler happy
tron
parents:
3147
diff
changeset
|
78 |
return (DiagDirection)(2 ^ d); |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
79 |
} |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
80 |
|
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
81 |
|
3163
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
82 |
typedef enum DiagDirDiff { |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
83 |
DIAGDIRDIFF_SAME = 0, |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
84 |
DIAGDIRDIFF_90RIGHT = 1, |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
85 |
DIAGDIRDIFF_REVERSE = 2, |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
86 |
DIAGDIRDIFF_90LEFT = 3 |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
87 |
} DiagDirDiff; |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
88 |
|
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
89 |
static inline DiagDirection ChangeDiagDir(DiagDirection d, DiagDirDiff delta) |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
90 |
{ |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
91 |
return (DiagDirection)((d + delta) % 4); |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
92 |
} |
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
93 |
|
129a91e147b8
(svn r3789) Add an enum and function to handle DiagDirection changes
tron
parents:
3162
diff
changeset
|
94 |
|
3153
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
95 |
static inline DiagDirection DirToDiagDir(Direction dir) |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
96 |
{ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
97 |
return (DiagDirection)(dir >> 1); |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
98 |
} |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
99 |
|
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
100 |
|
3153
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
101 |
static inline Direction DiagDirToDir(DiagDirection dir) |
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
102 |
{ |
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
103 |
return (Direction)(dir * 2 + 1); |
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
104 |
} |
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
105 |
|
301c1d71122b
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
tron
parents:
3148
diff
changeset
|
106 |
|
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
107 |
/* the 2 axis */ |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
108 |
typedef enum Axis { |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
109 |
AXIS_X = 0, |
3699
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
110 |
AXIS_Y = 1, |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
111 |
AXIS_END |
3147
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
112 |
} Axis; |
0a09ce6d651a
(svn r3767) Move all direction related enums and functions to a separate header
tron
parents:
diff
changeset
|
113 |
|
3154 | 114 |
|
4158 | 115 |
static inline Axis OtherAxis(Axis a) |
116 |
{ |
|
117 |
return (Axis)(a ^ 1); |
|
118 |
} |
|
119 |
||
120 |
||
3154 | 121 |
static inline Axis DiagDirToAxis(DiagDirection d) |
122 |
{ |
|
123 |
return (Axis)(d & 1); |
|
124 |
} |
|
125 |
||
3209
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
126 |
|
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
127 |
/* |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
128 |
* Converts an Axis to a DiagDirection |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
129 |
* Points always in the positive direction, i.e. S[EW] |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
130 |
*/ |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
131 |
static inline DiagDirection AxisToDiagDir(Axis a) |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
132 |
{ |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
133 |
return (DiagDirection)(2 - a); |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
134 |
} |
e0b7d48351a3
(svn r3877) Add functions to turn a tile into a rail/road bridge ramp/middle part
tron
parents:
3163
diff
changeset
|
135 |
|
3953
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
136 |
/** |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
137 |
* Convert an axis and a flag for north/south into a DiagDirection |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
138 |
* @param ns north -> 0, south -> 1 |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
139 |
*/ |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
140 |
static inline DiagDirection XYNSToDiagDir(Axis xy, uint ns) |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
141 |
{ |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
142 |
return (DiagDirection)(xy * 3 ^ ns * 2); |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
143 |
} |
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
144 |
|
db302c2d1a2a
(svn r5101) Add a function to convert an axis and a flag for north/south into a DiagDirection. Use it for bridge ramps and ship depots
tron
parents:
3744
diff
changeset
|
145 |
|
3699
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
146 |
static inline bool IsValidDiagDirection(DiagDirection d) |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
147 |
{ |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
148 |
return d < DIAGDIR_END; |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
149 |
} |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
150 |
|
3744
d5f308a7218b
(svn r4732) - Fix: use correct types in IsValid[Direction|Axis]
glx
parents:
3699
diff
changeset
|
151 |
static inline bool IsValidDirection(Direction d) |
3699
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
152 |
{ |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
153 |
return d < DIR_END; |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
154 |
} |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
155 |
|
3744
d5f308a7218b
(svn r4732) - Fix: use correct types in IsValid[Direction|Axis]
glx
parents:
3699
diff
changeset
|
156 |
static inline bool IsValidAxis(Axis d) |
3699
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
157 |
{ |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
158 |
return d < AXIS_END; |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
159 |
} |
15e473a194ef
(svn r4640) - Add: IsValidDiagDirection, IsValidDirection and IsValidAxis functions.
matthijs
parents:
3209
diff
changeset
|
160 |
|
4666
850b5b6e4bac
(svn r6560) - Codechange: Minor fix; add missing #include guards and comments, and correct svn properties on bmp.[ch]
peter1138
parents:
4158
diff
changeset
|
161 |
#endif /* DIRECTION_H */ |