summaryrefslogtreecommitdiff
path: root/train_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'train_cmd.c')
-rw-r--r--train_cmd.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/train_cmd.c b/train_cmd.c
index 189947c99..13124d92b 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -1746,12 +1746,13 @@ typedef struct TrainFindDepotData {
static bool NtpCallbFindDepot(TileIndex tile, TrainFindDepotData *tfdd, int track, uint length)
{
- if (IsTileType(tile, MP_RAILWAY) && IsTileOwner(tile, tfdd->owner)) {
- if ((_m[tile].m5 & 0xFC) == 0xC0) {
- tfdd->best_length = length;
- tfdd->tile = tile;
- return true;
- }
+ if (IsTileType(tile, MP_RAILWAY) &&
+ IsTileOwner(tile, tfdd->owner) &&
+ GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT &&
+ GetRailTileSubtype(tile) == RAIL_SUBTYPE_DEPOT) {
+ tfdd->best_length = length;
+ tfdd->tile = tile;
+ return true;
}
return false;
@@ -2654,7 +2655,7 @@ static void TrainMovedChangeSignals(TileIndex tile, DiagDirection dir)
{
if (IsTileType(tile, MP_RAILWAY) &&
GetRailTileType(tile) == RAIL_TYPE_SIGNALS) {
- uint i = FindFirstBit2x64((_m[tile].m5 + (_m[tile].m5 << 8)) & _reachable_tracks[dir]);
+ uint i = FindFirstBit2x64(GetTrackBits(tile) * 0x101 & _reachable_tracks[dir]);
UpdateSignalsOnSegment(tile, _otherside_signal_directions[i]);
}
}