diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp index 7ca95ae698..c6e484feaa 100644 --- a/src/pathfinder/yapf/yapf_ship.cpp +++ b/src/pathfinder/yapf/yapf_ship.cpp @@ -59,7 +59,7 @@ public: /* handle special case - when next tile is destination tile */ if (tile == v->dest_tile) { /* convert tracks to trackdirs */ - TrackdirBits trackdirs = (TrackdirBits)(tracks | ((int)tracks << 8)); + TrackdirBits trackdirs = TrackBitsToTrackdirBits(tracks); /* limit to trackdirs reachable from enterdir */ trackdirs &= DiagdirReachesTrackdirs(enterdir); diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 4603043d6e..ec0d430896 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -464,7 +464,7 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr if (v->dest_tile == 0 || DistanceManhattan(tile, v->dest_tile) > SHIP_MAX_ORDER_DISTANCE + 5) { /* No destination or destination too far, don't invoke pathfinder. */ track = TrackBitsToTrack(v->state); - if (track != TRACK_X && track != TRACK_Y) track = TrackToOppositeTrack(track); + if (!IsDiagonalTrack(track)) track = TrackToOppositeTrack(track); if (!HasBit(tracks, track)) { /* Can't continue in same direction so pick first available track. */ if (_settings_game.pf.forbid_90_deg) {