(svn r5364) Clean up r5363

This commit is contained in:
tron 2006-06-25 17:51:23 +00:00
parent ef4b0ab5b6
commit 4b2c02afde

View File

@ -94,20 +94,19 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode)
assert(tile < MapSize()); assert(tile < MapSize());
if ((r=TerraformAllowTileProcess(ts, tile)) <= 0) r = TerraformAllowTileProcess(ts, tile);
return r; if (r <= 0) return r;
if (IsTileType(tile, MP_RAILWAY)) { if (IsTileType(tile, MP_RAILWAY)) {
static const TrackBits _railway_modes[] = { TRACK_BIT_LOWER, TRACK_BIT_LEFT, TRACK_BIT_UPPER, TRACK_BIT_RIGHT }; static const TrackBits safe_track[] = { TRACK_BIT_LOWER, TRACK_BIT_LEFT, TRACK_BIT_UPPER, TRACK_BIT_RIGHT };
static const byte _railway_dangslopes[4] = {0xd, 0xe, 7, 0xb}; static const Slope unsafe_slope[] = { SLOPE_S, SLOPE_W, SLOPE_N, SLOPE_E };
static const byte _railway_dangslopes2[4] = {0x2, 0x1, 0x8, 0x4};
// Nothing could be built at the steep slope - this avoids a bug // Nothing could be built at the steep slope - this avoids a bug
// when you have a single diagonal track in one corner on a // when you have a single diagonal track in one corner on a
// basement and then you raise/lower the other corner. // basement and then you raise/lower the other corner.
int tileh = GetTileSlope(tile, NULL) & 0xF; Slope tileh = GetTileSlope(tile, NULL);
if (tileh == _railway_dangslopes[mode] || if (tileh == unsafe_slope[mode] ||
tileh == _railway_dangslopes2[mode]) { tileh == ComplementSlope(unsafe_slope[mode])) {
_terraform_err_tile = tile; _terraform_err_tile = tile;
_error_message = STR_1008_MUST_REMOVE_RAILROAD_TRACK; _error_message = STR_1008_MUST_REMOVE_RAILROAD_TRACK;
return -1; return -1;
@ -115,7 +114,7 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode)
// If we have a single diagonal track there, the other side of // If we have a single diagonal track there, the other side of
// tile can be terraformed. // tile can be terraformed.
if (IsPlainRailTile(tile) && GetTrackBits(tile) == _railway_modes[mode]) { if (IsPlainRailTile(tile) && GetTrackBits(tile) == safe_track[mode]) {
return 0; return 0;
} }
} }