diff options
author | smatz <smatz@openttd.org> | 2008-02-18 16:35:38 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2008-02-18 16:35:38 +0000 |
commit | c7a8080c3a27f8541f5d3943b0138293c2b068c5 (patch) | |
tree | 57a856421f24707953ee89d92b0c9e7b2d98f4ad | |
parent | 29125c0e68ffc3d4627212f33bce39ba108cd341 (diff) | |
download | openttd-c7a8080c3a27f8541f5d3943b0138293c2b068c5.tar.xz |
(svn r12178) -Codechange: use the 'side' parameter in TrainController and TrainCheckIfLineEnds to simplify the code
-rw-r--r-- | src/train_cmd.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index b890a7a8d..d305391a9 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3040,7 +3040,7 @@ static void TrainController(Vehicle *v, bool update_image) /* Get the status of the tracks in the new tile and mask * away the bits that aren't reachable. */ - uint32 ts = GetTileTrackStatus(gp.new_tile, TRANSPORT_RAIL, 0) & _reachable_tracks[enterdir]; + uint32 ts = GetTileTrackStatus(gp.new_tile, TRANSPORT_RAIL, 0, ReverseDiagDir(enterdir)) & _reachable_tracks[enterdir]; /* Combine the from & to directions. * Now, the lower byte contains the track status, and the byte at bit 16 contains @@ -3475,7 +3475,7 @@ static bool TrainCheckIfLineEnds(Vehicle *v) TileIndex tile = v->tile + TileOffsByDiagDir(dir); /* Determine the track status on the next tile */ - uint32 ts = GetTileTrackStatus(tile, TRANSPORT_RAIL, 0) & _reachable_tracks[dir]; + uint32 ts = GetTileTrackStatus(tile, TRANSPORT_RAIL, 0, ReverseDiagDir(dir)) & _reachable_tracks[dir]; /* We are sure the train is not entering a depot, it is detected above */ @@ -3485,11 +3485,8 @@ static bool TrainCheckIfLineEnds(Vehicle *v) bits &= ~TrackCrossesTracks(FindFirstTrack(v->u.rail.track)); } - /* no suitable trackbits at all || wrong railtype || not our track || - * tunnel/bridge from opposite side || depot from opposite side */ - if (bits == TRACK_BIT_NONE || !CheckCompatibleRail(v, tile) || GetTileOwner(tile) != v->owner || - (IsTileType(tile, MP_TUNNELBRIDGE) && GetTunnelBridgeDirection(tile) != dir) || - (IsTileDepotType(tile, TRANSPORT_RAIL) && GetRailDepotDirection(tile) == dir) ) { + /* no suitable trackbits at all || wrong railtype || not our track */ + if (bits == TRACK_BIT_NONE || !CheckCompatibleRail(v, tile) || GetTileOwner(tile) != v->owner) { return TrainApproachingLineEnd(v, false); } |