// if (!IsTileFlat(tile) || !IsTileFlat(tile2)) { // int z_slope1; // Slope slope1 = GetTileSlope(tile, &z_slope1); // int z_middle_corner_n = TileHeight(tile2); // int z_middle_corner_s = TileHeight(TileAddByDiagDir(tile2, AxisToDiagDir(OtherAxis(axis)))); // int z_slope2; // Slope slope2 = GetTileSlope(tile2, &z_slope2); // /* Forbid these combinations. */ /** * 3 * / \ * 2 2 * / \ / * 1 1 * \ / * 0 */ // if (IsSteepSlope(slope1) || IsSteepSlope(slope2)) return_cmd_error(STR_ERROR_SITE_UNSUITABLE); /** * 1 * / \ * 0 0 * / \ / * 1 1 * \ / * 0 */ // if (slope1 == SLOPE_NS && slope2 == SLOPE_EW || slope1 == SLOPE_EW && slope2 == SLOPE_NS) return_cmd_error(STR_ERROR_SITE_UNSUITABLE); /** * 1 * / \ * 0 1 * / \ / * 0 1 * \ / * 0 */ // if (z_middle_corner_n != z_middle_corner_s && (IsSlopeWithThreeCornersRaised(slope1) && IsSlopeWithOneCornerRaised(slope2) || IsSlopeWithOneCornerRaised(slope1) && IsSlopeWithThreeCornersRaised(slope2))) return_cmd_error(STR_ERROR_SITE_UNSUITABLE); /** * 2 * / \ * 1 2 * / \ / * 0 1 * \ / * 0 */ // if (slope1 == slope2 && IsInclinedSlope(slope1)) return_cmd_error(STR_ERROR_SITE_UNSUITABLE); /** * 1 * / \ * 0 1 * / \ / * 0 0 * \ / * 1 */ // if (((IsSlopeWithOneCornerRaised(slope2) || IsSlopeWithThreeCornersRaised(slope2)) && IsInclinedSlope(slope1) && DiagDirToAxis(GetInclinedSlopeDirection(slope1)) == axis) || ((IsSlopeWithOneCornerRaised(slope1) || IsSlopeWithThreeCornersRaised(slope1)) && IsInclinedSlope(slope2) && DiagDirToAxis(GetInclinedSlopeDirection(slope2)) == axis)) return_cmd_error(STR_ERROR_SITE_UNSUITABLE); /** * 0 * / \ * 0 1 * / \ / * 1 1 * \ / * 0 */ // if (((slope2 == SLOPE_EW || slope2 == SLOPE_NS) && IsInclinedSlope(slope1) && DiagDirToAxis(GetInclinedSlopeDirection(slope1)) == OtherAxis(axis)) || ((slope1 == SLOPE_EW || slope1 == SLOPE_NS) && IsInclinedSlope(slope2) && DiagDirToAxis(GetInclinedSlopeDirection(slope2)) == OtherAxis(axis))) return_cmd_error(STR_ERROR_SITE_UNSUITABLE);