diff --git a/src/pathfinder/follow_track.hpp b/src/pathfinder/follow_track.hpp index 13fc6fd03d..6365aaa1dd 100644 --- a/src/pathfinder/follow_track.hpp +++ b/src/pathfinder/follow_track.hpp @@ -165,7 +165,7 @@ struct CFollowTrackT { return false; } if ((!IsRailTT() && !Allow90degTurns()) || (IsRailTT() && Rail90DegTurnDisallowed(GetTileRailType(this->old_tile), GetTileRailType(this->new_tile), !Allow90degTurns()))) { - this->new_td_bits &= (TrackdirBits)~(int)TrackdirCrossesTrackdirs(this->old_td); + this->new_td_bits &= ~TrackdirCrossesTrackdirs(this->old_td); if (this->new_td_bits == TRACKDIR_BIT_NONE) { this->err = EC_90DEG; return false; @@ -249,7 +249,7 @@ protected: inline bool QueryNewTileTrackStatus() { if (IsRailTT() && IsPlainRailTile(this->new_tile)) { - this->new_td_bits = (TrackdirBits)(GetTrackBits(this->new_tile) * 0x101); + this->new_td_bits = TrackBitsToTrackdirBits(GetTrackBits(this->new_tile)); } else if (IsRoadTT()) { this->new_td_bits = GetTrackdirBitsForRoad(this->new_tile, this->IsTram() ? RoadTramType::Tram : RoadTramType::Road); } else { diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index a89e2a351f..fccaf446aa 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -2163,7 +2163,7 @@ static TrackStatus GetTileTrackStatus_Road(TileIndex tile, TransportType mode, R if (side != INVALID_DIAGDIR && !DiagDirToRoadBits(side).Any(bits)) break; uint multiplier = drd_to_multiplier[(rtt == RoadTramType::Tram) ? 0 : GetDisallowedRoadDirections(tile).base()]; - if (!HasRoadWorks(tile)) trackdirbits = (TrackdirBits)(_road_trackbits[bits.base()] * multiplier); + if (!HasRoadWorks(tile)) trackdirbits = static_cast(_road_trackbits[bits.base()] * multiplier); break; } diff --git a/src/track_func.h b/src/track_func.h index 41678b42da..ef3e41c286 100644 --- a/src/track_func.h +++ b/src/track_func.h @@ -111,7 +111,7 @@ inline TrackBits CornerToTrackBits(Corner corner) inline TrackdirBits TrackdirToTrackdirBits(Trackdir trackdir) { assert(IsValidTrackdir(trackdir)); - return (TrackdirBits)(1 << trackdir); + return static_cast(1 << trackdir); } /** @@ -294,7 +294,7 @@ inline Trackdir TrackToTrackdir(Track track) inline TrackdirBits TrackToTrackdirBits(Track track) { Trackdir td = TrackToTrackdir(track); - return (TrackdirBits)(TrackdirToTrackdirBits(td) | TrackdirToTrackdirBits(ReverseTrackdir(td))); + return static_cast(TrackdirToTrackdirBits(td) | TrackdirToTrackdirBits(ReverseTrackdir(td))); } /** @@ -318,7 +318,7 @@ inline TrackBits TrackdirBitsToTrackBits(TrackdirBits bits) */ inline TrackdirBits TrackBitsToTrackdirBits(TrackBits bits) { - return (TrackdirBits)(bits * 0x101); + return static_cast(bits * 0x101); } /** @@ -353,7 +353,7 @@ inline bool HasTrackdir(TrackdirBits trackdirs, Trackdir trackdir) */ inline TrackdirBits TrackStatusToTrackdirBits(TrackStatus ts) { - return (TrackdirBits)(ts & TRACKDIR_BIT_MASK); + return static_cast(ts & TRACKDIR_BIT_MASK); } /** @@ -377,7 +377,7 @@ inline TrackBits TrackStatusToTrackBits(TrackStatus ts) */ inline TrackdirBits TrackStatusToRedSignals(TrackStatus ts) { - return (TrackdirBits)((ts >> 16) & TRACKDIR_BIT_MASK); + return static_cast((ts >> 16) & TRACKDIR_BIT_MASK); } /** diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index bf04504f5b..c19536c574 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2897,7 +2897,7 @@ static Track ChooseTrainTrack(Train *consist, TileIndex tile, DiagDirection ente /* Extend reservation until we have found a safe position. */ DiagDirection exitdir = TrackdirToExitdir(res_dest.trackdir); TileIndex next_tile = TileAddByDiagDir(res_dest.tile, exitdir); - TrackBits reachable = TrackdirBitsToTrackBits((TrackdirBits)(GetTileTrackStatus(next_tile, TRANSPORT_RAIL, RoadTramType::Invalid))) & DiagdirReachesTracks(exitdir); + TrackBits reachable = TrackStatusToTrackBits(GetTileTrackStatus(next_tile, TRANSPORT_RAIL, RoadTramType::Invalid)) & DiagdirReachesTracks(exitdir); if (Rail90DegTurnDisallowed(GetTileRailType(res_dest.tile), GetTileRailType(next_tile))) { reachable &= ~TrackCrossesTracks(TrackdirToTrack(res_dest.trackdir)); }