diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -319,15 +319,14 @@ CommandCost CmdBuildSingleRail(TileIndex switch (GetTileType(tile)) { case MP_RAILWAY: + if (!CheckTileOwnership(tile)) return CMD_ERROR; + + if (!IsCompatibleRail(GetRailType(tile), railtype)) return_cmd_error(STR_1001_IMPOSSIBLE_TRACK_COMBINATION); + if (!CheckTrackCombination(tile, trackbit, flags) || !EnsureNoTrainOnTrack(tile, track)) { return CMD_ERROR; } - if (!IsTileOwner(tile, _current_company) || - !IsCompatibleRail(GetRailType(tile), railtype)) { - /* Get detailed error message */ - return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); - } ret = CheckRailSlope(tileh, trackbit, GetTrackBits(tile), tile); if (CmdFailed(ret)) return ret;