Add GetTileTrackStatus wrapper for when red signals part is not needed
This commit is contained in:
@@ -124,9 +124,8 @@ struct CFollowTrackT
|
||||
m_old_td = old_td;
|
||||
m_err = EC_NONE;
|
||||
dbg_assert_tile(
|
||||
((TrackStatusToTrackdirBits(
|
||||
GetTileTrackStatus(m_old_tile, TT(), (IsRoadTT() && m_veh != nullptr) ? (this->IsTram() ? RTT_TRAM : RTT_ROAD) : 0)
|
||||
) & TrackdirToTrackdirBits(m_old_td)) != 0) ||
|
||||
((GetTileTrackdirBits(m_old_tile, TT(), (IsRoadTT() && m_veh != nullptr) ? (this->IsTram() ? RTT_TRAM : RTT_ROAD) : 0)
|
||||
& TrackdirToTrackdirBits(m_old_td)) != 0) ||
|
||||
(IsTram() && GetSingleTramBit(m_old_tile) != INVALID_DIAGDIR), // Disable the assertion for single tram bits
|
||||
m_old_tile
|
||||
);
|
||||
@@ -243,7 +242,7 @@ protected:
|
||||
} else if (IsRoadTT()) {
|
||||
m_new_td_bits = GetTrackdirBitsForRoad(m_new_tile, this->IsTram() ? RTT_TRAM : RTT_ROAD);
|
||||
} else {
|
||||
m_new_td_bits = TrackStatusToTrackdirBits(GetTileTrackStatus(m_new_tile, TT(), 0));
|
||||
m_new_td_bits = GetTileTrackdirBits(m_new_tile, TT(), 0);
|
||||
}
|
||||
return (m_new_td_bits != TRACKDIR_BIT_NONE);
|
||||
}
|
||||
|
@@ -834,7 +834,7 @@ static bool CanEnterTile(TileIndex tile, DiagDirection dir, AyStarUserData *user
|
||||
*/
|
||||
static TrackdirBits GetDriveableTrackdirBits(TileIndex dst_tile, TileIndex src_tile, Trackdir src_trackdir, TransportType type, uint subtype)
|
||||
{
|
||||
TrackdirBits trackdirbits = TrackStatusToTrackdirBits(GetTileTrackStatus(dst_tile, type, subtype));
|
||||
TrackdirBits trackdirbits = GetTileTrackdirBits(dst_tile, type, subtype);
|
||||
|
||||
if (trackdirbits == TRACKDIR_BIT_NONE && type == TRANSPORT_ROAD && (RoadTramType)subtype == RTT_TRAM) {
|
||||
/* GetTileTrackStatus() returns 0 for single tram bits.
|
||||
@@ -1222,7 +1222,7 @@ bool NPFShipCheckReverse(const Ship *v, Trackdir *best_td)
|
||||
AyStarUserData user = { v->owner, TRANSPORT_WATER, RAILTYPES_NONE, ROADTYPES_NONE, 0 };
|
||||
if (best_td != nullptr) {
|
||||
DiagDirection entry = ReverseDiagDir(VehicleExitDir(v->direction, v->state));
|
||||
TrackdirBits rtds = DiagdirReachesTrackdirs(entry) & TrackStatusToTrackdirBits(GetTileTrackStatus(v->tile, TRANSPORT_WATER, 0, entry));
|
||||
TrackdirBits rtds = DiagdirReachesTrackdirs(entry) & GetTileTrackdirBits(v->tile, TRANSPORT_WATER, 0, entry);
|
||||
Trackdir best = (Trackdir)FindFirstBit2x64(rtds);
|
||||
rtds = KillFirstBit(rtds);
|
||||
if (rtds == TRACKDIR_BIT_NONE) return false; /* At most one choice. */
|
||||
|
@@ -59,7 +59,7 @@ static inline TileIndex CalcClosestStationTile(StationID station, TileIndex tile
|
||||
*/
|
||||
static inline TrackdirBits GetTrackdirBitsForRoad(TileIndex tile, RoadTramType rtt)
|
||||
{
|
||||
TrackdirBits bits = TrackStatusToTrackdirBits(GetTileTrackStatus(tile, TRANSPORT_ROAD, rtt));
|
||||
TrackdirBits bits = GetTileTrackdirBits(tile, TRANSPORT_ROAD, rtt);
|
||||
|
||||
if (rtt == RTT_TRAM && bits == TRACKDIR_BIT_NONE) {
|
||||
if (IsNormalRoadTile(tile)) {
|
||||
|
@@ -167,7 +167,7 @@ public:
|
||||
default:
|
||||
m_destTile = v->dest_tile;
|
||||
m_dest_station_id = INVALID_STATION;
|
||||
m_destTrackdirs = TrackStatusToTrackdirBits(GetTileTrackStatus(v->dest_tile, TRANSPORT_RAIL, 0));
|
||||
m_destTrackdirs = GetTileTrackdirBits(v->dest_tile, TRANSPORT_RAIL, 0);
|
||||
break;
|
||||
}
|
||||
CYapfDestinationRailBase::SetDestination(v);
|
||||
|
@@ -297,7 +297,7 @@ public:
|
||||
} else {
|
||||
m_dest_station = INVALID_STATION;
|
||||
m_destTile = v->dest_tile;
|
||||
m_destTrackdirs = TrackStatusToTrackdirBits(GetTileTrackStatus(v->dest_tile, TRANSPORT_ROAD, GetRoadTramType(v->roadtype)));
|
||||
m_destTrackdirs = GetTileTrackdirBits(v->dest_tile, TRANSPORT_ROAD, GetRoadTramType(v->roadtype));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -41,7 +41,7 @@ public:
|
||||
} else {
|
||||
m_destStation = INVALID_STATION;
|
||||
m_destTile = v->dest_tile;
|
||||
m_destTrackdirs = TrackStatusToTrackdirBits(GetTileTrackStatus(v->dest_tile, TRANSPORT_WATER, 0));
|
||||
m_destTrackdirs = GetTileTrackdirBits(v->dest_tile, TRANSPORT_WATER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ public:
|
||||
pf.SetOrigin(tile, TrackdirToTrackdirBits(td1) | TrackdirToTrackdirBits(td2));
|
||||
} else {
|
||||
DiagDirection entry = ReverseDiagDir(VehicleExitDir(v->direction, v->state));
|
||||
TrackdirBits rtds = DiagdirReachesTrackdirs(entry) & TrackStatusToTrackdirBits(GetTileTrackStatus(tile, TRANSPORT_WATER, 0, entry));
|
||||
TrackdirBits rtds = DiagdirReachesTrackdirs(entry) & GetTileTrackdirBits(tile, TRANSPORT_WATER, 0, entry);
|
||||
pf.SetOrigin(tile, rtds);
|
||||
}
|
||||
pf.SetDestination(v);
|
||||
|
Reference in New Issue
Block a user