diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map.cpp | 8 | ||||
-rw-r--r-- | src/pathfind.cpp | 20 |
2 files changed, 12 insertions, 16 deletions
diff --git a/src/map.cpp b/src/map.cpp index 00e155c04..7035f955c 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -218,7 +218,7 @@ uint DistanceMax(TileIndex t0, TileIndex t1) { const uint dx = delta(TileX(t0), TileX(t1)); const uint dy = delta(TileY(t0), TileY(t1)); - return dx > dy ? dx : dy; + return max(dx, dy); } @@ -248,9 +248,9 @@ uint DistanceFromEdge(TileIndex tile) const uint yl = TileY(tile); const uint xh = MapSizeX() - 1 - xl; const uint yh = MapSizeY() - 1 - yl; - const uint minl = xl < yl ? xl : yl; - const uint minh = xh < yh ? xh : yh; - return minl < minh ? minl : minh; + const uint minl = min(xl, yl); + const uint minh = min(xh, yh); + return min(minl, minh); } /*! diff --git a/src/pathfind.cpp b/src/pathfind.cpp index 68602667f..4541e9a9a 100644 --- a/src/pathfind.cpp +++ b/src/pathfind.cpp @@ -140,7 +140,6 @@ static const byte _otherdir_mask[4] = { static void TPFMode2(TrackPathFinder* tpf, TileIndex tile, DiagDirection direction) { uint bits; - int i; RememberData rd; assert(tpf->tracktype == TRANSPORT_WATER); @@ -160,19 +159,16 @@ static void TPFMode2(TrackPathFinder* tpf, TileIndex tile, DiagDirection directi assert(TileX(tile) != MapMaxX() && TileY(tile) != MapMaxY()); - if ( (bits & (bits - 1)) == 0 ) { - /* only one direction */ - i = 0; - while (!(bits & 1)) - i++, bits >>= 1; - + uint i = 0; + /* only one direction */ + if (KillFirstBit(bits) == 0) { + i = FindFirstBit(bits); rd = tpf->rd; goto continue_here; } /* several directions */ - i=0; do { - if (!(bits & 1)) continue; + i = FindFirstBit(bits); rd = tpf->rd; /* Change direction 4 times only */ @@ -184,7 +180,7 @@ static void TPFMode2(TrackPathFinder* tpf, TileIndex tile, DiagDirection directi tpf->rd.pft_var6 = (byte)i; } -continue_here:; +continue_here: tpf->the_dir = (Trackdir)(i + (HasBit(_otherdir_mask[direction], i) ? 8 : 0)); if (!tpf->enum_proc(tile, tpf->userdata, tpf->the_dir, tpf->rd.cur_length, NULL)) { @@ -192,7 +188,7 @@ continue_here:; } tpf->rd = rd; - } while (++i, bits >>= 1); + } while (ClrBit(bits, i) != 0); } @@ -293,7 +289,7 @@ static inline void TPFMode1_NormalCase(TrackPathFinder* tpf, TileIndex tile, Til if ((byte)bits != tpf->var2) { bits &= _tpfmode1_and[direction]; - bits = bits | (bits >> 8); + bits |= bits >> 8; } bits &= 0xBF; |